summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Kondik <steve@cyngn.com>2016-03-10 18:19:45 -0800
committerSteve Kondik <steve@cyngn.com>2016-03-10 18:19:45 -0800
commit69acf8780c156fe219d3c54c3038af98dbf98e82 (patch)
treec9eba889458d9dee5a45cada01c574f9bdcc04ad
parent419938a2f03fb5220c252dc9c005cb46c62245f5 (diff)
parentf51ce27012ea8b5b6ec63011cbbbe3ab0c6f4cbc (diff)
downloadandroid_hardware_broadcom_libbt-staging/cm-13.0+r22.tar.gz
android_hardware_broadcom_libbt-staging/cm-13.0+r22.tar.bz2
android_hardware_broadcom_libbt-staging/cm-13.0+r22.zip
Merge tag 'android-6.0.1_r22' of https://android.googlesource.com/platform/hardware/broadcom/libbt into cm-13.0staging/cm-13.0+r22stable/cm-13.0-ZNH2KBstable/cm-13.0-ZNH2K
Android 6.0.1 release 22
-rw-r--r--Android.mk4
-rw-r--r--include/vnd_carp.txt2
-rw-r--r--include/vnd_glacier.txt9
-rw-r--r--include/vnd_grant.txt9
-rw-r--r--include/vnd_koi.txt12
-rw-r--r--include/vnd_nemo.txt1
-rw-r--r--include/vnd_smelt.txt2
-rw-r--r--include/vnd_sparrow.txt1
-rw-r--r--include/vnd_sturgeon.txt2
-rw-r--r--include/vnd_wren.txt1
-rwxr-xr-xsrc/hardware.c29
11 files changed, 69 insertions, 3 deletions
diff --git a/Android.mk b/Android.mk
index 6f68ce7..8232696 100644
--- a/Android.mk
+++ b/Android.mk
@@ -6,6 +6,10 @@ include $(CLEAR_VARS)
BDROID_DIR := $(TOP_DIR)system/bt
+ifeq ($(strip $(USE_BLUETOOTH_BCM4343)),true)
+LOCAL_CFLAGS += -DUSE_BLUETOOTH_BCM4343
+endif
+
LOCAL_SRC_FILES := \
src/bt_vendor_brcm.c \
src/hardware.c \
diff --git a/include/vnd_carp.txt b/include/vnd_carp.txt
index bcd0d0e..0a86aeb 100644
--- a/include/vnd_carp.txt
+++ b/include/vnd_carp.txt
@@ -2,7 +2,7 @@ BLUETOOTH_UART_DEVICE_PORT = "/dev/ttyHS6"
FW_PATCHFILE_LOCATION = "/vendor/firmware/"
BT_WAKE_VIA_PROC = TRUE
UART_TARGET_BAUD_RATE = 3000000
-LPM_IDLE_TIMEOUT_MULTIPLE = 5
+LPM_IDLE_TIMEOUT_MULTIPLE = 2
LPM_BT_WAKE_POLARITY = 0
LPM_HOST_WAKE_POLARITY = 0
PROC_BTWRITE_TIMER_TIMEOUT_MS = 0
diff --git a/include/vnd_glacier.txt b/include/vnd_glacier.txt
new file mode 100644
index 0000000..1cb612e
--- /dev/null
+++ b/include/vnd_glacier.txt
@@ -0,0 +1,9 @@
+BLUETOOTH_UART_DEVICE_PORT = "/dev/ttyMFD0"
+FW_PATCHFILE_LOCATION = "/vendor/firmware/"
+FW_PATCH_SETTLEMENT_DELAY_MS = 200
+LPM_IDLE_TIMEOUT_MULTIPLE = 5
+SCO_USE_I2S_INTERFACE = FALSE
+BTVND_DBG = FALSE
+BTHW_DBG = TRUE
+VNDUSERIAL_DBG = FALSE
+UPIO_DBG = FALSE
diff --git a/include/vnd_grant.txt b/include/vnd_grant.txt
new file mode 100644
index 0000000..1cb612e
--- /dev/null
+++ b/include/vnd_grant.txt
@@ -0,0 +1,9 @@
+BLUETOOTH_UART_DEVICE_PORT = "/dev/ttyMFD0"
+FW_PATCHFILE_LOCATION = "/vendor/firmware/"
+FW_PATCH_SETTLEMENT_DELAY_MS = 200
+LPM_IDLE_TIMEOUT_MULTIPLE = 5
+SCO_USE_I2S_INTERFACE = FALSE
+BTVND_DBG = FALSE
+BTHW_DBG = TRUE
+VNDUSERIAL_DBG = FALSE
+UPIO_DBG = FALSE
diff --git a/include/vnd_koi.txt b/include/vnd_koi.txt
new file mode 100644
index 0000000..a912e5c
--- /dev/null
+++ b/include/vnd_koi.txt
@@ -0,0 +1,12 @@
+BLUETOOTH_UART_DEVICE_PORT = "/dev/ttySAC0"
+FW_PATCHFILE_LOCATION = "/vendor/firmware/"
+BT_WAKE_VIA_PROC = FALSE
+BT_WAKE_VIA_USERIAL_IOCTL = FALSE
+UART_TARGET_BAUD_RATE = 3000000
+SCO_USE_I2S_INTERFACE = FALSE
+LPM_IDLE_TIMEOUT_MULTIPLE = 1
+BTVND_DBG = FALSE
+BTHW_DBG = TRUE
+VNDUSERIAL_DBG = FALSE
+UPIO_DBG = FALSE
+FW_PATCH_SETTLEMENT_DELAY_MS = 200
diff --git a/include/vnd_nemo.txt b/include/vnd_nemo.txt
index a96c1a5..e4d0a51 100644
--- a/include/vnd_nemo.txt
+++ b/include/vnd_nemo.txt
@@ -14,3 +14,4 @@ BTVND_DBG = FALSE
BTHW_DBG = TRUE
VNDUSERIAL_DBG = FALSE
UPIO_DBG = FALSE
+FW_PATCH_SETTLEMENT_DELAY_MS = 200
diff --git a/include/vnd_smelt.txt b/include/vnd_smelt.txt
index bcd0d0e..0a86aeb 100644
--- a/include/vnd_smelt.txt
+++ b/include/vnd_smelt.txt
@@ -2,7 +2,7 @@ BLUETOOTH_UART_DEVICE_PORT = "/dev/ttyHS6"
FW_PATCHFILE_LOCATION = "/vendor/firmware/"
BT_WAKE_VIA_PROC = TRUE
UART_TARGET_BAUD_RATE = 3000000
-LPM_IDLE_TIMEOUT_MULTIPLE = 5
+LPM_IDLE_TIMEOUT_MULTIPLE = 2
LPM_BT_WAKE_POLARITY = 0
LPM_HOST_WAKE_POLARITY = 0
PROC_BTWRITE_TIMER_TIMEOUT_MS = 0
diff --git a/include/vnd_sparrow.txt b/include/vnd_sparrow.txt
index db52a83..fdb35a8 100644
--- a/include/vnd_sparrow.txt
+++ b/include/vnd_sparrow.txt
@@ -8,3 +8,4 @@ VNDUSERIAL_DBG = FALSE
UPIO_DBG = FALSE
BT_WAKE_VIA_PROC = TRUE
PROC_BTWRITE_TIMER_TIMEOUT_MS = 0
+FW_PATCH_SETTLEMENT_DELAY_MS = 200
diff --git a/include/vnd_sturgeon.txt b/include/vnd_sturgeon.txt
index ae8177d..287b929 100644
--- a/include/vnd_sturgeon.txt
+++ b/include/vnd_sturgeon.txt
@@ -5,7 +5,7 @@ UART_TARGET_BAUD_RATE = 3000000
LPM_IDLE_TIMEOUT_MULTIPLE = 5
LPM_BT_WAKE_POLARITY = 0
LPM_HOST_WAKE_POLARITY = 0
-SCO_USE_I2S_INTERFACE = FALSE
+SCO_USE_I2S_INTERFACE = TRUE
SCO_I2SPCM_IF_ROLE = 0
BTVND_DBG = FALSE
BTHW_DBG = FALSE
diff --git a/include/vnd_wren.txt b/include/vnd_wren.txt
index db52a83..fdb35a8 100644
--- a/include/vnd_wren.txt
+++ b/include/vnd_wren.txt
@@ -8,3 +8,4 @@ VNDUSERIAL_DBG = FALSE
UPIO_DBG = FALSE
BT_WAKE_VIA_PROC = TRUE
PROC_BTWRITE_TIMER_TIMEOUT_MS = 0
+FW_PATCH_SETTLEMENT_DELAY_MS = 200
diff --git a/src/hardware.c b/src/hardware.c
index a5513c7..0dbab92 100755
--- a/src/hardware.c
+++ b/src/hardware.c
@@ -842,6 +842,15 @@ void hw_config_cback(void *p_mem)
strncpy(hw_cfg_cb.local_chip_name, p_name, \
LOCAL_NAME_BUFFER_LEN-1);
}
+#ifdef USE_BLUETOOTH_BCM4343
+ else if ((p_name = strstr(p_tmp, "4343")) != NULL)
+ {
+ snprintf(hw_cfg_cb.local_chip_name,
+ LOCAL_NAME_BUFFER_LEN-1, "BCM%s", p_name);
+ strncpy(p_name, hw_cfg_cb.local_chip_name,
+ LOCAL_NAME_BUFFER_LEN-1);
+ }
+#endif
else
{
strncpy(hw_cfg_cb.local_chip_name, "UNKNOWN", \
@@ -1460,8 +1469,28 @@ void hw_sco_config(void)
* and FM on the same PCM pins, we defer Bluetooth audio (SCO/eSCO)
* configuration till SCO/eSCO is being established;
* i.e. in hw_set_audio_state() call.
+ * When configured as I2S only, Bluetooth audio configuration is executed
+ * immediately with SCO_CODEC_CVSD by default.
*/
+ if (SCO_INTERFACE_I2S == sco_bus_interface) {
+ HC_BT_HDR *p_buf = NULL;
+ uint16_t cmd_u16 = HCI_CMD_PREAMBLE_SIZE + SCO_I2SPCM_PARAM_SIZE;
+
+ if (bt_vendor_cbacks)
+ p_buf = (HC_BT_HDR *)bt_vendor_cbacks->alloc(BT_HC_HDR_SIZE + cmd_u16);
+
+ if (p_buf) {
+ p_buf->event = MSG_STACK_TO_HC_HCI_CMD;
+ p_buf->offset = 0;
+ p_buf->layer_specific = 0;
+ p_buf->len = cmd_u16;
+ hw_sco_i2spcm_config(p_buf, SCO_CODEC_CVSD);
+ } else {
+ ALOGE("Cannot allocate memory for p_buf in hw_sco_config sco config");
+ }
+ }
+
if (bt_vendor_cbacks)
{
bt_vendor_cbacks->scocfg_cb(BT_VND_OP_RESULT_SUCCESS);