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 <[email protected]>:
> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to