[alsa-devel] mapping externally allocated Scatter Gather DMA buffers

Manu Abraham abraham.manu at gmail.com
Tue Nov 9 12:14:16 CET 2010

On Tue, Oct 26, 2010 at 12:54 PM, Jaroslav Kysela <perex at perex.cz> wrote:
> On Tue, 26 Oct 2010, Manu Abraham wrote:
>> Hi,
>> I have been wondering how to interface a Scatter Gather region as a DMA
>> buffer for an Audio Grabbing device.
>> The device is a NOC type device, similar to a SOC, the audio grabber is a
>> part of it, for realizing the audio
>> capabilities on the device.
>> The hardware DMA is mostly a Scatter Gather based engine, and it can be
>> described thus, briefly.
> Use snd_pcm_lib_preallocate_pages_for_all() - type SNDRV_DMA_TYPE_DEV_SG and
> snd_pcm_sgbuf_* routines. Check hda_intel.c source for more details.

I have something like this:

testbox ~ # arecord -L
    HDA ATI SB, ALC889A Analog
    Default Audio Device
    HDA ATI SB, ALC889A Analog
    Front speakers
    HDA ATI SB, ALC889A Analog
    4.0 Surround output to Front and Rear speakers
    HDA ATI SB, ALC889A Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
    HDA ATI SB, ALC889A Analog
    5.0 Surround output to Front, Center and Rear speakers
    HDA ATI SB, ALC889A Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
    HDA ATI SB, ALC889A Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
    HDA ATI SB, ALC889A Digital
    IEC958 (S/PDIF) Digital Audio Output
    Discard all samples (playback) or generate zero samples (capture)
    BGT3595-0, SAA7231 PCM
    Default Audio Device

testbox ~ # arecord -Dhw:2,0
Recording WAVE 'stdin' : Unsigned 8 bit, Rate 8000 Hz, Mono
arecord: set_params:957: Broken configuration for this PCM: no
configurations available

[  719.292194] saa7231_capture_open (0): ()
[  719.292390] saa7231_hw_free (0): DEBUG: Removing IRQ event ..
[  719.292393] saa7231_remove_irqevent (0): Removing IRQ Event:43 ......
[  719.292395] saa7231_hw_free (0): DEBUG: Stream exiting ..
[  719.292397] saa7231_hw_free (0): DEBUG: Freeing ptable ...
[  719.292398] saa7231_capture_close (0): DEBUG: Closing stream

Any idea, why saa7231_hw_params is not getting invoked ?


More information about the Alsa-devel mailing list