Make A2DP Offload max bitpool configurable by device.
Set default a2dp offload bitpool for 44.1kHz hi-quality stream.
Avoid bt fw from using excessively high bitpools even if supported.
Change-Id: Iae3d5e16a77a09c81ad12573fc66f1181fae836c
Signed-off-by: Sridhar Vashist <svashist@motorola.com>
diff --git a/include/bt_vendor_brcm_a2dp.h b/include/bt_vendor_brcm_a2dp.h
index 9601111..5df91a8 100644
--- a/include/bt_vendor_brcm_a2dp.h
+++ b/include/bt_vendor_brcm_a2dp.h
@@ -81,6 +81,11 @@
#define BRCM_A2DP_OFFLOAD_SRC_SF AUDIO_ROUTE_SF_48K
#endif
+#ifndef BRCM_A2DP_OFFLOAD_MAX_BITPOOL
+/* High quality setting @ 44.1 kHz */
+#define BRCM_A2DP_OFFLOAD_MAX_BITPOOL 53
+#endif
+
#ifndef BRCM_A2DP_OFFLOAD_PCM_PIN_FCN
#define BRCM_A2DP_OFFLOAD_PCM_PIN_FCN PCM_PIN_FCN_I2S_SLAVE
#endif
diff --git a/src/bt_vendor_brcm_a2dp.c b/src/bt_vendor_brcm_a2dp.c
index 0526196..b5df5fb 100644
--- a/src/bt_vendor_brcm_a2dp.c
+++ b/src/bt_vendor_brcm_a2dp.c
@@ -258,8 +258,9 @@
parsed_info->block_length = *codec_info & A2D_SBC_IE_BLOCKS_MSK;
parsed_info->num_subbands = *codec_info & A2D_SBC_IE_SUBBAND_MSK;
parsed_info->alloc_method = *codec_info & A2D_SBC_IE_ALLOC_MD_MSK;
- codec_info += 2;
- parsed_info->bitpool_size = *codec_info; // MAX BITPOOL //
+ codec_info += 2; /* MAX Bitpool */
+ parsed_info->bitpool_size = (*codec_info > BRCM_A2DP_OFFLOAD_MAX_BITPOOL) ?
+ BRCM_A2DP_OFFLOAD_MAX_BITPOOL : (*codec_info);
if(MULTI_BIT_SET(parsed_info->sampling_freq))
status = A2D_BAD_SAMP_FREQ;