aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2006-02-14 11:21:57 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-02-14 11:21:57 -0500
commit18539966bc1d663eb232877bb3e9e7dca67e89e6 (patch)
tree2ecc65bc92766a5c684bc51f30601421170f07f2 /drivers
parent108dff7d2b721759b5e025ab18024967c1294792 (diff)
parent16f05be7be0bf121491d83bd97337fe179b3b323 (diff)
Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6
Diffstat (limited to 'drivers')
-rw-r--r--drivers/usb/host/pci-quirks.c16
-rw-r--r--drivers/usb/host/sl811_cs.c4
-rw-r--r--drivers/usb/input/hid-core.c50
-rw-r--r--drivers/usb/misc/Kconfig2
-rw-r--r--drivers/usb/misc/ldusb.c57
-rw-r--r--drivers/usb/serial/pl2303.c5
-rw-r--r--drivers/usb/serial/pl2303.h4
-rw-r--r--drivers/usb/storage/unusual_devs.h52
8 files changed, 127 insertions, 63 deletions
diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c
index e9e5bc178cef..118288d94423 100644
--- a/drivers/usb/host/pci-quirks.c
+++ b/drivers/usb/host/pci-quirks.c
@@ -191,8 +191,9 @@ static void __devinit quirk_usb_handoff_ohci(struct pci_dev *pdev)
191 } 191 }
192 if (wait_time <= 0) 192 if (wait_time <= 0)
193 printk(KERN_WARNING "%s %s: BIOS handoff " 193 printk(KERN_WARNING "%s %s: BIOS handoff "
194 "failed (BIOS bug ?)\n", 194 "failed (BIOS bug ?) %08x\n",
195 pdev->dev.bus_id, "OHCI"); 195 pdev->dev.bus_id, "OHCI",
196 readl(base + OHCI_CONTROL));
196 197
197 /* reset controller, preserving RWC */ 198 /* reset controller, preserving RWC */
198 writel(control & OHCI_CTRL_RWC, base + OHCI_CONTROL); 199 writel(control & OHCI_CTRL_RWC, base + OHCI_CONTROL);
@@ -243,6 +244,12 @@ static void __devinit quirk_usb_disable_ehci(struct pci_dev *pdev)
243 pr_debug("%s %s: BIOS handoff\n", 244 pr_debug("%s %s: BIOS handoff\n",
244 pdev->dev.bus_id, "EHCI"); 245 pdev->dev.bus_id, "EHCI");
245 246
247#if 0
248/* aleksey_gorelov@phoenix.com reports that some systems need SMI forced on,
249 * but that seems dubious in general (the BIOS left it off intentionally)
250 * and is known to prevent some systems from booting. so we won't do this
251 * unless maybe we can determine when we're on a system that needs SMI forced.
252 */
246 /* BIOS workaround (?): be sure the 253 /* BIOS workaround (?): be sure the
247 * pre-Linux code receives the SMI 254 * pre-Linux code receives the SMI
248 */ 255 */
@@ -252,6 +259,7 @@ static void __devinit quirk_usb_disable_ehci(struct pci_dev *pdev)
252 pci_write_config_dword(pdev, 259 pci_write_config_dword(pdev,
253 offset + EHCI_USBLEGCTLSTS, 260 offset + EHCI_USBLEGCTLSTS,
254 val | EHCI_USBLEGCTLSTS_SOOE); 261 val | EHCI_USBLEGCTLSTS_SOOE);
262#endif
255 } 263 }
256 264
257 /* always say Linux will own the hardware 265 /* always say Linux will own the hardware
@@ -274,8 +282,8 @@ static void __devinit quirk_usb_disable_ehci(struct pci_dev *pdev)
274 * it down, and hope nothing goes too wrong 282 * it down, and hope nothing goes too wrong
275 */ 283 */
276 printk(KERN_WARNING "%s %s: BIOS handoff " 284 printk(KERN_WARNING "%s %s: BIOS handoff "
277 "failed (BIOS bug ?)\n", 285 "failed (BIOS bug ?) %08x\n",
278 pdev->dev.bus_id, "EHCI"); 286 pdev->dev.bus_id, "EHCI", cap);
279 pci_write_config_byte(pdev, offset + 2, 0); 287 pci_write_config_byte(pdev, offset + 2, 0);
280 } 288 }
281 289
diff --git a/drivers/usb/host/sl811_cs.c b/drivers/usb/host/sl811_cs.c
index 466384d7c79f..134d2000128a 100644
--- a/drivers/usb/host/sl811_cs.c
+++ b/drivers/usb/host/sl811_cs.c
@@ -101,7 +101,7 @@ static struct resource resources[] = {
101 }, 101 },
102}; 102};
103 103
104extern struct device_driver sl811h_driver; 104extern struct platform_driver sl811h_driver;
105 105
106static struct platform_device platform_dev = { 106static struct platform_device platform_dev = {
107 .id = -1, 107 .id = -1,
@@ -132,7 +132,7 @@ static int sl811_hc_init(struct device *parent, ioaddr_t base_addr, int irq)
132 * initialized already because of the link order dependency created 132 * initialized already because of the link order dependency created
133 * by referencing "sl811h_driver". 133 * by referencing "sl811h_driver".
134 */ 134 */
135 platform_dev.name = sl811h_driver.name; 135 platform_dev.name = sl811h_driver.driver.name;
136 return platform_device_register(&platform_dev); 136 return platform_device_register(&platform_dev);
137} 137}
138 138
diff --git a/drivers/usb/input/hid-core.c b/drivers/usb/input/hid-core.c
index 6f7a684c3e07..772478086bd3 100644
--- a/drivers/usb/input/hid-core.c
+++ b/drivers/usb/input/hid-core.c
@@ -1435,17 +1435,20 @@ void hid_init_reports(struct hid_device *hid)
1435#define USB_DEVICE_ID_VERNIER_CYCLOPS 0x0004 1435#define USB_DEVICE_ID_VERNIER_CYCLOPS 0x0004
1436 1436
1437#define USB_VENDOR_ID_LD 0x0f11 1437#define USB_VENDOR_ID_LD 0x0f11
1438#define USB_DEVICE_ID_CASSY 0x1000 1438#define USB_DEVICE_ID_LD_CASSY 0x1000
1439#define USB_DEVICE_ID_POCKETCASSY 0x1010 1439#define USB_DEVICE_ID_LD_POCKETCASSY 0x1010
1440#define USB_DEVICE_ID_MOBILECASSY 0x1020 1440#define USB_DEVICE_ID_LD_MOBILECASSY 0x1020
1441#define USB_DEVICE_ID_JWM 0x1080 1441#define USB_DEVICE_ID_LD_JWM 0x1080
1442#define USB_DEVICE_ID_DMMP 0x1081 1442#define USB_DEVICE_ID_LD_DMMP 0x1081
1443#define USB_DEVICE_ID_UMIP 0x1090 1443#define USB_DEVICE_ID_LD_UMIP 0x1090
1444#define USB_DEVICE_ID_VIDEOCOM 0x1200 1444#define USB_DEVICE_ID_LD_XRAY1 0x1100
1445#define USB_DEVICE_ID_COM3LAB 0x2000 1445#define USB_DEVICE_ID_LD_XRAY2 0x1101
1446#define USB_DEVICE_ID_TELEPORT 0x2010 1446#define USB_DEVICE_ID_LD_VIDEOCOM 0x1200
1447#define USB_DEVICE_ID_NETWORKANALYSER 0x2020 1447#define USB_DEVICE_ID_LD_COM3LAB 0x2000
1448#define USB_DEVICE_ID_POWERCONTROL 0x2030 1448#define USB_DEVICE_ID_LD_TELEPORT 0x2010
1449#define USB_DEVICE_ID_LD_NETWORKANALYSER 0x2020
1450#define USB_DEVICE_ID_LD_POWERCONTROL 0x2030
1451#define USB_DEVICE_ID_LD_MACHINETEST 0x2040
1449 1452
1450#define USB_VENDOR_ID_APPLE 0x05ac 1453#define USB_VENDOR_ID_APPLE 0x05ac
1451#define USB_DEVICE_ID_APPLE_POWERMOUSE 0x0304 1454#define USB_DEVICE_ID_APPLE_POWERMOUSE 0x0304
@@ -1491,17 +1494,20 @@ static const struct hid_blacklist {
1491 { USB_VENDOR_ID_GRIFFIN, USB_DEVICE_ID_POWERMATE, HID_QUIRK_IGNORE }, 1494 { USB_VENDOR_ID_GRIFFIN, USB_DEVICE_ID_POWERMATE, HID_QUIRK_IGNORE },
1492 { USB_VENDOR_ID_GRIFFIN, USB_DEVICE_ID_SOUNDKNOB, HID_QUIRK_IGNORE }, 1495 { USB_VENDOR_ID_GRIFFIN, USB_DEVICE_ID_SOUNDKNOB, HID_QUIRK_IGNORE },
1493 { USB_VENDOR_ID_KBGEAR, USB_DEVICE_ID_KBGEAR_JAMSTUDIO, HID_QUIRK_IGNORE }, 1496 { USB_VENDOR_ID_KBGEAR, USB_DEVICE_ID_KBGEAR_JAMSTUDIO, HID_QUIRK_IGNORE },
1494 { USB_VENDOR_ID_LD, USB_DEVICE_ID_CASSY, HID_QUIRK_IGNORE }, 1497 { USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_CASSY, HID_QUIRK_IGNORE },
1495 { USB_VENDOR_ID_LD, USB_DEVICE_ID_POCKETCASSY, HID_QUIRK_IGNORE }, 1498 { USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_POCKETCASSY, HID_QUIRK_IGNORE },
1496 { USB_VENDOR_ID_LD, USB_DEVICE_ID_MOBILECASSY, HID_QUIRK_IGNORE }, 1499 { USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_MOBILECASSY, HID_QUIRK_IGNORE },
1497 { USB_VENDOR_ID_LD, USB_DEVICE_ID_JWM, HID_QUIRK_IGNORE }, 1500 { USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_JWM, HID_QUIRK_IGNORE },
1498 { USB_VENDOR_ID_LD, USB_DEVICE_ID_DMMP, HID_QUIRK_IGNORE }, 1501 { USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_DMMP, HID_QUIRK_IGNORE },
1499 { USB_VENDOR_ID_LD, USB_DEVICE_ID_UMIP, HID_QUIRK_IGNORE }, 1502 { USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_UMIP, HID_QUIRK_IGNORE },
1500 { USB_VENDOR_ID_LD, USB_DEVICE_ID_VIDEOCOM, HID_QUIRK_IGNORE }, 1503 { USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_XRAY1, HID_QUIRK_IGNORE },
1501 { USB_VENDOR_ID_LD, USB_DEVICE_ID_COM3LAB, HID_QUIRK_IGNORE }, 1504 { USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_XRAY2, HID_QUIRK_IGNORE },
1502 { USB_VENDOR_ID_LD, USB_DEVICE_ID_TELEPORT, HID_QUIRK_IGNORE }, 1505 { USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_VIDEOCOM, HID_QUIRK_IGNORE },
1503 { USB_VENDOR_ID_LD, USB_DEVICE_ID_NETWORKANALYSER, HID_QUIRK_IGNORE }, 1506 { USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_COM3LAB, HID_QUIRK_IGNORE },
1504 { USB_VENDOR_ID_LD, USB_DEVICE_ID_POWERCONTROL, HID_QUIRK_IGNORE }, 1507 { USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_TELEPORT, HID_QUIRK_IGNORE },
1508 { USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_NETWORKANALYSER, HID_QUIRK_IGNORE },
1509 { USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_POWERCONTROL, HID_QUIRK_IGNORE },
1510 { USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_MACHINETEST, HID_QUIRK_IGNORE },
1505 { USB_VENDOR_ID_MCC, USB_DEVICE_ID_MCC_PMD1024LS, HID_QUIRK_IGNORE }, 1511 { USB_VENDOR_ID_MCC, USB_DEVICE_ID_MCC_PMD1024LS, HID_QUIRK_IGNORE },
1506 { USB_VENDOR_ID_MCC, USB_DEVICE_ID_MCC_PMD1208LS, HID_QUIRK_IGNORE }, 1512 { USB_VENDOR_ID_MCC, USB_DEVICE_ID_MCC_PMD1208LS, HID_QUIRK_IGNORE },
1507 { USB_VENDOR_ID_MGE, USB_DEVICE_ID_MGE_UPS, HID_QUIRK_IGNORE }, 1513 { USB_VENDOR_ID_MGE, USB_DEVICE_ID_MGE_UPS, HID_QUIRK_IGNORE },
diff --git a/drivers/usb/misc/Kconfig b/drivers/usb/misc/Kconfig
index 6649531fa824..8ba6a701e9c1 100644
--- a/drivers/usb/misc/Kconfig
+++ b/drivers/usb/misc/Kconfig
@@ -141,7 +141,7 @@ source "drivers/usb/misc/sisusbvga/Kconfig"
141 141
142config USB_LD 142config USB_LD
143 tristate "USB LD driver" 143 tristate "USB LD driver"
144 depends on USB && EXPERIMENTAL 144 depends on USB
145 help 145 help
146 This driver is for generic USB devices that use interrupt transfers, 146 This driver is for generic USB devices that use interrupt transfers,
147 like LD Didactic's USB devices. 147 like LD Didactic's USB devices.
diff --git a/drivers/usb/misc/ldusb.c b/drivers/usb/misc/ldusb.c
index 331d4ae949ed..e2d1198623eb 100644
--- a/drivers/usb/misc/ldusb.c
+++ b/drivers/usb/misc/ldusb.c
@@ -24,6 +24,7 @@
24 * V0.1 (mh) Initial version 24 * V0.1 (mh) Initial version
25 * V0.11 (mh) Added raw support for HID 1.0 devices (no interrupt out endpoint) 25 * V0.11 (mh) Added raw support for HID 1.0 devices (no interrupt out endpoint)
26 * V0.12 (mh) Added kmalloc check for string buffer 26 * V0.12 (mh) Added kmalloc check for string buffer
27 * V0.13 (mh) Added support for LD X-Ray and Machine Test System
27 */ 28 */
28 29
29#include <linux/config.h> 30#include <linux/config.h>
@@ -40,17 +41,20 @@
40 41
41/* Define these values to match your devices */ 42/* Define these values to match your devices */
42#define USB_VENDOR_ID_LD 0x0f11 /* USB Vendor ID of LD Didactic GmbH */ 43#define USB_VENDOR_ID_LD 0x0f11 /* USB Vendor ID of LD Didactic GmbH */
43#define USB_DEVICE_ID_CASSY 0x1000 /* USB Product ID for all CASSY-S modules */ 44#define USB_DEVICE_ID_LD_CASSY 0x1000 /* USB Product ID of CASSY-S */
44#define USB_DEVICE_ID_POCKETCASSY 0x1010 /* USB Product ID for Pocket-CASSY */ 45#define USB_DEVICE_ID_LD_POCKETCASSY 0x1010 /* USB Product ID of Pocket-CASSY */
45#define USB_DEVICE_ID_MOBILECASSY 0x1020 /* USB Product ID for Mobile-CASSY */ 46#define USB_DEVICE_ID_LD_MOBILECASSY 0x1020 /* USB Product ID of Mobile-CASSY */
46#define USB_DEVICE_ID_JWM 0x1080 /* USB Product ID for Joule and Wattmeter */ 47#define USB_DEVICE_ID_LD_JWM 0x1080 /* USB Product ID of Joule and Wattmeter */
47#define USB_DEVICE_ID_DMMP 0x1081 /* USB Product ID for Digital Multimeter P (reserved) */ 48#define USB_DEVICE_ID_LD_DMMP 0x1081 /* USB Product ID of Digital Multimeter P (reserved) */
48#define USB_DEVICE_ID_UMIP 0x1090 /* USB Product ID for UMI P */ 49#define USB_DEVICE_ID_LD_UMIP 0x1090 /* USB Product ID of UMI P */
49#define USB_DEVICE_ID_VIDEOCOM 0x1200 /* USB Product ID for VideoCom */ 50#define USB_DEVICE_ID_LD_XRAY1 0x1100 /* USB Product ID of X-Ray Apparatus */
50#define USB_DEVICE_ID_COM3LAB 0x2000 /* USB Product ID for COM3LAB */ 51#define USB_DEVICE_ID_LD_XRAY2 0x1101 /* USB Product ID of X-Ray Apparatus */
51#define USB_DEVICE_ID_TELEPORT 0x2010 /* USB Product ID for Terminal Adapter */ 52#define USB_DEVICE_ID_LD_VIDEOCOM 0x1200 /* USB Product ID of VideoCom */
52#define USB_DEVICE_ID_NETWORKANALYSER 0x2020 /* USB Product ID for Network Analyser */ 53#define USB_DEVICE_ID_LD_COM3LAB 0x2000 /* USB Product ID of COM3LAB */
53#define USB_DEVICE_ID_POWERCONTROL 0x2030 /* USB Product ID for Controlling device for Power Electronics */ 54#define USB_DEVICE_ID_LD_TELEPORT 0x2010 /* USB Product ID of Terminal Adapter */
55#define USB_DEVICE_ID_LD_NETWORKANALYSER 0x2020 /* USB Product ID of Network Analyser */
56#define USB_DEVICE_ID_LD_POWERCONTROL 0x2030 /* USB Product ID of Converter Control Unit */
57#define USB_DEVICE_ID_LD_MACHINETEST 0x2040 /* USB Product ID of Machine Test System */
54 58
55#define USB_VENDOR_ID_VERNIER 0x08f7 59#define USB_VENDOR_ID_VERNIER 0x08f7
56#define USB_DEVICE_ID_VERNIER_LABPRO 0x0001 60#define USB_DEVICE_ID_VERNIER_LABPRO 0x0001
@@ -67,17 +71,20 @@
67 71
68/* table of devices that work with this driver */ 72/* table of devices that work with this driver */
69static struct usb_device_id ld_usb_table [] = { 73static struct usb_device_id ld_usb_table [] = {
70 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_CASSY) }, 74 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_CASSY) },
71 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_POCKETCASSY) }, 75 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_POCKETCASSY) },
72 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_MOBILECASSY) }, 76 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_MOBILECASSY) },
73 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_JWM) }, 77 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_JWM) },
74 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_DMMP) }, 78 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_DMMP) },
75 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_UMIP) }, 79 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_UMIP) },
76 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_VIDEOCOM) }, 80 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_XRAY1) },
77 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_COM3LAB) }, 81 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_XRAY2) },
78 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_TELEPORT) }, 82 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_VIDEOCOM) },
79 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_NETWORKANALYSER) }, 83 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_COM3LAB) },
80 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_POWERCONTROL) }, 84 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_TELEPORT) },
85 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_NETWORKANALYSER) },
86 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_POWERCONTROL) },
87 { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_MACHINETEST) },
81 { USB_DEVICE(USB_VENDOR_ID_VERNIER, USB_DEVICE_ID_VERNIER_LABPRO) }, 88 { USB_DEVICE(USB_VENDOR_ID_VERNIER, USB_DEVICE_ID_VERNIER_LABPRO) },
82 { USB_DEVICE(USB_VENDOR_ID_VERNIER, USB_DEVICE_ID_VERNIER_GOTEMP) }, 89 { USB_DEVICE(USB_VENDOR_ID_VERNIER, USB_DEVICE_ID_VERNIER_GOTEMP) },
83 { USB_DEVICE(USB_VENDOR_ID_VERNIER, USB_DEVICE_ID_VERNIER_SKIP) }, 90 { USB_DEVICE(USB_VENDOR_ID_VERNIER, USB_DEVICE_ID_VERNIER_SKIP) },
@@ -85,7 +92,7 @@ static struct usb_device_id ld_usb_table [] = {
85 { } /* Terminating entry */ 92 { } /* Terminating entry */
86}; 93};
87MODULE_DEVICE_TABLE(usb, ld_usb_table); 94MODULE_DEVICE_TABLE(usb, ld_usb_table);
88MODULE_VERSION("V0.12"); 95MODULE_VERSION("V0.13");
89MODULE_AUTHOR("Michael Hund <mhund@ld-didactic.de>"); 96MODULE_AUTHOR("Michael Hund <mhund@ld-didactic.de>");
90MODULE_DESCRIPTION("LD USB Driver"); 97MODULE_DESCRIPTION("LD USB Driver");
91MODULE_LICENSE("GPL"); 98MODULE_LICENSE("GPL");
@@ -632,8 +639,8 @@ static int ld_usb_probe(struct usb_interface *intf, const struct usb_device_id *
632 639
633 /* workaround for early firmware versions on fast computers */ 640 /* workaround for early firmware versions on fast computers */
634 if ((le16_to_cpu(udev->descriptor.idVendor) == USB_VENDOR_ID_LD) && 641 if ((le16_to_cpu(udev->descriptor.idVendor) == USB_VENDOR_ID_LD) &&
635 ((le16_to_cpu(udev->descriptor.idProduct) == USB_DEVICE_ID_CASSY) || 642 ((le16_to_cpu(udev->descriptor.idProduct) == USB_DEVICE_ID_LD_CASSY) ||
636 (le16_to_cpu(udev->descriptor.idProduct) == USB_DEVICE_ID_COM3LAB)) && 643 (le16_to_cpu(udev->descriptor.idProduct) == USB_DEVICE_ID_LD_COM3LAB)) &&
637 (le16_to_cpu(udev->descriptor.bcdDevice) <= 0x103)) { 644 (le16_to_cpu(udev->descriptor.bcdDevice) <= 0x103)) {
638 buffer = kmalloc(256, GFP_KERNEL); 645 buffer = kmalloc(256, GFP_KERNEL);
639 if (buffer == NULL) { 646 if (buffer == NULL) {
diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
index e8e575e037c1..37c81c08faad 100644
--- a/drivers/usb/serial/pl2303.c
+++ b/drivers/usb/serial/pl2303.c
@@ -73,9 +73,10 @@ static struct usb_device_id id_table [] = {
73 { USB_DEVICE(SIEMENS_VENDOR_ID, SIEMENS_PRODUCT_ID_X65) }, 73 { USB_DEVICE(SIEMENS_VENDOR_ID, SIEMENS_PRODUCT_ID_X65) },
74 { USB_DEVICE(SIEMENS_VENDOR_ID, SIEMENS_PRODUCT_ID_X75) }, 74 { USB_DEVICE(SIEMENS_VENDOR_ID, SIEMENS_PRODUCT_ID_X75) },
75 { USB_DEVICE(SYNTECH_VENDOR_ID, SYNTECH_PRODUCT_ID) }, 75 { USB_DEVICE(SYNTECH_VENDOR_ID, SYNTECH_PRODUCT_ID) },
76 { USB_DEVICE(NOKIA_CA42_VENDOR_ID, NOKIA_CA42_PRODUCT_ID ) }, 76 { USB_DEVICE(NOKIA_CA42_VENDOR_ID, NOKIA_CA42_PRODUCT_ID) },
77 { USB_DEVICE(CA_42_CA42_VENDOR_ID, CA_42_CA42_PRODUCT_ID ) }, 77 { USB_DEVICE(CA_42_CA42_VENDOR_ID, CA_42_CA42_PRODUCT_ID) },
78 { USB_DEVICE(SAGEM_VENDOR_ID, SAGEM_PRODUCT_ID) }, 78 { USB_DEVICE(SAGEM_VENDOR_ID, SAGEM_PRODUCT_ID) },
79 { USB_DEVICE(LEADTEK_VENDOR_ID, LEADTEK_9531_PRODUCT_ID) },
79 { } /* Terminating entry */ 80 { } /* Terminating entry */
80}; 81};
81 82
diff --git a/drivers/usb/serial/pl2303.h b/drivers/usb/serial/pl2303.h
index 1807087a76e3..9bc4755162ad 100644
--- a/drivers/usb/serial/pl2303.h
+++ b/drivers/usb/serial/pl2303.h
@@ -71,3 +71,7 @@
71 71
72#define SAGEM_VENDOR_ID 0x079b 72#define SAGEM_VENDOR_ID 0x079b
73#define SAGEM_PRODUCT_ID 0x0027 73#define SAGEM_PRODUCT_ID 0x0027
74
75/* Leadtek GPS 9531 (ID 0413:2101) */
76#define LEADTEK_VENDOR_ID 0x0413
77#define LEADTEK_9531_PRODUCT_ID 0x2101
diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h
index ee958f986eb8..e71c5ca1a07b 100644
--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
@@ -106,6 +106,13 @@ UNUSUAL_DEV( 0x0411, 0x001c, 0x0113, 0x0113,
106 US_SC_DEVICE, US_PR_DEVICE, NULL, 106 US_SC_DEVICE, US_PR_DEVICE, NULL,
107 US_FL_FIX_INQUIRY ), 107 US_FL_FIX_INQUIRY ),
108 108
109/* Reported by Christian Leber <christian@leber.de> */
110UNUSUAL_DEV( 0x0419, 0xaaf5, 0x0100, 0x0100,
111 "TrekStor",
112 "i.Beat 115 2.0",
113 US_SC_DEVICE, US_PR_DEVICE, NULL,
114 US_FL_IGNORE_RESIDUE | US_FL_NOT_LOCKABLE ),
115
109/* Reported by Stefan Werner <dustbln@gmx.de> */ 116/* Reported by Stefan Werner <dustbln@gmx.de> */
110UNUSUAL_DEV( 0x0419, 0xaaf6, 0x0100, 0x0100, 117UNUSUAL_DEV( 0x0419, 0xaaf6, 0x0100, 0x0100,
111 "TrekStor", 118 "TrekStor",
@@ -127,6 +134,14 @@ UNUSUAL_DEV( 0x0436, 0x0005, 0x0100, 0x0100,
127 US_SC_SCSI, US_PR_DPCM_USB, NULL, 0 ), 134 US_SC_SCSI, US_PR_DPCM_USB, NULL, 0 ),
128#endif 135#endif
129 136
137/* Patch submitted by Daniel Drake <dsd@gentoo.org>
138 * Device reports nonsense bInterfaceProtocol 6 when connected over USB2 */
139UNUSUAL_DEV( 0x0451, 0x5416, 0x0100, 0x0100,
140 "Neuros Audio",
141 "USB 2.0 HD 2.5",
142 US_SC_DEVICE, US_PR_BULK, NULL,
143 US_FL_NEED_OVERRIDE ),
144
130/* 145/*
131 * Pete Zaitcev <zaitcev@yahoo.com>, from Patrick C. F. Ernzer, bz#162559. 146 * Pete Zaitcev <zaitcev@yahoo.com>, from Patrick C. F. Ernzer, bz#162559.
132 * The key does not actually break, but it returns zero sense which 147 * The key does not actually break, but it returns zero sense which
@@ -137,13 +152,16 @@ UNUSUAL_DEV( 0x0457, 0x0150, 0x0100, 0x0100,
137 "USB Mass Storage Device", 152 "USB Mass Storage Device",
138 US_SC_DEVICE, US_PR_DEVICE, NULL, US_FL_NOT_LOCKABLE ), 153 US_SC_DEVICE, US_PR_DEVICE, NULL, US_FL_NOT_LOCKABLE ),
139 154
140/* Patch submitted by Daniel Drake <dsd@gentoo.org> 155/*
141 * Device reports nonsense bInterfaceProtocol 6 when connected over USB2 */ 156* Bohdan Linda <bohdan.linda@gmail.com>
142UNUSUAL_DEV( 0x0451, 0x5416, 0x0100, 0x0100, 157* 1GB USB sticks MyFlash High Speed. I have restricted
143 "Neuros Audio", 158* the revision to my model only
144 "USB 2.0 HD 2.5", 159*/
145 US_SC_DEVICE, US_PR_BULK, NULL, 160UNUSUAL_DEV( 0x0457, 0x0151, 0x0100, 0x0100,
146 US_FL_NEED_OVERRIDE ), 161 "USB 2.0",
162 "Flash Disk",
163 US_SC_DEVICE, US_PR_DEVICE, NULL,
164 US_FL_NOT_LOCKABLE ),
147 165
148UNUSUAL_DEV( 0x045a, 0x5210, 0x0101, 0x0101, 166UNUSUAL_DEV( 0x045a, 0x5210, 0x0101, 0x0101,
149 "Rio", 167 "Rio",
@@ -946,6 +964,12 @@ UNUSUAL_DEV( 0x084d, 0x0011, 0x0110, 0x0110,
946 US_SC_DEVICE, US_PR_DEVICE, NULL, 964 US_SC_DEVICE, US_PR_DEVICE, NULL,
947 US_FL_BULK32), 965 US_FL_BULK32),
948 966
967/* Submitted by Jan De Luyck <lkml@kcore.org> */
968UNUSUAL_DEV( 0x08bd, 0x1100, 0x0000, 0x0000,
969 "CITIZEN",
970 "X1DE-USB",
971 US_SC_DEVICE, US_PR_DEVICE, NULL,
972 US_FL_SINGLE_LUN),
949 973
950/* Entry needed for flags. Moreover, all devices with this ID use 974/* Entry needed for flags. Moreover, all devices with this ID use
951 * bulk-only transport, but _some_ falsely report Control/Bulk instead. 975 * bulk-only transport, but _some_ falsely report Control/Bulk instead.
@@ -1085,6 +1109,13 @@ UNUSUAL_DEV( 0x0dda, 0x0301, 0x0012, 0x0012,
1085 US_SC_DEVICE, US_PR_DEVICE, NULL, 1109 US_SC_DEVICE, US_PR_DEVICE, NULL,
1086 US_FL_IGNORE_RESIDUE ), 1110 US_FL_IGNORE_RESIDUE ),
1087 1111
1112/* Reported by Jim McCloskey <mcclosk@ucsc.edu> */
1113UNUSUAL_DEV( 0x0e21, 0x0520, 0x0100, 0x0100,
1114 "Cowon Systems",
1115 "iAUDIO M5",
1116 US_SC_DEVICE, US_PR_BULK, NULL,
1117 0 ),
1118
1088/* Submitted by Antoine Mairesse <antoine.mairesse@free.fr> */ 1119/* Submitted by Antoine Mairesse <antoine.mairesse@free.fr> */
1089UNUSUAL_DEV( 0x0ed1, 0x6660, 0x0100, 0x0300, 1120UNUSUAL_DEV( 0x0ed1, 0x6660, 0x0100, 0x0300,
1090 "USB", 1121 "USB",
@@ -1162,6 +1193,13 @@ UNUSUAL_DEV( 0x55aa, 0xa103, 0x0000, 0x9999,
1162 US_FL_SINGLE_LUN), 1193 US_FL_SINGLE_LUN),
1163#endif 1194#endif
1164 1195
1196/* Reported by Andrew Simmons <andrew.simmons@gmail.com> */
1197UNUSUAL_DEV( 0xed06, 0x4500, 0x0001, 0x0001,
1198 "DataStor",
1199 "USB4500 FW1.04",
1200 US_SC_DEVICE, US_PR_DEVICE, NULL,
1201 US_FL_FIX_CAPACITY),
1202
1165/* Control/Bulk transport for all SubClass values */ 1203/* Control/Bulk transport for all SubClass values */
1166USUAL_DEV(US_SC_RBC, US_PR_CB, USB_US_TYPE_STOR), 1204USUAL_DEV(US_SC_RBC, US_PR_CB, USB_US_TYPE_STOR),
1167USUAL_DEV(US_SC_8020, US_PR_CB, USB_US_TYPE_STOR), 1205USUAL_DEV(US_SC_8020, US_PR_CB, USB_US_TYPE_STOR),