Commit graph

50 commits

Author SHA1 Message Date
Kevin Tang
cb119e6f52 Make Loc Init Asynchronous
GPS-enable gets too heavy at powerup, when loc_init is
synchronous, where loc goes to get the hardware handle
if AP init happens faster than the GPS hardware. The
loc init calling thread is from Android framework, and
it locks a mutex that in turn could lock up system server
main thread upon race conditions.

The second half of loc init, i.e. the reinit, is now moved
to loc worker thread. This should help release some of the
powerup timing pressure on the framework threads.

Added a message just for asynchrous Loc Init so as to execute
init specifically.

Change-Id: I369e461ca4ca61cea3a9729c84d24af4ffa8e51d
CRs-fixed: 472843
2013-07-23 20:05:58 -06:00
Dante Russo
112647bd23 Added more delete assistance data flags
Removed FEATURE_DELEXT flag that is no longer
needed after adding the flags for this feature
to gps_extended.h

Change-Id: Id8a095309892e2eb328a02ef17e4aa1b1b54e815
2013-07-23 20:05:57 -06:00
Dante Russo
c326530244 Add support for having no qcom proprietary
qcom bsp will handle xtra/agps/ni/time through
qcom propreitary service, and non-qcom bsp will handle
xtra/gps/ni/time through android framework.
xtra url will be queried from modem on qcom bsp,
and read from gps.conf from non-qcom bsp.

Change-Id: Ib54a1596caa65f7aa0358f639640c3d1074980e7
2013-07-23 20:05:56 -06:00
Dante Russo
3156a1d44a Move loc_api_v02 to vendor/qcom-opensource/location
Change-Id: I70a427826c90114f895df4a666c6450fd4c3df54
2013-07-23 20:05:48 -06:00
Dante Russo
399f53047e gps: Added xtra server query loc api
In order to prevent the issue where the xtra server url
that stored in gps.conf is incorrect (like xtra.bin instead
of xtra2.bin) for a particular modem, I've made this change
so that the xtra server url can be queried through loc api.
CRs-fixed: 366599

Change-Id: If65de98d837f068fd61a235cbf1104026246e5a9
2013-06-11 15:02:29 -07:00
Dante Russo
926d20ad77 gps: moving agps/ni/xtra/time features out of afw
Moving these features out of afw allows these
features to still work on platforms that do not
allow changes to afw and it also gives us more
control.

Change-Id: I6923b302f93222dc10189c3a6a7b6ba2ec1a3378
2013-06-11 15:00:57 -07:00
Dante Russo
85f672fa71 Merge branch jb_mr1 into jb_2.6
Merged from from label
AU_LINUX_ANDROID_JB_MR1.04.02.02.049.306

Change-Id: Ie2f7fd3d25f8f28f5d1b6e733974bb5f75999ee8
2013-06-11 14:58:24 -07:00
Dante Russo
838f00b1ef jb_2.6 bring up changes.
Enable gps.conf and remove dependancy on libgeofence.so

Change-Id: I3f58f0b6afcb017504af51699b7030db07051402
2013-06-07 11:05:04 -07:00
Iliyan Malchev
2a9f38e7bf Merge "gps: geofence hal integration" into jb-mr2-dev 2013-04-10 18:20:17 +00:00
Ying Wang
ce5efcc57f Add liblog
Bug: 8580410
Change-Id: Ife86cba2312cf83f263b07bfe8f3b655ec7d1a70
2013-04-09 21:59:18 -07:00
Dante Russo
23d1e163c3 gps: geofence hal integration
Change-Id: Ia5b9c4d12c85d7d7c06b2b6037a568a43f0e8b2c
2013-04-09 21:11:27 -07:00
Mekala Natarajan
c65fed0353 gps: Runtime detection between apq v/s mdm gps support
Change-Id: Icfb6edcb8a885bbaa55091b851fb2620d65045f8
Signed-off-by: Ed Tam <etam@google.com>
2013-03-31 21:51:43 -07:00
Kevin Tang
ade0338d23 moved most of the GPS HAL back to aosp
This part of the HAL compiles without the need for
additional dependency

Change-Id: I36873579ef1b20c2441603729d2de83da6775319
2013-03-26 15:01:37 -07:00
Kevin Tang
52f4c8ca93 add LOCAL_MODULE_OWNER := qcom to gps modules
Port back of an earlier patch applied to the GPS HAL
that was moved out of aosp (change id of the patch was
Icc302c91da4104679d2548e4527d0aee430f3761

Change-Id: I133f92e316872c60830df5553f31d34ecd9d7a84
2013-03-26 14:58:19 -07:00
Kevin Tang
34ee095517 Revert "remove loc_api from hardware/qcom/gps"
This reverts commit 0d257cc5d3.

Change-Id: I80c00022b5ab562ade9a9c8ca5abd0087d897c9e
2013-03-26 14:45:46 -07:00
Iliyan Malchev
0d257cc5d3 remove loc_api from hardware/qcom/gps
Change-Id: I2a1e928dc38de45c7421e2ef7a406ca969eafc97
Signed-off-by: Iliyan Malchev <malchev@google.com>
2013-02-06 22:49:06 -08:00
Iliyan Malchev
c74962df0d chmod uga-x
find -type f -perm +111 -name \*.[ch]\* -exec chmod uga-x {} \;

Bug: 7428209
Change-Id: I991e3fb62a46f4b4cd727ef4b6a4472b4015ce33
Signed-off-by: Iliyan Malchev <malchev@google.com>
2012-10-27 14:22:13 -07:00
woojin.shin
9365bf1ffd gps: fix for no gps signals after modem reset
This fixes the problem that GPS doesn't work until reboot after modem reset.

Bug: 7216911
Change-Id: Ibfee6a28850490548da2e0ccaefdabe9b826b5e9
Signed-off-by: Iliyan Malchev <malchev@google.com>
2012-10-18 13:50:31 -07:00
Brian Muramatsu
586a62cda0 Merge "gps: report session begin/end on gps start/stop" into jb-mr1-dev 2012-09-26 18:41:16 -07:00
Mekala Natarajan
205590ae1b disabled agps state machine delete in cleanup
The current cleanup mismatches agps_init(), so that it the agps state
machines will get deleted in the cleanup but never get recreated next
time apgs_init() is called.

Bug 7216641

Change-Id: Iddba9fd0d90c790e658f14c42c8a25d22b8749c0
2012-09-26 17:21:33 -07:00
Ajay Dudani
56de3d4311 gps: report session begin/end on gps start/stop
Since modem does not consistently send
SESSON_END/ENGINE_OFF event, always report
SESSION_END on stop gps and SESSION_BEGIN on
start gps so that the icon is turned on/off
correctly.

Bug 7185242

Change-Id: Ib3954529056a653d7057aedb489be1ccee9eaf1d
2012-09-26 16:38:31 -07:00
Ajay Dudani
ca3538229b gps: Fix typo in checking for qmi-framework
b/7175603

This caused one of the gps related libraries to be not built in the full tree,
causing GPS failure

Change-Id: Iff51c1a588a22f0b46b075ebf27d2b6493b97e40
Signed-off-by: Iliyan Malchev <malchev@google.com>
2012-09-16 15:51:00 -07:00
Ajay Dudani
197fe088f7 dynamically build and load adapter libs
This is to support bringup efforts. This change will decouple
the dependencies between GPS HAL and proprietary QMI headers,
so that we can build HAL without any proprietary repos.

Change-Id: I7b836d09f4ac6b1a1bdb38f8d6a2bfb90bb5bf01
Signed-off-by: Iliyan Malchev <malchev@google.com>
2012-09-15 13:44:20 -07:00
Ajay Dudani
ac8fa07a02 gps: control session state evt from HAL, not modem
Suppress the registering for QMI_LOC_EVENT_MASK_FIX_SESSION_STATE_V02
event from modem, that is normally responsible for generating
GPS_STATUS_SESSION_BEGIN and GPS_STATUS_SESSION_END, and instead
initiate these events from hal from when we get GPS_STATUS_ENGINE_ON
and GPS_STATUS_ENGINE_OFF.

Change-Id: I9d220bef7ee4f989a3982d888ed46279861f612d
2012-09-14 17:49:49 -07:00
woojin.shin
0a49d62c7a gps: enable nmea callback
Add code for calling NMEA callback for receiving NMEA.

Change-Id: I04689cbc166e3db9d4479bf85636363a87176468
2012-08-21 09:04:45 -07:00
Ajay Dudani
f77c85bb51 gps: Initial implementation of msm gps hal
Change-Id: Icf126a0bbb9dec414144b9b405694e41777920d5
2012-07-09 15:43:56 -07:00
Nick Kralevich
7573253c26 remove HAL_MODULE_INFO_SYM const
HAL_MODULE_INFO_SYM was declared as read-only, but
the struct is written to by libhardware.  This causes
a segfault when -Wl,-z,relro is enabled.

Fixed.

Change-Id: Ied24f54a294ea705b06754a419823d595e3def62
2012-03-01 17:07:59 -08:00
Steve Block
8b3fe9b3cf Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE
See https://android-git.corp.google.com/g/#/c/157220

Bug: 5449033
Change-Id: I9d2c4a1a9b0edda94f2eeacc1f4d270bf4d66804
2012-01-08 10:17:54 +00:00
Steve Block
2ce3102288 Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGE
See https://android-git.corp.google.com/g/157065

Bug: 5449033
Change-Id: Ia13cca6426a15037e01069954308e95f31c17336
2012-01-05 23:27:52 +00:00
Steve Block
b72262b057 Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGE
See https://android-git.corp.google.com/g/156801

Bug: 5449033
Change-Id: I3fc8b0f9a0da503ff9e79a166a08e13e0ce9730d
2012-01-04 20:07:13 +00:00
Steve Block
b80e8ff4f8 Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGE
See https://android-git.corp.google.com/g/156016

Bug: 5449033
Change-Id: I5a8da519f9d62f6b2978313462e32cba4cec6304
2012-01-03 22:31:41 +00:00
Steve Block
7c2f7b69f9 Rename LOGV(_IF) to ALOGV(_IF) DO NOT MERGE
See https://android-git.corp.google.com/g/#/c/143865

Bug: 5449033
Change-Id: Idd9e9b1c42806438a86507d614c64aa42ef42e16
2011-10-25 18:16:19 +01:00
Iliyan Malchev
13e995a1fe hardware/qcom/gps: remove LOCAL_PRELINK_MODULE
Change-Id: Ief16d1230650afb07a395a03c7ecefa9b6434376
Signed-off-by: Iliyan Malchev <malchev@google.com>
2011-03-14 14:24:25 -07:00
Mike Lockwood
a162c43519 Fix threading problem that resulted in the wakelock being held too long.
In some circumstances we were calling wait after we had been signalled, causing
us to wait until we are signalled again (while holding a wakelock).
Now we only want to wait in the deferred action thread if no events are pending
and only hold the wakelock while not waiting.

BUG: 3127617

Change-Id: I4c6886b2bbdcbcb2c0cf348d89bc5408f0d875b9
Signed-off-by: Mike Lockwood <lockwood@google.com>
2010-10-27 15:18:59 -04:00
Mike Lockwood
0b602e40b8 Fix recursive use of mutex introduced in previous change.
Change-Id: I2ef4e1187a03f28712d16920b275d39963ff5ac7
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-10-26 00:09:25 -04:00
Mike Lockwood
bd3166c592 Work around a problem stopping the GPS engine while an AGPS data call is active
Sometimes the engine does not send us the GPS_STATUS_ENGINE_OFF message,
so we end up blinking the GPS icon forever.  Deferring the loc_eng_stop call
until the AGPS activity is done works around this problem.

Change-Id: Iad0d15323ff909c0d371f9db3a6e899e51375a99
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-10-25 23:36:16 -04:00
Mike Lockwood
9391343952 loc_api: Disable code that completely shuts down our connection with the GPS
This avoids a race condition that can crash the BP if the GPS is disabled
in settings while it is running.

This also fixes a problem with the GPS icon in the status bar not
getting removed when the GPS is disabled.

BUG: 3005091

Change-Id: I539eef716231cefae3d4d0a8203135da9827b45d
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-22 14:27:57 -04:00
Mike Lockwood
5153d56321 loc_api: Use create_thread_cb for all threads that call back into the framework.
Change-Id: I07c2d5664d3f1a167af56ddd76b60393de170931
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-06-20 14:31:24 -07:00
Mike Lockwood
c6419effb6 librpc: XDRs and glue code for AMSS 1240
Change-Id: Ic69d0085ab8793c6d32f811892cb3e0375b2ef6c
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-06-17 23:55:20 -07:00
Mike Lockwood
fba22d5c62 loc_api: rearrange RPC glue to allow having multiple versions of the API.
The API version can be chosen by specifying the AMSS version in the board config
by setting the BOARD_VENDOR_QCOM_GPS_LOC_API_AMSS_VERSION variable.
The existing GPS_LOC_API_HARDWARE has been renamed BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE

Change-Id: I25aa313d7f291b874d52dfb7edf151e280061438
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-06-17 23:53:00 -07:00
Mike Lockwood
3c865ec2f9 Add more parameters to set_position_mode, notify framework of our capabilities.
Change-Id: Ie53106b89030d48187d17be47482a3c74b837f3e
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-04-14 18:40:30 -04:00
Mike Lockwood
2c115de409 Hold a wake lock while events are pending for the deferred action thread.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-04-14 14:26:34 -04:00
Mike Lockwood
a4977cd631 Fix deleting aiding data.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-04-06 05:44:01 -04:00
Mike Lockwood
237c22f03d Enable GPS privacy lock when GPS is disabled.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-04-06 05:44:01 -04:00
Mike Lockwood
ae1989429b Remove call to loc_apicb_app_deinit() to avoid ARM9 crashes after disabling.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-04-06 05:44:01 -04:00
Mike Lockwood
300b715b0d loc_api: Repackage as a new GPS HAL module.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-04-06 05:43:41 -04:00
Mike Lockwood
24d7556a88 loc_api: Process all events in deferred action thread.
It is not safe to call into framework code from an RPC callback.

Change-Id: Idb85590f5648b85ba4dd352136f89652b3128fbe
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-02-02 11:51:35 -05:00
Mike Lockwood
a28682a135 Do not build unless BOARD_GPS_LIBRARIES is set to libloc_api
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-01-22 14:41:54 -05:00
Mike Lockwood
6774225c78 loc_api: Send GPS_STATUS_ENGINE_ON and GPS_STATUS_SESSION_END
so GpsLocationProvider will release its wake lock when the GPS shuts down.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-01-22 08:47:48 -05:00
Mike Lockwood
b4c4f2016a Initial commit of Qualcomm's loc_api GPS library for the MSM platform.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-01-21 23:49:31 -05:00