17 Jul
2007
17 Jul
'07
10:48 a.m.
On Tue, 17 Jul 2007 10:37:21 +0200 Hans-Christian Egtvedt hcegtvedt@atmel.com wrote:
- snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &at73c213_playback_ops);
- retval = snd_pcm_lib_preallocate_pages_for_all(chip->pcm,
SNDRV_DMA_TYPE_DEV,
snd_dma_continuous_data(GFP_KERNEL),
64 * 1024, 64 * 1024);
For SNDRV_DMA_TYPE_DEV, pass the struct device pointer of the device to the third argument. Then the pre-allocator will allocate the memory via dma_alloc_coherent() with the givn device. If it's not appropriate, SNDRV_DMA_TYPE_CONTINUOUS type. Anyway, snd_dma_continuous_data() is only for SNDRV_DMA_TYPE_CONTINUOUS.
Ok, applied. Using &chip->spi->dev.
Not that I think it matters at the moment, but that's not entirely correct. The memory is used for DMA transfers to the SSC controller, not the SPI device, so you should pass the SSC's struct device here.
In other words, I think you should use &chip->ssc->pdev->dev.
HÃ¥vard