]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/usb/smsc95xx.c
Merge branch 'topic/misc' into for-linus
[linux-2.6-omap-h63xx.git] / drivers / net / usb / smsc95xx.c
index 4638a7bb471eb544459e266f28e69e2fe83ff086..5574abe29c73b64c63d0e123e132f3afb762e7f3 100644 (file)
@@ -45,8 +45,6 @@
 #define SMSC95XX_INTERNAL_PHY_ID       (1)
 #define SMSC95XX_TX_OVERHEAD           (8)
 #define SMSC95XX_TX_OVERHEAD_CSUM      (12)
-#define FLOW_CTRL_TX                   (1)
-#define FLOW_CTRL_RX                   (2)
 
 struct smsc95xx_priv {
        u32 mac_cr;
@@ -313,9 +311,10 @@ static void smsc95xx_async_cmd_callback(struct urb *urb, struct pt_regs *regs)
 {
        struct usb_context *usb_context = urb->context;
        struct usbnet *dev = usb_context->dev;
+       int status = urb->status;
 
-       if (urb->status < 0)
-               devwarn(dev, "async callback failed with %d", urb->status);
+       if (status < 0)
+               devwarn(dev, "async callback failed with %d", status);
 
        complete(&usb_context->notify);
 
@@ -437,28 +436,6 @@ static void smsc95xx_set_multicast(struct net_device *netdev)
        smsc95xx_write_reg_async(dev, MAC_CR, &pdata->mac_cr);
 }
 
-static u8 smsc95xx_resolve_flowctrl_fulldplx(u16 lcladv, u16 rmtadv)
-{
-       u8 cap = 0;
-
-       if (lcladv & ADVERTISE_PAUSE_CAP) {
-               if (lcladv & ADVERTISE_PAUSE_ASYM) {
-                       if (rmtadv & LPA_PAUSE_CAP)
-                               cap = FLOW_CTRL_TX | FLOW_CTRL_RX;
-                       else if (rmtadv & LPA_PAUSE_ASYM)
-                               cap = FLOW_CTRL_RX;
-               } else {
-                       if (rmtadv & LPA_PAUSE_CAP)
-                               cap = FLOW_CTRL_TX | FLOW_CTRL_RX;
-               }
-       } else if (lcladv & ADVERTISE_PAUSE_ASYM) {
-               if ((rmtadv & LPA_PAUSE_CAP) && (rmtadv & LPA_PAUSE_ASYM))
-                       cap = FLOW_CTRL_TX;
-       }
-
-       return cap;
-}
-
 static void smsc95xx_phy_update_flowcontrol(struct usbnet *dev, u8 duplex,
                                            u16 lcladv, u16 rmtadv)
 {
@@ -471,7 +448,7 @@ static void smsc95xx_phy_update_flowcontrol(struct usbnet *dev, u8 duplex,
        }
 
        if (duplex == DUPLEX_FULL) {
-               u8 cap = smsc95xx_resolve_flowctrl_fulldplx(lcladv, rmtadv);
+               u8 cap = mii_resolve_flowctrl_fdx(lcladv, rmtadv);
 
                if (cap & FLOW_CTRL_RX)
                        flow = 0xFFFF0002;