mirror of
https://github.com/torvalds/linux.git
synced 2024-09-21 07:23:06 +00:00
ASoC: qcom: q6apm-lpass-dais: Implement proper channel mapping
The set_channel_map() implementation in q6apm-lpass-dais driver was copying older pre-Audioreach code from q6afe-dai driver, but not really using it. The code sets active channel mask based on passed channel mapping, but Audioreach code does not use that mask ever. Audioreach module configuration does have on the other hand proper channel mapping field, which should supersed that active channel mask. Drop the unused active channel mask and implement proper mapping of channels in q6apm-lpass-dais driver. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://msgid.link/r/20240520-asoc-x1e80100-4-channel-mapping-v4-2-f657159b4aad@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
965cc040bf
commit
22ad2e3c21
|
@ -755,7 +755,6 @@ struct audioreach_module_config {
|
|||
|
||||
u16 data_format;
|
||||
u16 num_channels;
|
||||
u16 active_channels_mask;
|
||||
u16 dp_idx;
|
||||
u32 channel_allocation;
|
||||
u32 sd_line_mask;
|
||||
|
|
|
@ -33,7 +33,7 @@ static int q6dma_set_channel_map(struct snd_soc_dai *dai,
|
|||
|
||||
struct q6apm_lpass_dai_data *dai_data = dev_get_drvdata(dai->dev);
|
||||
struct audioreach_module_config *cfg = &dai_data->module_config[dai->id];
|
||||
int ch_mask;
|
||||
int i;
|
||||
|
||||
switch (dai->id) {
|
||||
case WSA_CODEC_DMA_TX_0:
|
||||
|
@ -58,7 +58,8 @@ static int q6dma_set_channel_map(struct snd_soc_dai *dai,
|
|||
tx_num);
|
||||
return -EINVAL;
|
||||
}
|
||||
ch_mask = *tx_ch_mask;
|
||||
for (i = 0; i < tx_num; i++)
|
||||
cfg->channel_map[i] = tx_ch_mask[i];
|
||||
|
||||
break;
|
||||
case WSA_CODEC_DMA_RX_0:
|
||||
|
@ -81,7 +82,8 @@ static int q6dma_set_channel_map(struct snd_soc_dai *dai,
|
|||
rx_num);
|
||||
return -EINVAL;
|
||||
}
|
||||
ch_mask = *rx_ch_mask;
|
||||
for (i = 0; i < rx_num; i++)
|
||||
cfg->channel_map[i] = rx_ch_mask[i];
|
||||
|
||||
break;
|
||||
default:
|
||||
|
@ -90,8 +92,6 @@ static int q6dma_set_channel_map(struct snd_soc_dai *dai,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
cfg->active_channels_mask = ch_mask;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user