drivers/net/usb: fix sparse warnings: Should it be static?
[cascardo/linux.git] / drivers / net / usb / smsc95xx.c
index ee2eac3..3e6155a 100644 (file)
@@ -55,11 +55,10 @@ struct smsc95xx_priv {
 
 struct usb_context {
        struct usb_ctrlrequest req;
-       struct completion notify;
        struct usbnet *dev;
 };
 
-int turbo_mode = true;
+static int turbo_mode = true;
 module_param(turbo_mode, bool, 0644);
 MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction");
 
@@ -307,15 +306,14 @@ static int smsc95xx_write_eeprom(struct usbnet *dev, u32 offset, u32 length,
        return 0;
 }
 
-static void smsc95xx_async_cmd_callback(struct urb *urb, struct pt_regs *regs)
+static void smsc95xx_async_cmd_callback(struct urb *urb)
 {
        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);
-
-       complete(&usb_context->notify);
+       if (status < 0)
+               devwarn(dev, "async callback failed with %d", status);
 
        kfree(usb_context);
        usb_free_urb(urb);
@@ -347,11 +345,10 @@ static int smsc95xx_write_reg_async(struct usbnet *dev, u16 index, u32 *data)
        usb_context->req.wValue = 00;
        usb_context->req.wIndex = cpu_to_le16(index);
        usb_context->req.wLength = cpu_to_le16(size);
-       init_completion(&usb_context->notify);
 
        usb_fill_control_urb(urb, dev->udev, usb_sndctrlpipe(dev->udev, 0),
                (void *)&usb_context->req, data, size,
-               (usb_complete_t)smsc95xx_async_cmd_callback,
+               smsc95xx_async_cmd_callback,
                (void *)usb_context);
 
        status = usb_submit_urb(urb, GFP_ATOMIC);
@@ -435,28 +432,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)
 {
@@ -469,7 +444,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;