aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsimon <simon@ubuntu.(none)>2011-04-06 17:40:14 -0400
committerDavid S. Miller <davem@davemloft.net>2011-04-10 21:46:44 -0400
commit647da406e5e6cef87d17ee4d3c65c7b496883a3f (patch)
tree5c5b2718163844484433f3c97ff2fa5a45c72c69
parent6e4d2d9eb22dc9e9f0abfb1a464405b97a461cde (diff)
usb: plusb: Add support for PL-25A1
This patch adds support for the PL-25A1 by adding the appropriate USB ID's. This chip is used in the Belkin 'Windows Easy Transfer' Cables. Signed-off-by: Simon Wood <simon@mungewell.org> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/usb/Kconfig2
-rw-r--r--drivers/net/usb/plusb.c22
2 files changed, 21 insertions, 3 deletions
diff --git a/drivers/net/usb/Kconfig b/drivers/net/usb/Kconfig
index 3ec22c307797..9d4f9117260f 100644
--- a/drivers/net/usb/Kconfig
+++ b/drivers/net/usb/Kconfig
@@ -258,7 +258,7 @@ config USB_NET_NET1080
258 optionally with LEDs that indicate traffic 258 optionally with LEDs that indicate traffic
259 259
260config USB_NET_PLUSB 260config USB_NET_PLUSB
261 tristate "Prolific PL-2301/2302 based cables" 261 tristate "Prolific PL-2301/2302/25A1 based cables"
262 # if the handshake/init/reset problems, from original 'plusb', 262 # if the handshake/init/reset problems, from original 'plusb',
263 # are ever resolved ... then remove "experimental" 263 # are ever resolved ... then remove "experimental"
264 depends on USB_USBNET && EXPERIMENTAL 264 depends on USB_USBNET && EXPERIMENTAL
diff --git a/drivers/net/usb/plusb.c b/drivers/net/usb/plusb.c
index 2fe1bb5d7ba5..f46aa07bfa69 100644
--- a/drivers/net/usb/plusb.c
+++ b/drivers/net/usb/plusb.c
@@ -45,6 +45,14 @@
45 * seems to get wedged under load. Prolific docs are weak, and 45 * seems to get wedged under load. Prolific docs are weak, and
46 * don't identify differences between PL2301 and PL2302, much less 46 * don't identify differences between PL2301 and PL2302, much less
47 * anything to explain the different PL2302 versions observed. 47 * anything to explain the different PL2302 versions observed.
48 *
49 * NOTE: pl2501 has several modes, including pl2301 and pl2302
50 * compatibility. Some docs suggest the difference between 2301
51 * and 2302 is only to make MS-Windows use a different driver...
52 *
53 * pl25a1 glue based on patch from Tony Gibbs. Prolific "docs" on
54 * this chip are as usual incomplete about what control messages
55 * are supported.
48 */ 56 */
49 57
50/* 58/*
@@ -95,7 +103,7 @@ static int pl_reset(struct usbnet *dev)
95} 103}
96 104
97static const struct driver_info prolific_info = { 105static const struct driver_info prolific_info = {
98 .description = "Prolific PL-2301/PL-2302", 106 .description = "Prolific PL-2301/PL-2302/PL-25A1",
99 .flags = FLAG_POINTTOPOINT | FLAG_NO_SETINT, 107 .flags = FLAG_POINTTOPOINT | FLAG_NO_SETINT,
100 /* some PL-2302 versions seem to fail usb_set_interface() */ 108 /* some PL-2302 versions seem to fail usb_set_interface() */
101 .reset = pl_reset, 109 .reset = pl_reset,
@@ -111,6 +119,7 @@ static const struct driver_info prolific_info = {
111 119
112static const struct usb_device_id products [] = { 120static const struct usb_device_id products [] = {
113 121
122/* full speed cables */
114{ 123{
115 USB_DEVICE(0x067b, 0x0000), // PL-2301 124 USB_DEVICE(0x067b, 0x0000), // PL-2301
116 .driver_info = (unsigned long) &prolific_info, 125 .driver_info = (unsigned long) &prolific_info,
@@ -119,6 +128,15 @@ static const struct usb_device_id products [] = {
119 .driver_info = (unsigned long) &prolific_info, 128 .driver_info = (unsigned long) &prolific_info,
120}, 129},
121 130
131/* high speed cables */
132{
133 USB_DEVICE(0x067b, 0x25a1), /* PL-25A1, no eeprom */
134 .driver_info = (unsigned long) &prolific_info,
135}, {
136 USB_DEVICE(0x050d, 0x258a), /* Belkin F5U258/F5U279 (PL-25A1) */
137 .driver_info = (unsigned long) &prolific_info,
138},
139
122 { }, // END 140 { }, // END
123}; 141};
124MODULE_DEVICE_TABLE(usb, products); 142MODULE_DEVICE_TABLE(usb, products);
@@ -145,5 +163,5 @@ static void __exit plusb_exit(void)
145module_exit(plusb_exit); 163module_exit(plusb_exit);
146 164
147MODULE_AUTHOR("David Brownell"); 165MODULE_AUTHOR("David Brownell");
148MODULE_DESCRIPTION("Prolific PL-2301/2302 USB Host to Host Link Driver"); 166MODULE_DESCRIPTION("Prolific PL-2301/2302/25A1 USB Host to Host Link Driver");
149MODULE_LICENSE("GPL"); 167MODULE_LICENSE("GPL");