summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRupesh Tatiya <rtatiya@codeaurora.org>2016-09-08 09:33:04 +0530
committerRupesh Tatiya <rtatiya@codeaurora.org>2016-09-08 15:05:52 +0530
commit76027816133992bfbd6dc243ecb80b926cf56601 (patch)
treeb599db05083091b603dc713734f3d6f41246a05d
parent574742a7fa955de8d32642c8061e2292698f5370 (diff)
downloadandroid_hardware_qcom_sdm845_bt-76027816133992bfbd6dc243ecb80b926cf56601.tar.gz
android_hardware_qcom_sdm845_bt-76027816133992bfbd6dc243ecb80b926cf56601.tar.bz2
android_hardware_qcom_sdm845_bt-76027816133992bfbd6dc243ecb80b926cf56601.zip
Set wc_transport.stack_bdaddr property
This property is used by wcnss filter to set BD address. If not set, BD address are all zeros, leading to connection failures. CRs-Fixed: 1064473 Change-Id: Ie5f7eae873655e35d7beaf927f3c88ab61ba818f
-rw-r--r--libbt-vendor/include/bt_vendor_qcom.h1
-rw-r--r--libbt-vendor/src/bt_vendor_qcom.c12
2 files changed, 12 insertions, 1 deletions
diff --git a/libbt-vendor/include/bt_vendor_qcom.h b/libbt-vendor/include/bt_vendor_qcom.h
index dd956cf..ac8d2fd 100644
--- a/libbt-vendor/include/bt_vendor_qcom.h
+++ b/libbt-vendor/include/bt_vendor_qcom.h
@@ -69,6 +69,7 @@ enum {
BT_STATUS_FAIL,
BT_STATUS_INVAL,
BT_STATUS_NOMEM,
+ BT_STATUS_PROP_FAILURE,
};
struct bt_qcom_struct {
diff --git a/libbt-vendor/src/bt_vendor_qcom.c b/libbt-vendor/src/bt_vendor_qcom.c
index 09583d5..cceeb59 100644
--- a/libbt-vendor/src/bt_vendor_qcom.c
+++ b/libbt-vendor/src/bt_vendor_qcom.c
@@ -585,7 +585,7 @@ static inline void print_bdaddr(unsigned char *addr)
static int init(const bt_vendor_callbacks_t *cb, unsigned char *bdaddr)
{
- char address[PROPERTY_VALUE_MAX];
+ char prop[PROPERTY_VALUE_MAX] = {0};
struct bt_qcom_struct *temp = NULL;
int ret = BT_STATUS_SUCCESS, i;
@@ -611,8 +611,18 @@ static int init(const bt_vendor_callbacks_t *cb, unsigned char *bdaddr)
temp->ant_fd = -1;
temp->soc_type = get_bt_soc_type();
soc_init(temp->soc_type);
+
le2bd(bdaddr, temp->bdaddr);
print_bdaddr(temp->bdaddr);
+ snprintf(prop, sizeof(prop), "%02x:%02x:%02x:%02x:%02x:%02x",
+ temp->bdaddr[0], temp->bdaddr[1], temp->bdaddr[2],
+ temp->bdaddr[3], temp->bdaddr[4], temp->bdaddr[5]);
+ ret = property_set("wc_transport.stack_bdaddr", prop);
+ if (ret < 0) {
+ ALOGE("Failed to set wc_transport.stack_bdaddr prop, ret = %d", ret);
+ ret = -BT_STATUS_PROP_FAILURE;
+ goto out;
+ }
/* TODO: Move these fields inside bt_qcom context */
#ifdef WIFI_BT_STATUS_SYNC