Re: Support for buggy MIDI-keyboard VID:PID 1c75:0204

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux