Re: [alsa-devel] [PATCH v2] ALSA: usb-audio: Add support for Akai MPC Element USB MIDI controller

From: Takashi Iwai
Date: Fri Jan 09 2015 - 05:26:20 EST


At Fri, 09 Jan 2015 09:48:42 +0100,
Clemens Ladisch wrote:
>
> Paul Bonser wrote:
> > On 01/08/2015 03:56 PM, Clemens Ladisch wrote:
> >> Paul Bonser wrote:
> >>> The Akai MPC Element incorrectly reports its bInterfaceClass as 255, but
> >>> otherwise implements the USB MIDI spec correctly.
> >>>
> >>> This adds a quirks-table.h entry which allows the device to be
> >>> recognized as a standard USB MIDI device.
> >>>
> >>> +++ b/sound/usb/quirks-table.h
> >>> +{
> >>> + /* Akai MPC Element */
> >>> + USB_DEVICE(0x09e8, 0x0021),
> >>> + .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
> >>> + .ifnum = QUIRK_ANY_INTERFACE,
> >>> + .type = QUIRK_COMPOSITE,
> >>> + .data = & (const struct snd_usb_audio_quirk[]) {
> >>> + {
> >>> + .ifnum = 0,
> >>> + .type = QUIRK_IGNORE_INTERFACE
> >>> + },
> >>> + {
> >>> + .ifnum = 1,
> >>> + .type = QUIRK_MIDI_STANDARD_INTERFACE
> >>> + },
> >>> + {
> >>> + .ifnum = -1
> >>> + }
> >>> + }
> >>> + }
> >>> +},
> >>
> >> Why a composite quirk? Does a single quirk entry not work?
> >
> > A single quirk entry results in an error message in dmesg:
> > "snd-usb-audio: probe of 3-2:1.0 failed with error -5"
>
> That message is normal for unhandled interfaces.

It's still not good to show a message, so using QUIRK_IGNORE_INTERFACE
is good enough as a workaround. So I applied it as is to for-next
branch now. Though...

> Does it actually prevent the device from working?

... it's still interesting why it needs a special handling. If we
find out more and have a better fix, let's put on top of the current
patch.


thanks,

Takashi
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/