diff options
| author | Steve Kondik <steve@cyngn.com> | 2016-03-10 18:19:45 -0800 |
|---|---|---|
| committer | Steve Kondik <steve@cyngn.com> | 2016-03-10 18:19:45 -0800 |
| commit | 69acf8780c156fe219d3c54c3038af98dbf98e82 (patch) | |
| tree | c9eba889458d9dee5a45cada01c574f9bdcc04ad /src | |
| parent | 419938a2f03fb5220c252dc9c005cb46c62245f5 (diff) | |
| parent | f51ce27012ea8b5b6ec63011cbbbe3ab0c6f4cbc (diff) | |
| download | android_hardware_broadcom_libbt-69acf8780c156fe219d3c54c3038af98dbf98e82.tar.gz android_hardware_broadcom_libbt-69acf8780c156fe219d3c54c3038af98dbf98e82.tar.bz2 android_hardware_broadcom_libbt-69acf8780c156fe219d3c54c3038af98dbf98e82.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
Diffstat (limited to 'src')
| -rwxr-xr-x | src/hardware.c | 29 |
1 files changed, 29 insertions, 0 deletions
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); |
