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

Takashi Iwai tiwai at suse.de
Fri Jan 9 11:26:11 CET 2015


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


More information about the Alsa-devel mailing list