[alsa-devel] DMA Physical Address through "snd_pcm_lib_malloc_pages"
adkuvi at gmail.com
Thu Jun 24 10:27:26 CEST 2010
I'm sorry as this is getting bit confusing for me. Playing the PCM
data I would want to pass the starting physical address of this
location to the DMA start address. Now can I access "dma_addr"
directly for this purpose?
Do I still have to allocate DMA memory or will just passing of this
dma_addr as source address suffice?
I am new to ALSA framework and it's getting a bit confusing to me.
On Thu, Jun 24, 2010 at 1:14 PM, Takashi Iwai <tiwai at suse.de> wrote:
> At Thu, 24 Jun 2010 12:52:47 +0530,
> Adish Kuvelker wrote:
>> If I use "SNDRV_DMA_TYPE_CONTINUOUS" as a parameter to pre-allocate
>> function to get contiguous locations of memory and use the function
>> snd_dma_continuous_data() would that be correct setting for my case?
> I guess no. As mentioned, it's no DMA memory, i.e. simple pages
> allocated via __get_free_pages() and co.
>> Where are the parameters of dma_addr and dma_area written to the
>> runtime structure?
> These are available only for pages properly allocated for DMA.
>> On Thu, Jun 24, 2010 at 12:45 PM, Takashi Iwai <tiwai at suse.de> wrote:
>> > At Thu, 24 Jun 2010 12:38:35 +0530,
>> > Adish Kuvelker wrote:
>> >> Hello Takashi,
>> >> I am developing a DMA Controller driver to service the PCM out data to
>> >> the Audio controller on the arm-based ATLASIII procesor. In case you
>> >> need any more information on the architecture I can pass.
>> >> Since the DMA isn't on PCI bus I am pre-allocation continuous memero
>> >> using the "snd_pcm_lib_preallocate_pages_for_all" passing
>> >> SNDDRV_DMA_TYPE_DEV and "snd_dma_continuous_data" as appropriate
>> >> parameters.
>> > snd_dma_continuous_data() is only for SNDRV_DMA_TYPE_CONTINUOUS.
>> > In this case, the pages aren't for DMA.
>> > For SNDRV_DMA_TYPE_DEV, simply pass the device pointer you use.
>> > Takashi
More information about the Alsa-devel