On 10/16/2013 10:18 AM, Nicolin Chen wrote: [...]
- struct snd_dmaengine_pcm_config - Configuration data for dmaengine based PCM
diff --git a/sound/soc/soc-generic-dmaengine-pcm.c b/sound/soc/soc-generic-dmaengine-pcm.c index e29ec3c..dd72964 100644 --- a/sound/soc/soc-generic-dmaengine-pcm.c +++ b/sound/soc/soc-generic-dmaengine-pcm.c @@ -142,7 +142,7 @@ static int dmaengine_pcm_new(struct snd_soc_pcm_runtime *rtd) struct dmaengine_pcm *pcm = soc_platform_to_pcm(rtd->platform); const struct snd_dmaengine_pcm_config *config = pcm->config; struct snd_pcm_substream *substream;
- unsigned int i;
unsigned int i, type = SNDRV_DMA_TYPE_DEV; int ret;
for (i = SNDRV_PCM_STREAM_PLAYBACK; i <= SNDRV_PCM_STREAM_CAPTURE; i++) {
@@ -162,8 +162,10 @@ static int dmaengine_pcm_new(struct snd_soc_pcm_runtime *rtd) goto err_free; }
ret = snd_pcm_lib_preallocate_pages(substream,
SNDRV_DMA_TYPE_DEV,
if (pcm->flags & SND_DMAENGINE_PCM_FLAG_DMA_IRAM)
type = SNDRV_DMA_TYPE_DEV_IRAM;
Should we just make this the default, after all it will fallback to normal memory if no iram region has been specified.
ret = snd_pcm_lib_preallocate_pages(substream, type, dmaengine_dma_dev(pcm, substream), config->prealloc_buffer_size, config->pcm_hardware->buffer_bytes_max);