[alsa-devel] problem with usb-audio and oss emulation

Kunal Singh kunal at singhkunal.com
Mon May 26 16:40:11 CEST 2008


    I am working on a ARM based target with 2.6.23 Kernel.  My project 
involves streaming data from a USB-Audio Device (an iPod) and playing it 
back on the target. I am using OSS-emulation API to communicate with the 
audio devices.
    What I am able to do:
    (1) I have a sound card in my target. This is mapped to card0. I can 
open the "dsp" device and can playback any audio data on this.
    (2) I have enabled the usb-audio module support in kernel 
configuration.   When I connect iPod to the target, I can see a new card 
"card1" being added in the /proc/asound/ directory.
    (3) I can open the "dsp1" device and can read from it. When I 
connect a "USB-Analyzer" I can see some valid data being streamed to the 

    However, I am stuck with following issues:
    (1) The data being received on the target (in user mode) is junk. I 
put some printfs in the function "retire_capture_urb" in file 
"/linux/sound/usb/usbaudio.c", and I can see that the "data" which I see 
through usb-analzyer is reaching till this point. However, there seem to 
be some problem with one of the "snd_pmc_oss_ReadN" functions in file 
"http://lxr.linux.no/linux/sound/core/oss/pcm_oss.c". I am not able to 
exactly trace the problem, but I think that the "byte count" and "buffer 
address" being passed to snd-usb-audio is getting messed up some where. 
Has any one faced similar problems before?
    (2) Once I connect the iPod to my target, I can not any more use the 
default sound card. I read on the oss-emulation tutorial that this could 
be a problem with "dsp_map". But I am not able to check the current 
    Can some one give me some pointers for further debugging?

Thanks and Regards,
Kunal Singh

More information about the Alsa-devel mailing list