Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 609a3050 authored by Lee Jones's avatar Lee Jones Committed by Mark Brown
Browse files

ASoC: ux500_pcm: Stop pretending that we support varying address widths



The Slave Config's addr_width attribute is populated by data_width of
dma_cfg, which in turn is derived from dma_params' data_size attribute
and that comes from the slot_width which is always 16 bits (2 Bytes).
We're cutting out the middle man here and just setting the DMA Slave
Config directly.

Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent ae276e93
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -109,20 +109,19 @@ static int ux500_pcm_prepare_slave_config(struct snd_pcm_substream *substream,
{
	struct snd_soc_pcm_runtime *rtd = substream->private_data;
	struct ux500_msp_dma_params *dma_params;
	struct stedma40_chan_cfg *dma_cfg;
	int ret;

	dma_params = snd_soc_dai_get_dma_data(rtd->cpu_dai, substream);
	dma_cfg = dma_params->dma_cfg;

	ret = snd_hwparams_to_dma_slave_config(substream, params, slave_config);
	if (ret)
		return ret;

	slave_config->dst_maxburst = 4;
	slave_config->dst_addr_width = dma_cfg->dst_info.data_width;
	slave_config->src_maxburst = 4;
	slave_config->src_addr_width = dma_cfg->src_info.data_width;

	slave_config->src_addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;
	slave_config->dst_addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;

	if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
		slave_config->dst_addr = dma_params->tx_rx_addr;