# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
#                  ChangeSet    1.564   -> 1.565  
#       drivers/usb/net/usbnet.c        1.20    -> 1.21   
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/04/26      [EMAIL PROTECTED]     1.565
# [PATCH] PATCH 2.5.10 usbnet, check_connect updates
# 
# USB usbnet driver update
# 
# The patch cleans up the handling of connection checking to
# match the truth that it's effectively tristate (connected, not,
# and can't know) vs binary ("connected" and "can't know"
# as the same value, since it was OK to ifup).  Since ethtool
# supports the tristate semantics, it matters now.
# --------------------------------------------
#
diff -Nru a/drivers/usb/net/usbnet.c b/drivers/usb/net/usbnet.c
--- a/drivers/usb/net/usbnet.c  Fri Apr 26 16:05:43 2002
+++ b/drivers/usb/net/usbnet.c  Fri Apr 26 16:05:43 2002
@@ -121,7 +121,7 @@
 #define        CONFIG_USB_PL2301
 
 
-#define DRIVER_VERSION         "06-Apr-2002"
+#define DRIVER_VERSION         "26-Apr-2002"
 
 /*-------------------------------------------------------------------------*/
 
@@ -484,14 +484,6 @@
        return 0;
 }
 
-#else
-
-static int genelink_check_connect (struct usbnet *dev)
-{
-       dbg ("%s: assuming peer is connected", dev->net.name);
-       return 0;
-}
-
 #endif
 
 // reset the device status
@@ -623,12 +615,15 @@
        description:    "Genesys GeneLink",
        flags:          FLAG_FRAMING_GL | FLAG_NO_SETINT,
        reset:          genelink_reset,
-       check_connect:  genelink_check_connect,
        rx_fixup:       genelink_rx_fixup,
        tx_fixup:       genelink_tx_fixup,
 
        in: 1, out: 2,
        epsize: 64,
+
+#ifdef GENELINK_ACK
+       check_connect:  genelink_check_connect,
+#endif
 };
 
 #endif /* CONFIG_USB_GENESYS */
@@ -652,11 +647,15 @@
  *
  *-------------------------------------------------------------------------*/
 
+static int linuxdev_check_connect (struct usbnet *dev)
+{
+       return 0;               // by definition, always connected
+}
 
 static const struct driver_info        linuxdev_info = {
        description:    "Linux Device",
        // no reset defined (yet?)
-       // no check_connect needed!
+       check_connect:  linuxdev_check_connect,
        in: 2, out: 1,
        epsize: 64,
 };
@@ -1169,21 +1168,11 @@
                PL_S_EN|PL_RESET_OUT|PL_RESET_IN|PL_PEER_E);
 }
 
-static int pl_check_connect (struct usbnet *dev)
-{
-       // FIXME test interrupt data PL_PEER_E bit
-       // plus, there's some handshake done by
-       // the prolific win32 driver... 
-       dbg ("%s: assuming peer is connected", dev->net.name);
-       return 0;
-}
-
 static const struct driver_info        prolific_info = {
        description:    "Prolific PL-2301/PL-2302",
        flags:          FLAG_NO_SETINT,
                /* some PL-2302 versions seem to fail usb_set_interface() */
        reset:          pl_reset,
-       check_connect:  pl_check_connect,
 
        in: 3, out: 2,
        epsize: 64,
@@ -1567,7 +1556,7 @@
                if (dev->driver_info->check_connect) {
                        struct ethtool_value    edata = { ETHTOOL_GLINK };
 
-                       edata.data = dev->driver_info->check_connect (dev);
+                       edata.data = dev->driver_info->check_connect (dev) == 0;
                        if (copy_to_user (useraddr, &edata, sizeof (edata)))
                                return -EFAULT;
                        return 0;

_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to