On Tuesday 16 June 2009 08:44:02 Sergey Lapin wrote: > On Mon, Jun 15, 2009 at 10:23:31PM -0700, Greg Kroah-Hartman wrote: > > From: Bryan Wu <cooloney@xxxxxxxxxx> > > Funtions added: > > - setup all the USB audio class device descriptors > > - handle class specific setup request > > - receive data from USB host by ISO transfer > > - play audio data by ALSA sound card > > - open and setup playback PCM interface > > - set default playback PCM parameters > > - provide playback functions for USB audio driver > > - provide PCM parameters set/get functions > > > > Test on: > > - Host: Ubuntu 8.10, kernel 2.6.27 > > - Gadget: EZKIT-BF548 with ASoC AD1980 codec > > > > Todo: > > - add real Mute control code > > - add real Volume control code > > - maybe find another way to replace dynamic buffer handling > > with static buffer allocation > > - test on Windows system > > I've tested it and alas, it doesn't work. sorry to hear that > > drivers/usb/gadget/Kconfig | 14 + > > drivers/usb/gadget/Makefile | 2 + > > drivers/usb/gadget/audio.c | 302 ++++++++++++++++++ > > drivers/usb/gadget/f_audio.c | 707 > > ++++++++++++++++++++++++++++++++++++++++++ drivers/usb/gadget/u_audio.c | > > 319 +++++++++++++++++++ > > drivers/usb/gadget/u_audio.h | 56 ++++ > > 6 files changed, 1400 insertions(+), 0 deletions(-) > > create mode 100644 drivers/usb/gadget/audio.c > > create mode 100644 drivers/usb/gadget/f_audio.c > > create mode 100644 drivers/usb/gadget/u_audio.c > > create mode 100644 drivers/usb/gadget/u_audio.h > > I've found several problems with this patch. > As first, it never frees ALSA devices. > When that is fixed, it never able to recover operation > on second load. Tested on MUSB on OMAP3530EVM. > It is very useful gadget, so I'd really like to see it fixed. > .wTotalLength in ac_header_descriptor descriptor should contain sum of > sizes of interface and unit descriptors, per Audio Device Class > specification 1.0 (also worth mentioning in documentation, because spec. > 2.0 exists too). In this patch this field contains only > USB_DT_AC_HEADER_LENGH which is totally wrong. This all magically works in > Linux, though, but making Linux-only solution here is wrong, IMHO. > Just my $0.05. > > I can invest my time on helping with this driver, > I can test on various ARM hardware. we're working on bringing a developer up-to-speed on the Blackfin/MUSB stuff, but it'll be a bit before he gets a chance to work on this. so i'll log it in our tracker so it doesnt get missed, but it'll be a huge help if you were able to take a look at this as well. -mike
Attachment:
signature.asc
Description: This is a digitally signed message part.