Fixes a potential crash in jni layer caused by
invalid characters in the string.
CRs-fixed: 555829
Change-Id: I03ae100c4b7e65c95bac5841fcf00b27e2940741
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
send ULP the position mode if it is valid when ULP handle
is first received. This helps handling a race condition
where ULP handshake happens when a GPS session is about
to happen or already happening.
Change-Id: I029e5c3bbb9d8e89b220ca44e9704b5a1d1451ff
CRs-Fixed: 554340
The offset calculation on the 2nd and 3rd server urls
were wrong. The are off by 1 and 2 bytes respectively.
Change-Id: Iab9da5dbd2b0c779e18a6fe4615ad7e705800654
In order to preserve the ordering of
position reports and status reports from
the GPS engine, status reports are sent
through the ULP too
CRS-Fixed: 538143
Change-Id: I41be2121493c6a0b35a5726fd546eb0fa5e9b20c
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
Changes to ensure that positions reported with TECH_MASK_HYBRID
are also updated to the location clients.
CRs-Fixed: 537773
Change-Id: I09c7d440369d8fc37abd069fbefc2c7e23414ab1
To avoid multiple xtra data auto-downloading, the change
delete the 3 xtra URL in gps.conf used by
GpsLocationProvider. Meanwhile, GPS HAL become to
allow GLP send Xtra data to modem.
CRs: 537744
Change-Id: I27f3122f4ecd1d4da4323e9c59bd0358f3d635f2
Fixed conditional check from
MSA|MSA to MSA|MSB. Bug was
introduced in commit 782431a
CRs-Fixed: 533849
Change-Id: I7931563e08c5c875b49cc9ada2969a34373a2890
Changes to launch the BIT service request handler thread only if
AggpsExt is present. Small formatting fixes for pritining the IP
address.
Change-Id: Iaf3b9bd6d967ba35b04b591750784c5f221ee539
Before injecting time, check the gps ON_DEMAND_TIME
capability. if it is disabled, it will not sent time
inject command.
Change-Id: Ie51cf1f65e086bdb49d6159051c3d66700b25d78
In order to avoid a synchronous call
from Location Manager to the data layer,
the call to initialize the data client is
sent as a msg to the MsgTask so that it
gets handled in a separate thread
CRs-fixed: 535079
Change-Id: I3d7a72c32eb629572178c90dc4f55c3d74443332
Generate GPGSV and GLGSV sentence separately
rather than combination according to satelite
prn number.
CRs-Fixed: 491156
Change-Id: Ie2bc60ae680a75cbe95702a7f842c1546a3a2f21
Changes to ensure that we dont free UlpProxy object
by mistake when loc_init is invoked twice.
CRs-Fixed: 532599
Change-Id: I0989368b67614181b3d834e61690211497663352
Resolved issue where XTRA data was being requested instead
of time during On-Demand time injection.
CRs-Fixed: 530415
Change-Id: Ibf057073dc4eddc011f5df5c13d60eb552eec8c9
This may be a temporary fix to filter the reqeust here,
because this point the xtra data is already downloaded.
Next we should look at how to save the download itself.
Change-Id: I0efba22df3d8d330c03a157a07c7ee490a22027d
ENABLE_WIPER parameter is no longer
included in gps.conf and used in the
HAL code. So it is removed to avoid
confusion.
CRs-fixed: 520700
Change-Id: Ic0ffb762d7d27019407a9f5b4600d6ea9693b401
The AGPS interface will be returned
as null if MSA and MSB capabilities
are not set in gps config
Change-Id: I388654c9f527bfed128f431ccb8956e19be0f7f2
(cherry picked from commit 50891ecfe09b19a130b675ddc818ecf4ae31a3da)
ULP will no longer be loaded and init'ed from loc eng
HAL. GPS HAL will look for ULP once it completes init
and waits for a msg back once it hears from ULP. This
is done with introduction of UlpProxy. Default proxy
is a no op proxy.
Change-Id: If0be0b5744f9de20f12c2f0b9704dea66aa454c0
(cherry picked from commit 2eb4ddcae94283df6c6be450c4c070ffd8ff9cd7)
Removed makefile dependency to AndrodRuntime; Renamed
library to be loaded from liblocation to libizat_core;
Made some class private access to protected for the
needs of inheritance; piggy bagged some optimizations.
Change-Id: Id7e3127baa1833cbad7739f50808941c733b87f2
(cherry picked from commit c039ceaec84b25573d710b31831c9b06d4f3d1c6)
Changes can be highlighted with below summary:
* Split the original LocApiAdapter to LocAdapter and LocApi.
Now different adapter implementations can flexibly connect
to different LocApi;
* LocApi continues to abstract the API binding to RPC or QMI;
* MsgTask which creates and owns a msg Q and a thread, and it
define a LocMsg base msg class. The handler pulls a msg out
of the Q and calls its proc() method. This makes it possible
for msg sender to keep the data in the msg encapsulated, as
it no longer requires a central msg handler who must under-
stand all data format. This used to be where all the compile
time dependencies are tangled together;
* Added Context to bundle MsgTask and LocApi;
* Added LocDualContext specifically for the FLP Location Hal
architecture requirement;
* Placed all the base classes of the above in loc_core folder
/ loc_core namespace / libloc_core.so, so other libraries
can easily use derive from here without having to pull in
the loc_eng implementation, which is a large library to
include or link to;
Change-Id: I40abfba96dea76757c98530c1f5e076b34ba4ac7
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
Check the CAPABILITIES in gps.conf to see if the geofence is
enabled or not. If it is not enabled, the function of getting
geofence interface will return null.
Change-Id: I6500cedd775d83b4701fbe2b3a111c170c8a34be
CRs-fixed: 513494
Changed the communication path from ULP JNI to libulp
engine to avoid the GPS HAL layer. This improves modularity,
removes dependencies and promote easier integration for OEMs.
Change-Id: I6bc883499b8ed3649cfc194038057a19ba2fd4f6
Changes to ensure FLP positioning call flow works
even if GPS is disabled on the Android settings
menu.
CRs-Fixed: 476628
Change-Id: I54b9f9861a14f7c42f45c48e57e9558f14a4de92
The function was returning an error code
which was causing GPSLocationProvider to
fail initialization
CRs-fixed: 501318
Change-Id: Icec707c3b9edc60bd07914b130077f9a96c5e794
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
Removed FEATURE_DELEXT flag that is no longer
needed after adding the flags for this feature
to gps_extended.h
Change-Id: Id8a095309892e2eb328a02ef17e4aa1b1b54e815
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
When a request to RELEASE ATL finds no
active subscribers, return ATL close
failure
Change-Id: I591d5456d5ce1218cc82bf7ba430176ec4f13174
CRs-fixed: 502024
In accordance to gps.conf, debug level of 0 now
produces no logs at all. In addition, if the
parameter DEBUG_LEVEL is commented in gps.conf,
logs will be printed according to Android's logging
levels
CRs-fixed: 503157
Change-Id: I26ca2be67fbc7ce2bf633f66d9b88ca6450e9d27
The struct was not defined in the
NAME_VAL() format and hence was returning
garbage characters in place of error
strings
Change-Id: Ic59e636c8bf99fe91488c312b83f31c36941c202
Introduced support for handling modem request
to start an emergency call using QMI WDS profiles
or fallback to an ATL request if the call does
not succeed.
Change-Id: I29b617687db0d3f26610bc74f8dc95940574f52d
The function was returning an error code
which was causing GPSLocationProvider to
fail initialization
CRs-fixed: 501318
Change-Id: Icec707c3b9edc60bd07914b130077f9a96c5e794
Position report NMEAs will be generated only
if the position report is a final fix and not
an intermediate fix. Blank NMEAs will be sent
otherwise.
CRs-fixed: 467575
Change-Id: I60e63faf3e4503f5a6ce93211d4017aa7695b78b
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
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
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.
Add a message just for asynchrous Loc Init so as to execute
init specifically.
Change-Id: I369e461ca4ca61cea3a9729c84d24af4ffa8e51d
CRs-fixed: 472843
Changes to ensure FLP positioning call flow works
even if GPS is disabled on the Android settings
menu.
CRs-Fixed: 476628
Change-Id: I54b9f9861a14f7c42f45c48e57e9558f14a4de92
Changes to manage user preference for Precise Indoor
Positioning Control through settings on the OS UI menu
CRs-Fixed: 492707
Change-Id: I6a0cc0a92c35d05122efce310274f20590a16118
Updated LOC API source and header files
since the new version had updated masks
that were required for loc eng
Change-Id: Ia0d57770a737ef6d05e881ac0512eb174e7c9fd1
To allow ulp to select MSA for single shot
location requests, change the recurrence type
for MSA requests to SINGLE.
CRs-fixed: 479303
Change-Id: I97043233e0590b25bc63f3709b2bbb3dfd22cbd0
This is so that data disable is not
sent to the modem by default if data
is enabled
Change-Id: I383443fc0321380c22382ba7d7f85dacf948853a
CRs-fixed: 460376
No support for SUPl,starting MSB it wouldn.t request a PD.
Disabled the MSA and MSB for this PL.
This fix is needed because this PL doesnot have a modem.
Change-Id: I8fa1145db07f681c0f6e733da253f06f01f7edd6
CRs-Fixed: 471589
Since the switch for ulp in gps.conf did not truly turn QCA
implementation for Fused Location Provider on/off this change
removes this redundant parameter from gps.conf
Change-Id: I677c42a00e6b0d156c2e4c3b65da13a55eb97279
CRs-Fixed: 461273
The number of bytes to be written for
the checksum exceeded the buffer length.
This change corrects makes the correction.
Change-Id: If90c6f5b2006a013a096a767334deac1555553f1
CRs-fixed: 468553
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
In order to control the logging levels
of location Hal irrespective of the
process calling it, a call to read
debug level from gps.conf is added
CRs-fixed: 461436
Change-Id: Id54083df36e3ee266c79c7b5178993dd5f3bdb78
gps.conf now split into
izat.conf: proprietary items
sap.conf : sensor assisted positioning items
gps.conf : items used in open source
(gps.conf moved to open source)
CRs-fixed: 461129
Change-Id: I819230ee3bb13aad0b91f7d33bfb9e57b6d1abe1
Earlier this identification was done in loc.cpp
This change moves that to a separate utility.
Also included is a change to not return
a handle to the GPS interface if the target
is found to be MPQ8064.
This change is a re-cherry-pick from
change id - I98d5619d2e6e63711a9b56f0af2b3ddd27372871
Change-Id: I058d206c37245b44f1cf74d6065e7ce46f50baf7
CRs-Fixed: 418009
SUPL ES added additional optional fields in the NI indiation. We
need to copy back these info as then came when we send back the
notification to modem. This change is to add that.
CRs-Fixed: 443946
Change-Id: Ib4a99441a03b2cb41b66d4c97253acbf118e4f05
Changes for providing the plumbing from UlpService down
to the native UlpEngine.
Change-Id: I67e48fad47675d9fa9a3026763daa0f248369f60
CRs-Fixed: 443444
Earlier this identification was done in loc.cpp
This change moves that to a separate utility.
Also included is a change to not return
a handle to the GPS interface if the target
is found to be MPQ8064.
CRs-Fixed: 418009
Change-Id: I98d5619d2e6e63711a9b56f0af2b3ddd27372871
Locking the slot mutext during a loc_ioctl call
can cause deadlock in some rare cases.
Change-Id: I09aa2ad7c67c326fee90447db960895d7f1fb149
CRs-fixed: 412208
As a security measure, callbacks
are checked to make sure they are
not NULL pointers.
Change-Id: I391e1cc373e8098449303709d8d1b67d305fb633
CRs-Fixed: 404438
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>
Disable coarse position injection from GPS HAL when XTWiFi
Network Location Provider is in use. This is needed to avoid self
learning loop inside modem.
Change-Id: I0526317221d3490c41d0d8d901fbfa4d93e9a0b0
CRs-Fixed: 409409
Instead of having a switch case that sets bits in the
lppconfig mask, the mask is assigned whatever value
was read from gps.conf. The advantage of this being
that if in the future additional bits are added in
lppconfig, there need not be a code change; only
comments in gps.conf have to be updated to inform the
correct value for those additional bits
CRs-Fixed: 406969
Change-Id: I979151b44cd85e98b59b4586fdd49e20a7d7c82b
Previously, modem's request for NTP time was not supported.
This change enables that request to be serviced through the HAL
and current NTP time is injected into the modem
CRs-Fixed: 406357
Change-Id: I471f98cf57a276902d7991da48cf7244fe798318
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
Changes to assign the correct permissions for 'gps" group for
Rx path from HAL to BIT daemon
Change-Id: I6c5dc4ff0a1379a95888f4d98e88f0174a7a2a79
CRs-Fixed: 400339, 387672
The id for apq8064 v2 is 153 vs apq8064 v1
id of 109, so the id can be either in order
to conclude that the device is apq8064 so
that GSS can be launched.
Change-Id: I8126854f18ba30a1fe46992993185266e9d1db18
CRs-fixed: 405494
AgpsStatus added with a couple string fields for wifi
which are not NULL ended when they are not used. This
get passed to AFW JNI, and allow UTF8 string with the
open ended buffer with junks in it. It might cause
exception depending on the content of the garbadge.
CRs-Fixed: 405473
Change-Id: If762748a4c63fe1be59491b5d08dbadd479176b3