From 574f494777d6a213365ea07273469b61a1014c07 Mon Sep 17 00:00:00 2001 From: Meng Wang Date: Mon, 18 Feb 2019 12:59:41 +0800 Subject: [PATCH] asoc: kona: update parameters for RX/TX backend Samplerate, channels and bit rate are not updated for MSM_BACKEND_DAI_WSA_CDC_DMA_RX_*, MSM_BACKEND_DAI_RX_CDC_DMA_RX_*, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_*, MSM_BACKEND_DAI_TX_CDC_DMA_TX_*. Add hw_params_fixup function for these BE DAIs. Change-Id: Ia21f1cf5742e3acc6549319dcedfde07233ed161 Signed-off-by: Meng Wang --- asoc/kona.c | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/asoc/kona.c b/asoc/kona.c index b34b80afc18d..11983c1d1ddb 100644 --- a/asoc/kona.c +++ b/asoc/kona.c @@ -3292,18 +3292,43 @@ static int msm_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd, mi2s_tx_cfg[TERT_MI2S].channels; break; + case MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0: + case MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1: + case MSM_BACKEND_DAI_RX_CDC_DMA_RX_0: + case MSM_BACKEND_DAI_RX_CDC_DMA_RX_1: + case MSM_BACKEND_DAI_RX_CDC_DMA_RX_2: + case MSM_BACKEND_DAI_RX_CDC_DMA_RX_3: + idx = msm_cdc_dma_get_idx_from_beid(dai_link->id); + param_set_mask(params, SNDRV_PCM_HW_PARAM_FORMAT, + cdc_dma_rx_cfg[idx].bit_format); + rate->min = rate->max = cdc_dma_rx_cfg[idx].sample_rate; + channels->min = channels->max = cdc_dma_rx_cfg[idx].channels; + break; + + case MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1: + case MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2: + case MSM_BACKEND_DAI_TX_CDC_DMA_TX_0: + case MSM_BACKEND_DAI_TX_CDC_DMA_TX_3: + case MSM_BACKEND_DAI_TX_CDC_DMA_TX_4: case MSM_BACKEND_DAI_VA_CDC_DMA_TX_0: case MSM_BACKEND_DAI_VA_CDC_DMA_TX_1: case MSM_BACKEND_DAI_VA_CDC_DMA_TX_2: idx = msm_cdc_dma_get_idx_from_beid(dai_link->id); param_set_mask(params, SNDRV_PCM_HW_PARAM_FORMAT, - cdc_dma_tx_cfg[idx].bit_format); + cdc_dma_tx_cfg[idx].bit_format); rate->min = rate->max = cdc_dma_tx_cfg[idx].sample_rate; channels->min = channels->max = cdc_dma_tx_cfg[idx].channels; break; - default: + case MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0: + param_set_mask(params, SNDRV_PCM_HW_PARAM_FORMAT, + SNDRV_PCM_FORMAT_S32_LE); rate->min = rate->max = SAMPLING_RATE_8KHZ; + channels->min = channels->max = msm_vi_feed_tx_ch; + break; + + default: + rate->min = rate->max = SAMPLING_RATE_48KHZ; break; }