Hi all, I have been trying to get the USB isochronous stack to work on a development board supporting ARM 10 core. I built the kernel with audio support and have been trying to cat a wav file into the /dev/dsp device which is registered to the USB 2.0 audio speakers I am using. The enumeration of the device works correctly and the HC starts issuing SOF packets (which I have traced using a USB analyzer). I execute the following command
cat wmpaud1.wav > /dev/dsp The above command calls the function usb_audio_write() repeatedly in the "audio.c" file in the "linux_2.6.11.11_source\drivers\usb\class" directory. This function in turn calls the usbout_start routine which finally submits the audio data to the USB driver usb_submit_urb(). When I am doing this no transactions are happening on the bus. To debug the program, I enabled a printk in the usbout_complete() completion routine. Once I do this, the stack starts to pump about 880 bytes in 10 transactions. Again on inserting another printk in the ehci_irq() routine just prior to ehci_work call in ehci-hcd.c file, the number of transactions increased to 30. But the same image when run repeatedly shows different number of OUT transactions. I am not sure why this behaviour is happening. Maybe someone could help me with a clearer understanding of the Audio / Isochronous stack in Linux 2.6 kernel. Thanks and with regards, Kaustubh Sarwate ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_idv37&alloc_id865&op=click _______________________________________________ [email protected] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
