Hi,
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 target.
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 settings.
Can some one give me some pointers for further debugging?
Thanks and Regards, Kunal Singh www.singhkunal.com