Patchwork [02/17] USB: quirks and unusual_devs entry for Actions flash drive

login
register
mail settings
Submitter Colin King
Date Feb. 15, 2010, 2:59 p.m.
Message ID <1266245965-20429-3-git-send-email-colin.king@canonical.com>
Download mbox | patch
Permalink /patch/45374/
State Accepted
Delegated to: Stefan Bader
Headers show

Comments

Colin King - Feb. 15, 2010, 2:59 p.m.
From: Alan Stern <stern@rowland.harvard.edu>

BugLink: http://bugs.launchpad.net/bugs/522059

This patch (as1033) adds a quirks entry and an unusual_devs entry for
the Actions Semiconductor flash drive.  This device has a 64-byte
string descriptor, which it doesn't terminate with a 0-length packet.

Oddly enough, the reporter's logs show that when the device was
plugged in at boot time, it changes its behavior completely -- it uses
a different product ID, product string descriptor, and bDeviceClass.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
 drivers/usb/core/quirks.c          |    3 +++
 drivers/usb/storage/unusual_devs.h |    9 +++++++++
 2 files changed, 12 insertions(+), 0 deletions(-)

Patch

diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index b6d17d5..bad4548 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -28,6 +28,9 @@ 
  * devices is broken...
  */
 static const struct usb_device_id usb_quirk_list[] = {
+	/* Action Semiconductor flash disk */
+	{ USB_DEVICE(0x10d6, 0x2200), .driver_info = USB_QUIRK_STRING_FETCH_255},
+
 	/* CBM - Flash disk */
 	{ USB_DEVICE(0x0204, 0x6025), .driver_info = USB_QUIRK_RESET_RESUME },
 	/* HP 5300/5370C scanner */
diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h
index f806347..3c09cd1 100644
--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
@@ -1516,6 +1516,15 @@  UNUSUAL_DEV(  0x1019, 0x0c55, 0x0000, 0x0110,
 		US_SC_DEVICE, US_PR_DEVICE, usb_stor_ucr61s2b_init,
 		0 ),
 
+/* Reported by Fabio Venturi <f.venturi@tdnet.it>
+ * The device reports a vendor-specific bDeviceClass.
+ */
+UNUSUAL_DEV(  0x10d6, 0x2200, 0x0100, 0x0100,
+		"Actions Semiconductor",
+		"Mtp device",
+		US_SC_DEVICE, US_PR_DEVICE, NULL,
+		0),
+
 /* Reported by Kevin Lloyd <linux@sierrawireless.com>
  * Entry is needed for the initializer function override,
  * which instructs the device to load as a modem