summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Kondik <steve@cyngn.com>2016-01-08 21:35:31 -0800
committerSteve Kondik <steve@cyngn.com>2016-01-08 21:35:31 -0800
commit1aafa739c36735306a2c197477aae5673750fb3f (patch)
tree6bc0334ff4b5ca9e5cb68e70a884afad58072318
parent59979719e55522da01b07f95d4d3e1a82ad43d24 (diff)
parent2a304f2362a41017dfe91255d221186182436a81 (diff)
downloadandroid_hardware_qcom_bt-1aafa739c36735306a2c197477aae5673750fb3f.tar.gz
android_hardware_qcom_bt-1aafa739c36735306a2c197477aae5673750fb3f.tar.bz2
android_hardware_qcom_bt-1aafa739c36735306a2c197477aae5673750fb3f.zip
Merge branch 'LA.BF.1.1.3_rb1.7' of git://codeaurora.org/platform/hardware/qcom/bt into cm-13.0stable/cm-13.0-caf-ZNH2KBstable/cm-13.0-caf-ZNH2Kstable/cm-13.0-caf-ZNH0E
-rw-r--r--libbt-vendor/src/bt_vendor_qcom.c42
1 files changed, 28 insertions, 14 deletions
diff --git a/libbt-vendor/src/bt_vendor_qcom.c b/libbt-vendor/src/bt_vendor_qcom.c
index 98b6088..0dbb612 100644
--- a/libbt-vendor/src/bt_vendor_qcom.c
+++ b/libbt-vendor/src/bt_vendor_qcom.c
@@ -50,7 +50,9 @@
#endif
#define CMD_TIMEOUT 0x22
-void wait_for_patch_download();
+
+static void wait_for_patch_download(bool is_ant_req);
+
/******************************************************************************
** Externs
******************************************************************************/
@@ -238,8 +240,8 @@ bool can_perform_action(char action) {
ALOGV("%s: on : value is: %d", __func__, value);
if(value == 1)
{
- property_get("wc_transport.patch_dnld_inprog", inProgress, "0");
- if((is_soc_initialized() == true) || (strcmp(inProgress,"1") == 0))
+ property_get("wc_transport.patch_dnld_inprog", inProgress, "null");
+ if((is_soc_initialized() == true) || (strcmp(inProgress,"null") != 0))
{
value++;
ALOGV("%s: on : value is incremented to : %d", __func__, value);
@@ -249,15 +251,19 @@ bool can_perform_action(char action) {
{
value++;
}
+
if (value == 1)
can_perform = true;
- else if (value > 2) return false;
- } else {
+ else if (value > 2)
+ return false;
+ }
+ else {
ALOGV("%s: off : value is: %d", __func__, value);
value--;
if (value == 0)
can_perform = true;
- else if (value < 0) return false;
+ else if (value < 0)
+ return false;
}
snprintf(ref_count, 3, "%d", value);
@@ -765,12 +771,14 @@ static int op(bt_vendor_opcode_t opcode, void *param)
break;
case BT_SOC_ROME:
{
- wait_for_patch_download();
+ wait_for_patch_download(is_ant_req);
property_get("ro.bluetooth.emb_wp_mode", emb_wp_mode, false);
if (!is_soc_initialized()) {
- if (property_set("wc_transport.patch_dnld_inprog", "1") < 0) {
- ALOGE("%s: Failed to set property", __FUNCTION__);
+ char* dlnd_inprog = is_ant_req ? "ant" : "bt";
+ if (property_set("wc_transport.patch_dnld_inprog", dlnd_inprog) < 0) {
+ ALOGE("%s: Failed to set dnld_inprog %s", __FUNCTION__, dlnd_inprog);
}
+
fd = userial_vendor_open((tUSERIAL_CFG *) &userial_init_cfg);
if (fd < 0) {
ALOGE("userial_vendor_open returns err");
@@ -845,7 +853,7 @@ static int op(bt_vendor_opcode_t opcode, void *param)
}
}
}
- if (property_set("wc_transport.patch_dnld_inprog", "0") < 0) {
+ if (property_set("wc_transport.patch_dnld_inprog", "null") < 0) {
ALOGE("%s: Failed to set property", __FUNCTION__);
}
@@ -1063,7 +1071,7 @@ static void ssr_cleanup(int reason) {
int ret;
unsigned char trig_ssr = 0xEE;
ALOGI("ssr_cleanup");
- if (property_set("wc_transport.patch_dnld_inprog", "0") < 0) {
+ if (property_set("wc_transport.patch_dnld_inprog", "null") < 0) {
ALOGE("%s: Failed to set property", __FUNCTION__);
}
@@ -1117,12 +1125,18 @@ static void cleanup( void )
/* Check for one of the cients ANT/BT patch download is already in
** progress if yes wait till complete
*/
-void wait_for_patch_download() {
+void wait_for_patch_download(bool is_ant_req) {
ALOGV("%s:", __FUNCTION__);
char inProgress[PROPERTY_VALUE_MAX] = {'\0'};
while (1) {
- property_get("wc_transport.patch_dnld_inprog", inProgress, "0");
- if(strcmp(inProgress,"1") == 0) {
+ property_get("wc_transport.patch_dnld_inprog", inProgress, "null");
+
+ if(is_ant_req && !strcmp(inProgress,"bt") ) {
+ //ANT request, wait for BT to finish
+ usleep(50000);
+ }
+ else if(!is_ant_req && !strcmp(inProgress,"ant") ) {
+ //BT request, wait for ANT to finish
usleep(50000);
}
else {