Re: Trouble understanding ALSA's DMA buffers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



At Tue, 12 Jun 2007 11:36:33 -0500,
Timur Tabi wrote:
> 
> Takashi Iwai wrote:
> 
> > Yes.  And the "ping-poing" is the case that you have two periods in a
> > ring buffer.
> 
> Ok, I understand the 'periods' concept now, thanks.
> 
> So when/where does ALSA copy data to the DMA buffer?  Isn't there supposed to be some kind 
> of callback where ALSA calls the driver and says, "here's some data, please copy it to 
> your DMA buffer?"
> 
> Or does ALSA do all the copying itself whenever the driver calls snd_pcm_period_elapsed()?

It depends on the implementation, but usually the latter case.
The whole data-transfer task is done by ALSA PCM middle layer, and
each driver has to take care of the DMA setup -- as long as your
hardware can have a buffer on RAM.  If you need to copy the data to
hardware buffer manually in some way, the things become
complicated...


Takashi
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux