At Thu, 23 Aug 2007 13:43:40 -0500, Timur Tabi wrote: > > Takashi Iwai wrote: > > > Err, usually, application = user-space application. Do you mean > > really this? > > Yes. The application allocates a buffer, locks it down, and passes it to the > kernel. Since the buffer was allocated in user space, it is virtual > contiguous but not physically contiguous, hence the need for a list of > physical addresses. To the hardware, the buffer appears as a collection of > scattered buffers. Hence, scatter/gather. Hm, then it must be a really special application. I've never seen linux audio apps doing such things... The problem in your scenario is that the buffers allocated from user-space are not always DMA-able for devices, thus not always usable for the hardware. > Like I said, I haven't look at the ALSA API for S/G, so I may be talking about > an implementation of S/G that does not apply to ALSA. The ALSA SG-buffer helper is simply to allocate individual pages and gather as a virtually linear buffer. From the user-space, it's nothing but a normal linear buffer. The helper is specific to devices that can handle SG-buffers with kernel PAGE grains, and for architectures with vmap support. Anyway, the hw_params implementation is basically free for drivers. The driver can use its own SG-buffer handler if the given SG-buffer helper doesn't match with the requirement. Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel