Loading drivers/bluetooth/btfm_slim.h +1 −0 Original line number Diff line number Diff line Loading @@ -68,6 +68,7 @@ struct btfmslim { uint32_t num_rx_port; uint32_t num_tx_port; uint32_t sample_rate; struct btfmslim_ch *rx_chs; struct btfmslim_ch *tx_chs; Loading drivers/bluetooth/btfm_slim_codec.c +3 −0 Original line number Diff line number Diff line Loading @@ -134,6 +134,9 @@ int btfm_slim_dai_prepare(struct snd_pcm_substream *substream, BTFMSLIM_DBG("dai->name: %s, dai->id: %d, dai->rate: %d", dai->name, dai->id, dai->rate); /* save sample rate */ btfmslim->sample_rate = dai->rate; switch (dai->id) { case BTFM_FM_SLIM_TX: grp = true; nchan = 2; Loading drivers/bluetooth/btfm_slim_wcn3990.c +3 −15 Original line number Diff line number Diff line Loading @@ -88,12 +88,12 @@ int btfm_slim_chrk_enable_port(struct btfmslim *btfmslim, uint8_t port_num, BTFMSLIM_DBG("port(%d) enable(%d)", port_num, enable); if (rxport) { if (enable) { /* For SCO Rx, A2DP Rx */ if (enable && btfmslim->sample_rate == 48000) { /* For A2DP Rx */ reg_val = 0x1; port_bit = port_num - 0x10; reg = CHRK_SB_PGD_RX_PORTn_MULTI_CHNL_0(port_bit); BTFMSLIM_DBG("writing reg_val (%d) to reg(%x)", BTFMSLIM_DBG("writing reg_val (%d) to reg(%x) for A2DP", reg_val, reg); ret = btfm_slim_write(btfmslim, reg, 1, ®_val, IFD); if (ret) { Loading @@ -120,18 +120,6 @@ int btfm_slim_chrk_enable_port(struct btfmslim *btfmslim, uint8_t port_num, BTFMSLIM_ERR("failed to write (%d) reg 0x%x", ret, reg); goto error; } } else if (port_num == CHRK_SB_PGD_PORT_TX_SCO) { /* SCO Tx */ reg_val = 0x1 << CHRK_SB_PGD_PORT_TX_SCO; reg = CHRK_SB_PGD_TX_PORTn_MULTI_CHNL_0(port_num); BTFMSLIM_DBG("writing reg_val (%d) to reg(%x)", reg_val, reg); ret = btfm_slim_write(btfmslim, reg, 1, ®_val, IFD); if (ret) { BTFMSLIM_ERR("failed to write (%d) reg 0x%x", ret, reg); goto error; } } /* Enable Tx port hw auto recovery for underrun or overrun error */ Loading Loading
drivers/bluetooth/btfm_slim.h +1 −0 Original line number Diff line number Diff line Loading @@ -68,6 +68,7 @@ struct btfmslim { uint32_t num_rx_port; uint32_t num_tx_port; uint32_t sample_rate; struct btfmslim_ch *rx_chs; struct btfmslim_ch *tx_chs; Loading
drivers/bluetooth/btfm_slim_codec.c +3 −0 Original line number Diff line number Diff line Loading @@ -134,6 +134,9 @@ int btfm_slim_dai_prepare(struct snd_pcm_substream *substream, BTFMSLIM_DBG("dai->name: %s, dai->id: %d, dai->rate: %d", dai->name, dai->id, dai->rate); /* save sample rate */ btfmslim->sample_rate = dai->rate; switch (dai->id) { case BTFM_FM_SLIM_TX: grp = true; nchan = 2; Loading
drivers/bluetooth/btfm_slim_wcn3990.c +3 −15 Original line number Diff line number Diff line Loading @@ -88,12 +88,12 @@ int btfm_slim_chrk_enable_port(struct btfmslim *btfmslim, uint8_t port_num, BTFMSLIM_DBG("port(%d) enable(%d)", port_num, enable); if (rxport) { if (enable) { /* For SCO Rx, A2DP Rx */ if (enable && btfmslim->sample_rate == 48000) { /* For A2DP Rx */ reg_val = 0x1; port_bit = port_num - 0x10; reg = CHRK_SB_PGD_RX_PORTn_MULTI_CHNL_0(port_bit); BTFMSLIM_DBG("writing reg_val (%d) to reg(%x)", BTFMSLIM_DBG("writing reg_val (%d) to reg(%x) for A2DP", reg_val, reg); ret = btfm_slim_write(btfmslim, reg, 1, ®_val, IFD); if (ret) { Loading @@ -120,18 +120,6 @@ int btfm_slim_chrk_enable_port(struct btfmslim *btfmslim, uint8_t port_num, BTFMSLIM_ERR("failed to write (%d) reg 0x%x", ret, reg); goto error; } } else if (port_num == CHRK_SB_PGD_PORT_TX_SCO) { /* SCO Tx */ reg_val = 0x1 << CHRK_SB_PGD_PORT_TX_SCO; reg = CHRK_SB_PGD_TX_PORTn_MULTI_CHNL_0(port_num); BTFMSLIM_DBG("writing reg_val (%d) to reg(%x)", reg_val, reg); ret = btfm_slim_write(btfmslim, reg, 1, ®_val, IFD); if (ret) { BTFMSLIM_ERR("failed to write (%d) reg 0x%x", ret, reg); goto error; } } /* Enable Tx port hw auto recovery for underrun or overrun error */ Loading