Re: [PATCH] plusb.c patched to support Belkin F5U258 USB host-to-host cable

2008-02-16 Thread David Brownell
Here's a patch with cleanups and without various encoding bugs.
Can you verify it still works?

Also, some of the Prolific chips use some bizarre control requests,
which by all rights should not be needed.  They seem to exist only
to cope with things the device firmware should have handled ... like
resetting one end of a link after it's unplugged.

When you test this, please enable CONFIG_USB_DEBUG and let us know
if those the host software still needs to do that reset ... or at
least, whether the diagnostic appears.

- Dave

== CUT HERE
Some plusb driver updates:  pl25a1 support (based on info from
Tony Gibbs), and various cleanups.

---
 drivers/net/usb/Kconfig |2 -
 drivers/net/usb/plusb.c |   52 
 2 files changed, 36 insertions(+), 18 deletions(-)

--- g26.orig/drivers/net/usb/plusb.c2008-02-16 11:49:04.0 -0800
+++ g26/drivers/net/usb/plusb.c 2008-02-16 12:28:54.0 -0800
@@ -17,9 +17,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-// #define DEBUG   // error path messages, extra info
-// #define VERBOSE // more; success messages
-
 #include linux/module.h
 #include linux/init.h
 #include linux/netdevice.h
@@ -45,6 +42,14 @@
  * seems to get wedged under load.  Prolific docs are weak, and
  * don't identify differences between PL2301 and PL2302, much less
  * anything to explain the different PL2302 versions observed.
+ *
+ * NOTE:  pl2501 has several modes, including pl2301 and pl2302
+ * compatibility.   Some docs suggest the difference between 2301
+ * and 2302 is only to make MS-Windows use a different driver...
+ *
+ * pl25a1 glue based on patch from Tony Gibbs.  Prolific docs on
+ * this chip are as usual incomplete about what control messages
+ * are supported.
  */
 
 /*
@@ -86,16 +91,20 @@ pl_set_QuickLink_features(struct usbnet 
 
 static int pl_reset(struct usbnet *dev)
 {
+   int status;
+
/* some units seem to need this reset, others reject it utterly.
 * FIXME be more like naplink or windows drivers.
 */
-   (void) pl_set_QuickLink_features(dev,
+   status = pl_set_QuickLink_features(dev,
PL_S_EN|PL_RESET_OUT|PL_RESET_IN|PL_PEER_E);
+   if (status != 0  netif_msg_probe(dev))
+   devdbg(dev, pl_reset -- %d\n, status);
return 0;
 }
 
 static const struct driver_infoprolific_info = {
-   .description =  Prolific PL-2301/PL-2302,
+   .description =  Prolific PL-2301/PL-2302/PL-25A1,
.flags =FLAG_NO_SETINT,
/* some PL-2302 versions seem to fail usb_set_interface() */
.reset =pl_reset,
@@ -110,16 +119,25 @@ static const struct driver_info   prolific
  */
 
 static const struct usb_device_id  products [] = {
+   /* full speed cables */
+   {
+   USB_DEVICE(0x067b, 0x), /* PL-2301 */
+   .driver_info =  (unsigned long) prolific_info,
+   }, {
+   USB_DEVICE(0x067b, 0x0001), /* PL-2302 */
+   .driver_info =  (unsigned long) prolific_info,
+   },
+
+   /* high speed cables */
+   {
+   USB_DEVICE(0x067b, 0x25a1), /* PL-25A1, no eeprom */
+   .driver_info =  (unsigned long) prolific_info,
+   }, {
+   USB_DEVICE(0x050d, 0x258a), /* Belkin F5U258 (PL-25A1) */
+   .driver_info =  (unsigned long) prolific_info,
+   },
 
-{
-   USB_DEVICE(0x067b, 0x), // PL-2301
-   .driver_info =  (unsigned long) prolific_info,
-}, {
-   USB_DEVICE(0x067b, 0x0001), // PL-2302
-   .driver_info =  (unsigned long) prolific_info,
-},
-
-   { },// END
+   { },/* END */
 };
 MODULE_DEVICE_TABLE(usb, products);
 
@@ -134,16 +152,16 @@ static struct usb_driver plusb_driver = 
 
 static int __init plusb_init(void)
 {
-   return usb_register(plusb_driver);
+   return usb_register(plusb_driver);
 }
 module_init(plusb_init);
 
 static void __exit plusb_exit(void)
 {
-   usb_deregister(plusb_driver);
+   usb_deregister(plusb_driver);
 }
 module_exit(plusb_exit);
 
 MODULE_AUTHOR(David Brownell);
-MODULE_DESCRIPTION(Prolific PL-2301/2302 USB Host to Host Link Driver);
+MODULE_DESCRIPTION(Prolific PL-2301/2302/25A1 USB Host to Host Link Driver);
 MODULE_LICENSE(GPL);
--- g26.orig/drivers/net/usb/Kconfig2008-02-16 12:23:13.0 -0800
+++ g26/drivers/net/usb/Kconfig 2008-02-16 12:23:39.0 -0800
@@ -208,7 +208,7 @@ config USB_NET_NET1080
  optionally with LEDs that indicate traffic
 
 config USB_NET_PLUSB
-   tristate Prolific PL-2301/2302 based cables
+   tristate Prolific PL-2301/2302/25A1 based cables
# if the handshake/init/reset problems, from original 'plusb',
# are ever resolved ... then remove experimental
depends on USB_USBNET  EXPERIMENTAL
--
To 

Re: [PATCH] plusb.c patched to support Belkin F5U258 USB host-to-host cable

2008-02-14 Thread David Brownell
On Thursday 14 February 2008, tony_gibbs wrote:
 I have tried to make the changes I have been working on and testing with
 your help into a patch as attached.
 
 Please let me know what you think of it.

It arrived line wrapped, and turned on debug options that
should stay off by default ... it couldn't merge, on those
bases alone.  Also, PL-25A1hack isn't a product name.  ;)

Did you get this to pass data back and forth yet?  The last
report I had from you was that it wouldn't pass data.  The
Prolific hardware tends to enter that mode after a while.
(Maybe there's documentation unseen by any Linux developer,
saying how to make those chips actually work...)  But you
reported that they didn't seem to work even when freshly
plugged in.

- Dave



--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] plusb.c patched to support Belkin F5U258 USB host-to-host cable

2008-02-14 Thread tony_gibbs
Dear Dave,

Thanks for the reply.

I don't know why it arrived line-wrapped, and I thought I had turned DEBUG
off. So I need to try again on those.

What device name should be there? Just PL-25A1? or Belkin F5U258?

Yes I did get it to pass data back and forth, and I posted a message to
linux-usb list on Mon, 11 Feb 2008 15:34:34 -0800 showing the results.

So it is working ok, but I need to format the patch so that it will merge
in.

Thoughts?

Kind Regards,
Tony

Message text written by David Brownell
 
On Thursday 14 February 2008, tony_gibbs wrote:
 I have tried to make the changes I have been working on and testing with
 your help into a patch as attached.
 
 Please let me know what you think of it.

It arrived line wrapped, and turned on debug options that
should stay off by default ... it couldn't merge, on those
bases alone.  Also, PL-25A1hack isn't a product name.  ;)

Did you get this to pass data back and forth yet?  The last
report I had from you was that it wouldn't pass data.  The
Prolific hardware tends to enter that mode after a while.
(Maybe there's documentation unseen by any Linux developer,
saying how to make those chips actually work...)  But you
reported that they didn't seem to work even when freshly
plugged in.

- Dave



--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html