On Thu, 12 Jun 2003, Clemens Ladisch wrote: > I didn't see your first post (maybe because the current list moderator > is Dave Null),
OK, so I won't feel bad sending the diff a second time, then. :)
> so I'm only guessing what your diff did.
>
[...]
> > > When in Advanced Mode, the UA-5 exposes all its interfaces in class
> > > 255/255 (Vendor/Vendor), but actually besides this all the
> > > descriptors are valid USB Audio control/interfaces/endpoints/...
[...]
> There already is a quirk type for this, QUIRK_STANDARD_INTERFACE. See
> the quirk entry for the UA-20, which behaves in the same way (the
> UA-20's interface #3 is for the MIDI ports).
That's what I hoped too (didn't want to have to change usbaudio.c if at
all possible) but it didn't seem to work. (My understanding is that
STANDARD_INTERFACE needs at least the bInterfaceSubClass info to be valid.
This isn't the case on the UA-5.)
Here's the interesting part of the quirk I proposed (mostly a rewrite of
STANDARD_INTERFACE that goes blindly trusting what usbquirks.h says):
for( i = 0; i < iface->num_altsetting; i++ )
{
alts = &iface->altsetting[i];
altsd = get_iface_desc(alts);
altsd->bInterfaceClass = USB_CLASS_AUDIO;
altsd->bInterfaceSubClass = USB_SUBCLASS_AUDIO_STREAMING;
}
[I'm not sure the overwrite of Vendor with USB_CLASS_AUDIO is strictly
required, but it didn't hurt and is consistent with changing the
subclass.]
Of course since it's my first time looking at alsa/kernel, I may just be
plain off-track. :)
S.
ua5.diff.gz
Description: Binary data
