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

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

 



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


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

  Powered by Linux