Oh, I didn't know about quirks.c. Your code solved the problem, thank you! 2017-10-02 16:09 GMT+03:00 Felipe Balbi <balbi@xxxxxxxxxx>: > 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 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html