diff options
author | Saurabh Srivastava <ssrivast@codeaurora.org> | 2016-07-19 02:26:58 +0530 |
---|---|---|
committer | Saurabh Srivastava <ssrivast@codeaurora.org> | 2016-07-29 11:45:28 +0530 |
commit | c01fcd784c60835f4fd5b8a2ced58a52c6e0ba99 (patch) | |
tree | 6ac2ef69e7e2e8e7072e4ce1f28e32cf2edd816d | |
parent | 7124f9f705c8d6f04c640a3c3a84d3a904eb986e (diff) | |
download | gps-c01fcd784c60835f4fd5b8a2ced58a52c6e0ba99.tar.gz |
Adding new target APQ-NoWGR handling
Adding handling for new ro.baseband value provided by target team
If the target does not have WGR (GPS Receiver), we return NULL
GPS and FLP interfaces.
CRs-Fixed: 1033674
Change-Id: I1561518c4f4b0c52ab934feb2fa43e9078c91d86
-rw-r--r-- | core/ContextBase.cpp | 45 | ||||
-rw-r--r-- | utils/loc_target.cpp | 20 | ||||
-rw-r--r-- | utils/loc_target.h | 2 |
3 files changed, 37 insertions, 30 deletions
diff --git a/core/ContextBase.cpp b/core/ContextBase.cpp index c429c2d..d2f9070 100644 --- a/core/ContextBase.cpp +++ b/core/ContextBase.cpp @@ -88,30 +88,29 @@ LocApiBase* ContextBase::createLocApi(LOC_API_ADAPTER_EVENT_MASK_T exMask) { LocApiBase* locApi = NULL; - // first if can not be MPQ - if (TARGET_MPQ != loc_get_target()) { - if (NULL == (locApi = mLBSProxy->getLocApi(mMsgTask, exMask, this))) { - void *handle = NULL; - //try to see if LocApiV02 is present - if((handle = dlopen("libloc_api_v02.so", RTLD_NOW)) != NULL) { - LOC_LOGD("%s:%d]: libloc_api_v02.so is present", __func__, __LINE__); - getLocApi_t* getter = (getLocApi_t*)dlsym(handle, "getLocApi"); - if(getter != NULL) { - LOC_LOGD("%s:%d]: getter is not NULL for LocApiV02", __func__, __LINE__); - locApi = (*getter)(mMsgTask, exMask, this); - } + if (NULL == (locApi = mLBSProxy->getLocApi(mMsgTask, exMask, this))) { + void *handle = NULL; + //try to see if LocApiV02 is present + if ((handle = dlopen("libloc_api_v02.so", RTLD_NOW)) != NULL) { + LOC_LOGD("%s:%d]: libloc_api_v02.so is present", __func__, __LINE__); + getLocApi_t* getter = (getLocApi_t*) dlsym(handle, "getLocApi"); + if (getter != NULL) { + LOC_LOGD("%s:%d]: getter is not NULL for LocApiV02", __func__, + __LINE__); + locApi = (*getter)(mMsgTask, exMask, this); } - // only RPC is the option now - else { - LOC_LOGD("%s:%d]: libloc_api_v02.so is NOT present. Trying RPC", - __func__, __LINE__); - handle = dlopen("libloc_api-rpc-qc.so", RTLD_NOW); - if (NULL != handle) { - getLocApi_t* getter = (getLocApi_t*)dlsym(handle, "getLocApi"); - if (NULL != getter) { - LOC_LOGD("%s:%d]: getter is not NULL in RPC", __func__, __LINE__); - locApi = (*getter)(mMsgTask, exMask, this); - } + } + // only RPC is the option now + else { + LOC_LOGD("%s:%d]: libloc_api_v02.so is NOT present. Trying RPC", + __func__, __LINE__); + handle = dlopen("libloc_api-rpc-qc.so", RTLD_NOW); + if (NULL != handle) { + getLocApi_t* getter = (getLocApi_t*) dlsym(handle, "getLocApi"); + if (NULL != getter) { + LOC_LOGD("%s:%d]: getter is not NULL in RPC", __func__, + __LINE__); + locApi = (*getter)(mMsgTask, exMask, this); } } } diff --git a/utils/loc_target.cpp b/utils/loc_target.cpp index 92bdca6..2da2fea 100644 --- a/utils/loc_target.cpp +++ b/utils/loc_target.cpp @@ -49,11 +49,12 @@ #define APQ8074_ID_1 "184" #define LINE_LEN 100 -#define STR_LIQUID "Liquid" -#define STR_SURF "Surf" -#define STR_MTP "MTP" -#define STR_APQ "apq" -#define STR_AUTO "auto" +#define STR_LIQUID "Liquid" +#define STR_SURF "Surf" +#define STR_MTP "MTP" +#define STR_APQ "apq" +#define STR_APQ_NO_WGR "baseband_apq_nowgr" +#define STR_AUTO "auto" #define IS_STR_END(c) ((c) == '\0' || (c) == '\n' || (c) == '\r') #define LENGTH(s) (sizeof(s) - 1) #define GPS_CHECK_NO_ERROR 0 @@ -231,11 +232,18 @@ unsigned int loc_get_target(void) gTarget = TARGET_AUTO; goto detected; } + + if( !memcmp(baseband, STR_APQ_NO_WGR, LENGTH(STR_APQ_NO_WGR)) ){ + + gTarget = TARGET_NO_GNSS; + goto detected; + } + if( !memcmp(baseband, STR_APQ, LENGTH(STR_APQ)) ){ if( !memcmp(rd_id, MPQ8064_ID_1, LENGTH(MPQ8064_ID_1)) && IS_STR_END(rd_id[LENGTH(MPQ8064_ID_1)]) ) - gTarget = TARGET_MPQ; + gTarget = TARGET_NO_GNSS; else gTarget = TARGET_APQ_SA; } diff --git a/utils/loc_target.h b/utils/loc_target.h index b76ed88..69395db 100644 --- a/utils/loc_target.h +++ b/utils/loc_target.h @@ -32,7 +32,7 @@ #define TARGET_DEFAULT TARGET_SET(GNSS_MSM, HAS_SSC) #define TARGET_MDM TARGET_SET(GNSS_MDM, HAS_SSC) #define TARGET_APQ_SA TARGET_SET(GNSS_GSS, NO_SSC) -#define TARGET_MPQ TARGET_SET(GNSS_NONE,NO_SSC) +#define TARGET_NO_GNSS TARGET_SET(GNSS_NONE, NO_SSC) #define TARGET_MSM_NO_SSC TARGET_SET(GNSS_MSM, NO_SSC) #define TARGET_QCA1530 TARGET_SET(GNSS_QCA1530, NO_SSC) #define TARGET_AUTO TARGET_SET(GNSS_AUTO, NO_SSC) |