include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit...
[safe/jmp/linux-2.6] / drivers / net / wireless / libertas / if_usb.c
index ea3dc03..fcea574 100644 (file)
@@ -5,6 +5,7 @@
 #include <linux/moduleparam.h>
 #include <linux/firmware.h>
 #include <linux/netdevice.h>
+#include <linux/slab.h>
 #include <linux/usb.h>
 
 #ifdef CONFIG_OLPC
@@ -28,6 +29,8 @@
 static char *lbs_fw_name = "usb8388.bin";
 module_param_named(fw_name, lbs_fw_name, charp, 0644);
 
+MODULE_FIRMWARE("usb8388.bin");
+
 static struct usb_device_id if_usb_table[] = {
        /* Enter the device signature inside */
        { USB_DEVICE(0x1286, 0x2001) },
@@ -61,11 +64,9 @@ static ssize_t if_usb_firmware_set(struct device *dev,
 {
        struct lbs_private *priv = to_net_dev(dev)->ml_priv;
        struct if_usb_card *cardp = priv->card;
-       char fwname[FIRMWARE_NAME_MAX];
        int ret;
 
-       sscanf(buf, "%29s", fwname); /* FIRMWARE_NAME_MAX - 1 = 29 */
-       ret = if_usb_prog_firmware(cardp, fwname, BOOT_CMD_UPDATE_FW);
+       ret = if_usb_prog_firmware(cardp, buf, BOOT_CMD_UPDATE_FW);
        if (ret == 0)
                return count;
 
@@ -88,11 +89,9 @@ static ssize_t if_usb_boot2_set(struct device *dev,
 {
        struct lbs_private *priv = to_net_dev(dev)->ml_priv;
        struct if_usb_card *cardp = priv->card;
-       char fwname[FIRMWARE_NAME_MAX];
        int ret;
 
-       sscanf(buf, "%29s", fwname); /* FIRMWARE_NAME_MAX - 1 = 29 */
-       ret = if_usb_prog_firmware(cardp, fwname, BOOT_CMD_UPDATE_BOOT2);
+       ret = if_usb_prog_firmware(cardp, buf, BOOT_CMD_UPDATE_BOOT2);
        if (ret == 0)
                return count;
 
@@ -185,13 +184,14 @@ static void if_usb_setup_firmware(struct lbs_private *priv)
        wake_method.action = cpu_to_le16(CMD_ACT_GET);
        if (lbs_cmd_with_response(priv, CMD_802_11_FW_WAKE_METHOD, &wake_method)) {
                lbs_pr_info("Firmware does not seem to support PS mode\n");
+               priv->fwcapinfo &= ~FW_CAPINFO_PS;
        } else {
                if (le16_to_cpu(wake_method.method) == CMD_WAKE_METHOD_COMMAND_INT) {
                        lbs_deb_usb("Firmware seems to support PS with wake-via-command\n");
-                       priv->ps_supported = 1;
                } else {
                        /* The versions which boot up this way don't seem to
                           work even if we set it to the command interrupt */
+                       priv->fwcapinfo &= ~FW_CAPINFO_PS;
                        lbs_pr_info("Firmware doesn't wake via command interrupt; disabling PS mode\n");
                }
        }
@@ -303,6 +303,9 @@ static int if_usb_probe(struct usb_interface *intf,
        cardp->priv->fw_ready = 1;
 
        priv->hw_host_to_card = if_usb_host_to_card;
+       priv->enter_deep_sleep = NULL;
+       priv->exit_deep_sleep = NULL;
+       priv->reset_deep_sleep_wakeup = NULL;
 #ifdef CONFIG_OLPC
        if (machine_is_olpc())
                priv->reset_card = if_usb_reset_olpc_card;
@@ -511,7 +514,7 @@ static int __if_usb_submit_rx_urb(struct if_usb_card *cardp,
        /* Fill the receive configuration URB and initialise the Rx call back */
        usb_fill_bulk_urb(cardp->rx_urb, cardp->udev,
                          usb_rcvbulkpipe(cardp->udev, cardp->ep_in),
-                         (void *) (skb->tail + (size_t) IPFIELD_ALIGN_OFFSET),
+                         skb->data + IPFIELD_ALIGN_OFFSET,
                          MRVDRV_ETH_RX_PACKET_BUFFER_SIZE, callbackfn,
                          cardp);
 
@@ -686,8 +689,7 @@ static inline void process_cmdrequest(int recvlength, uint8_t *recvbuff,
                return;
        }
 
-       if (!in_interrupt())
-               BUG();
+       BUG_ON(!in_interrupt());
 
        spin_lock(&priv->driver_lock);