Skip to content

Commit

Permalink
ASoC: tegra: fix maxburst settings in dmaengine code
Browse files Browse the repository at this point in the history
The I2S controllers are programmed with an "attention" level of 4 DWORDs.
This must match the configuration passed to the DMA driver, so that when
they burst in data, they don't overflow the available FIFO space. Also,
the burst size is relevant to the destination for playback, and source
for capture, not vice-versa as originally written.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org
  • Loading branch information
Stephen Warren authored and Mark Brown committed Sep 7, 2012
1 parent 57b2d68 commit a32826e
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions sound/soc/tegra/tegra_pcm.c
Original file line number Diff line number Diff line change
@@ -334,11 +334,11 @@ static int tegra_pcm_hw_params(struct snd_pcm_substream *substream,
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
slave_config.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
slave_config.dst_addr = dmap->addr;
slave_config.src_maxburst = 0;
slave_config.dst_maxburst = 4;
} else {
slave_config.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
slave_config.src_addr = dmap->addr;
slave_config.dst_maxburst = 0;
slave_config.src_maxburst = 4;
}
slave_config.slave_id = dmap->req_sel;

0 comments on commit a32826e

Please sign in to comment.