Commit graph

68 commits

Author SHA1 Message Date
Kevin Tang
94ecbf6804 Crash fix with MsgTask API change
Removed tCreate and tAssociate from MsgTask. LocThread
now can optionally take a tCreate method. Associator is
replaced with *firstMsg* option to MsgTask, which is a
more generic option, that can associate or do other set
up job at the create of a MsgTask.

The current MsgTask doesn't use tCreate, which exposes
a slight time window for Location HAL when its MsgTask
is NOT associated to DVM heap but a message delivery to
DVM could be attempted during this time.

Change-Id: Iafd5b91b693baacb9b7064463f8c44f74026f54c
CRs-Fixed: 902350
2015-09-21 14:45:58 -07:00
Linux Build Service Account
049cc84d3a Merge "timer bug fix" 2015-09-19 15:13:48 -07:00
Kevin Tang
088a127c31 timer bug fix
when a ticking timer is stopped, currently kernel doesn't
get updated with the next immediate timer's interval. As a
result, kernel timer will expire sooner (with the stopped
timer's interval), and the next timer's client is notified
for this expiration.

Change-Id: I0d67d1418cb9bfe7f70ae71252901d4c6bb699b3
CRs-Fixed: 909776
2015-09-18 09:30:33 -07:00
Linux Build Service Account
c1021a05dc Merge "fixing a crash vulnerability due to race condition" 2015-09-11 07:24:11 -07:00
Kevin Tang
9957a19f5f fixing a crash vulnerability due to race condition
LocTimer::stop() can be called from different threads, which must
be protected. Currently there is a race condition between back to
back stop()'s or expire() + stop() events.

Change-Id: Iae80b78f049a32da87639f813c6f5126b4ccd072
CRs-Fixed: 904627
2015-09-09 10:06:50 -07:00
Bhavna Sharma
5e77108972 Fix for timerfd_create on older kernel revisions
BOOTTIME_ALARM and BOOTTIME were added to timerfd_create
in kernel version 3.11 and 3.15 respectively.
But for targets still on older kernel version we fallback on MONOTONIC.

CRs-Fixed: 897805

Change-Id: I47d9780d69ce5ee8c183c84baa93ea3c1a00db57
2015-08-27 10:29:54 -07:00
Kevin Tang
a38a8b8477 memory management fixes
byte long each, but the loc_set_config_entry() util call
writes an int at a time, causing buffer overflow. #2, in
loc_xtra-init(), a data structure wrap happened without
iniializing the unused data fields.

Change-Id: I96b40a330316927d276840a997082fe759263699
CRs-Fixed: 866937
2015-08-18 17:01:12 -07:00
Kevin Tang
898c646a7c crash in LocTimer wrapper
LocTimerWrapper implements loc_timer_start/stop calls for backward
compatibility. There is a race condtiion where the wrapper object
could be deleted by the client thread and expireation handling at
rough the same time, which would have the memory freed twice. Now
they are mutext protected.

Change-Id: I25d7466db88a840a8a09e7a476cface48c91d22e
2015-08-10 10:33:49 -07:00
Linux Build Service Account
277f3e30a3 Merge "LocTimer repeated expiration" 2015-08-09 12:02:14 -07:00
Kevin Tang
9de97acc86 LocTimer repeated expiration
Timer must be removed from epoll as soon as it expires,
otherwise it continuously expire. Current timer removes
from a different thread, this triggers repeated expire
events until the maintain thread gets to remove it.

Change-Id: Ie523bce5069416521d49bc0178d2cad2dd1f04da
CRs-Fixed: 870568
2015-08-04 15:03:32 -07:00
Neethu Joseph
50ae85852a MsgTask thread must call associator function always
All instances of MsgTask were not calling associator
because of a use of a static variable check.
All instance of MsgTask thread must call the associator.

CRs-Fixed: 870450

Change-Id: I18314ec3ca0fe21f4bbd12a505bf552e64e25307
2015-08-04 14:59:48 -07:00
Kevin Tang
bb5d2d4bfb Adding a number of utilities
LocHeap, LocThread, LocTimer, and moved MsgTask to
utils. Also added are LocRankable and LocRunnable
abstract classes.

Change-Id: I76975455d24f2c84a95dcc1b04f79fea562ea5ba
CRs-Fixed: 855222
2015-08-04 14:29:48 -07:00
Dante Russo
1b07337c5a LCA additions to ULP and log_util defines.
1. Add two new ulp location sources (PIP and NLP)
ULP_LOCATION_IS_FROM_NLP to mark locations from NLP
ULP_LOCATION_IS_FROM_PIP to mark locations from PIP
2. Introduce a macro for printing exit log with error

CRs-Fixed: 694343

Change-Id: Ifa11803df2ed4fc249a5c339acfeeb5d89bf55d5
2015-07-16 10:07:13 -07:00
Dante Russo
99606eb414 Fix implicit declaration errors in gps hal.
Including string.h and stdlib.h to fix compiler
errors

Change-Id: I4e79c71b9e5691e51850adcc52f52b36f8e3d088
2015-07-15 15:18:06 +05:30
Qaing Chen
634c1bb8bd Fix Memory leak in util/loc_cfg.cpp
deallocate conf_copy after usage.

Change-Id: I8ad4e4e8007a2d8b608f3f74503515f062b86c4b
CRs-fixed: 852809
2015-06-11 17:51:35 -07:00
Tushar Janefalkar
7d367d0e62 Add utility to identify lean targets
This utility reads ro.lean system property
and returns a 1 if the property is set to true
and returns 0 otherwise.

Change-Id: I52a8396ee085d44b90d8416131f27b0b1a46575e
CRs-fixed: 801990
2015-03-19 17:33:06 -07:00
sudarsanarao makupalli
1fe602a0a9 Avoiding race conditions during the pallellized builds in Android system
Removed relative paths and set Absolute paths in Android.mk file
and moved corresponding files to right location

Change-Id: Iacf2ee3dadb3e87c9354c1c4b8003cd8cc65ea97
CRs-Fixed: 714112
2015-03-09 11:55:44 -07:00
Ashish Dhiman
b45b1606db Klockwork P1 issues.
fixing Klockwork P1 issues.

CRs-Fixed: 793601
Change-Id: I037c17c342f473d6d21a234ec1e980ba55b98cbe
2015-02-10 13:47:14 +05:30
Tushar Janefalkar
b38580ee75 Revert "Added Detection Logic For QMI_PDS Target."
This reverts commit fb9c641bb8.

CRs-Fixed: 760272
Change-Id: I90a9bcd77447dc5b3d799bd0ad1bdbfae85cef15
2015-01-26 16:23:43 -08:00
Kevin Tang
f014665a52 Enable "auto" target for APQ8960 Automotive ADP platform
APQ8960 Automotive platforms use "auto" as a target name
for ro.baseband property. Appropriate GPS driver changes
were,
   1. define GNSS_AUTO enum constant
   2. Enable GNSS drivers for "auto" target.

Change-Id: I463db7ac1c3e2dd6101e457ad723bb16adf5aacb
CRs-Fixed: 771597
2014-12-15 21:21:16 -08:00
Linux Build Service Account
3a6d7924d6 Merge "Merge tag 'AU_LINUX_ANDROID_KK.04.04.04.010.214' into HEAD" 2014-10-23 11:54:25 -07:00
Zhoulu Luo
629d80a82a AU_LINUX_ANDROID_KK.04.04.04.010.214 based on quic/aosp/kk
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlRGYwkACgkQoUgPZYCpAfF2rwCg5quG/L+pzo5R94uD/QSR1Xs6
 mpsAoIxxW/ftz0uMbp67UANrb7EQyVNY
 =eKHq
 -----END PGP SIGNATURE-----

Merge tag 'AU_LINUX_ANDROID_KK.04.04.04.010.214' into HEAD

AU_LINUX_ANDROID_KK.04.04.04.010.214 based on quic/aosp/kk

Change-Id: Ida51fa96a5a39fcb3bb2f2c6ab9be84a3ec44d41
2014-10-22 12:57:59 -07:00
Kevin Tang
d1cc6bfee7 GPS LOCK did not work when NMEA_PROVIDER follows it
there is an implicit requirement on the loc_gps_cfg_s_type field
data type, that is they must be 32 bit fields. Otherwise it would
only work with the assistance of padding. When two adjacent 8 bit
fields are defined, the later filled field would overwrite the
previously written neighbor. This is why GPS_LOCK was tested as
broken in the latest build.

This also fixes a theoretic bug that when there are two of the
same fields defined in the config table to be filled, the
accounting of the filled entries was incorrect earlier. This is
not a realistic bug, as there are no idential entries in the
config table HAL fills.

Bug: 16131208

CRs-fixed: 736966
Change-Id: I2e262fb30272f6f334508df17bb640022d7b1ef5
2014-10-20 15:00:39 -07:00
Kevin Tang
e6a851c191 adding update config post power up
Some of the parameters configured in gps.conf may be
carrier dependent. This provides a mechanism so that
GpsLocationProvider can determine current operator
resolve of the carrier specific configurations and
update HAL with those configurations post init.
Bug: 17110478

CRs-fixed: 736966
Change-Id: I80aa4404da7666824335fee074dae2ffcba40548
2014-10-20 14:54:26 -07:00
Kevin Tang
fb9c641bb8 Added Detection Logic For QMI_PDS Target.
Added run time detection of PDS enabled fusion target
to loc_target(), to support fusion platforms that has
PDS service enabled.

Change-Id: Ic53df027540f00eec9259776351b6bbc9afa0521
CRs-Fixed: 699757
2014-10-10 10:36:46 -07:00
Zhoulu Luo
94ca706b3c AU_LINUX_ANDROID_KK.04.04.04.010.182 based on quic/aosp/kk
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlQsxwMACgkQoUgPZYCpAfG54gCdFhi4kcvtS8jo5rRwqMemDRJw
 JZAAoOcZBG/Y1bH/Kmd1+27OQJUOH/Yg
 =fi7/
 -----END PGP SIGNATURE-----

Merge tag 'AU_LINUX_ANDROID_KK.04.04.04.010.182' into HEAD

AU_LINUX_ANDROID_KK.04.04.04.010.182 based on quic/aosp/kk

Conflicts:
	loc_api/libloc_api_50001/loc_eng.h

Change-Id: I3a734e3bdc3347961f1bd4bf5499ec7ca9aecfbc
2014-10-02 14:42:00 -07:00
Bhavna Sharma
f1ddcf02a3 Increase the size of string to hold parameter name
Some parameter names are more than 48 char in length.
Accomodate by increasing parameter name buffer size
and increase complete line buffer size.

CRs-Fixed: 700902

Change-Id: If2af7288ed11fdd668dc1cad8e60f2c92e7b3c30
2014-09-17 18:16:35 -07:00
Sudhir Sharma
2e5ca6dde7 AU_LINUX_ANDROID_KK.04.04.04.010.094 based on quic/aosp/kk
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlPoLFcACgkQoUgPZYCpAfHA3gCgxHO4Ygg/L4/AivXneonD8kls
 t80AoOVB7Ts81w7Qea3Ui7jhoq/jbRui
 =UdP7
 -----END PGP SIGNATURE-----

Merge tag 'AU_LINUX_ANDROID_KK.04.04.04.010.094' into HEAD

AU_LINUX_ANDROID_KK.04.04.04.010.094 based on quic/aosp/kk

Change-Id: I0b9428f15516e1f6b6cd625caa2e4af86b9c1c5e
2014-08-11 13:38:27 -07:00
Kevin Tang
33e5fd9015 loc timer util fix to handle the race condition
loc timer util stop() routine may have race condition
with the timer thread, when timer expires at the same
time stop() routine tries to lock mutex.  The race
condition can go 2 ways:
* timer thread expires, unlocks mutex, context switch,
stop() thread acquires lock, context switch, timer
thread destroys mutex.  Destroy will fail, resulting
mutex leak.
* timer thread expires, unlocks mutex, destroys mutex,
stop() acqures lock, signal, and releases lock. Would
be super rare conditions though.

Fix is that we give 5 seconds for stop() thread to
give up the lock when destroy. After that the timer
thread will release the mutex and go on destroy.
Meanwhile the stop() thread would check the lock
return to move on with signal and unlock.

Change-Id: Iff9e34d08a1faf0828049de2fede2e7a5d15b161
CRs-Fixed: 699856
2014-08-04 10:28:00 -07:00
Tushar Janefalkar
c828f0a56a Changes for GPS HAL compilation
Remove dependence on android_runtime and
return invalid value if gps daemon is not
responding

Change-Id: I16dbf1bffe6193114c1da08730f0627377179a2a
2014-06-17 13:46:56 -07:00
Dante Russo
9ffb10553d Revert "Avoid GPS build for MSM8916 64bit"
This reverts commit 0daddfd2fd.

Change-Id: I3138bb2d600618cfec5ec7588d5359b15a07cbad
2014-06-17 11:18:48 -07:00
Dante Russo
c7265bbe1d Revert "Avoid GPS build for MSM8916 64bit"
This reverts commit 0daddfd2fd.

Change-Id: I3138bb2d600618cfec5ec7588d5359b15a07cbad
2014-05-07 17:12:49 -07:00
Linux Build Service Account
61e32edfdd Merge "Avoid GPS build for MSM8916 64bit" 2014-04-11 00:32:08 -07:00
Kevin Tang
7b268f9c10 a change to support c++11
The logging macro seems to break c++11 toolchain. A change
is make to address that

Change-Id: I5056fe0431ff064ac4805facbb59195fe04b154e
CRs-Fixed: 646028
2014-04-09 13:24:05 -07:00
Ashwin Kumar
0daddfd2fd Avoid GPS build for MSM8916 64bit
Avoid GPS compilation for MSM8916 64bit targets

CRs-fixed: 628263

Change-Id: I5fde20c25de005feb1c24017107858d4f19eed4f
2014-03-21 22:32:30 +05:30
Linux Build Service Account
eb3d713e9b Merge "apq8084: qca1530 detection property changed" 2014-02-13 02:23:15 -08:00
Linux Build Service Account
790af4dde5 Merge "apq8084: qca1530 detection timeout reduced" 2014-02-12 09:30:55 -08:00
Valeri Atamaniouk
ff716bf292 apq8084: qca1530 detection property changed
Changed QCA1530 SoC detection property from persistent to
non-pesistent. New property is 'sys.qca1530'.

CRs-Fixed: 614154

Change-Id: I61ed4191e6413bb6eab71c61d9ed070a5815c178
2014-02-11 12:06:42 +02:00
Tushar Janefalkar
4460543e7d Add new utilities
This change makes modifications
to existing utilities and adds
a couple of new utilites to help
with the launcher

Change-Id: Ib65ffe8e60c7e4a824c5c362765df5dcba872424
CRs-fixed: 600179
2014-02-10 10:15:54 -08:00
Valeri Atamaniouk
42320d2017 apq8084: qca1530 detection timeout reduced
Reduced QCA1530 detection timeout as system server activitity
manager gives only 20 seconds for the subsystem initialization.

CRs-Fixed: 613611

Change-Id: Ib095db3f2b35765a4b9d7b0e79132e44c173d6cb
2014-02-10 12:10:49 +02:00
Dante Russo
cf180fffbe Force logging level to warning for user builds
User builds should not be logging at info level

Change-Id: I4e43730d52b3a322e93d61112805fa85669db243
CRs-fixed: 610927
2014-02-04 10:00:25 -08:00
Kevin Tang
0eeb1392f1 added timer stop api
loc_timer util currently can not be stopped.  Added stop api so that
clients can make use of.

CRs-Fixed: 579624

Change-Id: I17f80e46ecfbdf1b70eb158f1ee7eb1a92d5e765
2013-11-26 12:07:02 -08:00
Valeri Atamaniouk
3b4d23e9cc apq8084: qca1530 configuration handling is added.
Provide function for qca1530 detection. Rename 'get_target' to
'loc_get_target'. Fix loc_get_target state detection to avoid double
detection. Fix few minor code defects.

Change-Id: I3daaff99598771742572aab407475474fad41e93
2013-10-25 06:47:17 +03:00
Dante Russo
530086a52d Fix ATL handling
Always register for ATL events reguardless of hw target
or MSA/MSB capabilities. For APQ target, do not handle
certain types of ATL events that it doen't support.
For APQ target, use only position mode of Standalone.

CRs-fixed: 533932
Change-Id: Icd626e3e7155d5c2ba871a343430e441924ce93c
2013-09-10 15:57:08 -07:00
Satya Durga Srinivasu Prabhala
cb12f393d2 Replace sysdev path
sysdev gets deprecated in 3.10 Kernel. Hence, replacing
sysdev path with relevant path/s.

Change-Id: I8fbb1959ba4dfba34fdac6d271e59fd25237f899
2013-08-15 12:22:32 -07:00
Tushar Janefalkar
e5e62728a2 A mechanism to detect APQ chip set
The current changes to default the operation mode
to Standalone by the CHIP ID. A new method is used
for solving this issue.

CRs-Fixed: 510462
Change-Id: I58fd85e2c28bf824edeaef62660c62c34761bd37
2013-08-02 19:01:02 -07:00
Kevin Tang
d42eeebb5a made a convenient msg_q_init2
the original msg_q_init takes a q handle in the parameter list
which makes it inconvenient for chain statement. This really
adds nothing be making it slightly convenient

Change-Id: I1e7f931d6b278c804ec6f7d87c1a79a3ffcceb75
2013-07-23 20:12:54 -06:00
Gohulan Balachandran
efd4e124a6 Merge up to MR1 tip
Point merged in is cc92e0ccd4

Change-Id: I3b782716fee9ed519b77a4e415fa08155bdce76a
2013-07-23 20:12:17 -06:00
Satheesh Jayakumar
fed389ab35 GARDEn: porting LE enhancement to Android - fix build error
Add platform abstraction layer into include path

Change-Id: I1e27a60f3afcc259449d264697bd39c03ef9609f
2013-07-03 17:12:46 -07:00
Satheesh Jayakumar
0590a64deb hardware/qcom/gps: Porting HAL and Loc API 2.0
- Wrote makefiles, config and other files
- Made code changes to minimize android dependencies

Change-Id: I350de6378684f5db81a36cc4c6d014c5a8189d4c
2013-07-03 17:08:14 -07:00