James Courtier-Dutton wrote: > I am looking to implement support for the E-Mu USB cards. > The card is basically following a mix of USB 1.0 and USB 2.0 descriptors. > > The bInterfaceClass field of the standard interface descriptors for the > Audio Control, Audio Streaming, and MIDI Streaming interfaces are set to > 0xFF (vendor-specific) instead of 0x01 (USB Audio). > > Can I put in a quirk into the snd-usb-audio driver to handle this? There are no class-specific descriptors, so you cannot simply use an AUDIO_STANDARD_INTERFACE quirk. It would be possible to hardcode a specfifc sample format with an AUDIO_FIXED_ENDPOINT quirk, but this doesn't work when there is more than one alternate setting. I think you have to manually add several sample formats, like in the UA-1000 quirk, but calling add_audio_endpoint() several times. The asynchronous feedback of the output endpoints should work; it does with the SB Audigy 2 NX in high speed mode. Please note that the descriptors may be different in full speed mode. QUIRK_MIDI_FIXED_ENDPOINT should work for interface 3. > The card also has customised controls. Can one add those to > snd-usb-audio, or would it be better to add those to a totally new > driver? usbmixer.c currently doesn't have a mechanism to add mixer controls that are not listed in the descriptors, but it should be possible to create the data structures to describe those. A totally new driver might be a good idea if the core part of usbaudio.c were in a library. I always planned to do that when I'd find some time. Regards, Clemens _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel