Andy Shevchenko <[email protected]> writes: > +Cc: Greg, Felipe and Takashi. I hope they would point you to a right > direction. > > On Sun, Oct 1, 2017 at 9:07 PM, Владимир Мартьянов <[email protected]> > wrote: >> Hello! >> >> I just bought MIDI keyboard WORLDE MINI (looks like full chinese clone >> af Arturia Minilab with the same vid:pid) and it won't work in Linux. >> When the device is connected, it resets again and again. There are >> some threads on the internet about the same issue, but there is no >> solution. >> >> The problem is in the device: it has iConfiguration=3 in the >> Configuration Descriptor, but when this string is requested from the >> device it just resets. The Linux requested this string when the device >> is connected, so it can't work at all. I tested it by requesting the >> string with ID=3 and the device resets. >> >> I patched drivers/usb/core/message.c by commenting call to : >> if (cp->string == NULL && >> !(dev->quirks & USB_QUIRK_CONFIG_INTF_STRINGS)) >> cp->string = usb_cache_string(dev, cp->desc.iConfiguration); >> and the problem gone. >> >> Should the Linux kernel concern about such buggy devices? If it >> should, what's the best way to bypass the problem?
well, just apply the quirk to your device:
modified drivers/usb/core/quirks.c
@@ -41,6 +41,10 @@ static const struct usb_device_id usb_quirk_list[] = {
{ USB_DEVICE(0x0218, 0x0401), .driver_info =
USB_QUIRK_CONFIG_INTF_STRINGS },
+ /* MIDI keyboard WORLDE MINI */
+ { USB_DEVICE(0x1c75, 0x0204), .driver_info =
+ USB_QUIRK_CONFIG_INTF_STRINGS },
+
/* HP 5300/5370C scanner */
{ USB_DEVICE(0x03f0, 0x0701), .driver_info =
USB_QUIRK_STRING_FETCH_255 },
Can you test the above change? If it works I can send it as a formal
patch.
--
balbi
signature.asc
Description: PGP signature
