Andy Shevchenko <andy.shevchenko@xxxxxxxxx> 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, Владимир Мартьянов <vilgeforce@xxxxxxxxx> 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
Attachment:
signature.asc
Description: PGP signature