Re: hw_params function and OSS emulation

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

 



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

[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