Staging: vt6655: Hoist assign from if
[safe/jmp/linux-2.6] / drivers / bluetooth / bfusb.c
index 4c766f3..005919a 100644 (file)
 #include <net/bluetooth/bluetooth.h>
 #include <net/bluetooth/hci_core.h>
 
-#ifndef CONFIG_BT_HCIBFUSB_DEBUG
-#undef  BT_DBG
-#define BT_DBG(D...)
-#endif
-
-#define VERSION "1.1"
-
-static int ignore = 0;
+#define VERSION "1.2"
 
 static struct usb_driver bfusb_driver;
 
@@ -223,7 +216,7 @@ static int bfusb_rx_submit(struct bfusb_data *data, struct urb *urb)
        struct sk_buff *skb;
        int err, pipe, size = HCI_MAX_FRAME_SIZE + 32;
 
-       BT_DBG("bfusb %p urb %p", bfusb, urb);
+       BT_DBG("bfusb %p urb %p", data, urb);
 
        if (!urb && !(urb = usb_alloc_urb(0, GFP_ATOMIC)))
                return -ENOMEM;
@@ -264,8 +257,7 @@ static inline int bfusb_recv_block(struct bfusb_data *data, int hdr, unsigned ch
 
        if (hdr & 0x10) {
                BT_ERR("%s error in block", data->hdev->name);
-               if (data->reassembly)
-                       kfree_skb(data->reassembly);
+               kfree_skb(data->reassembly);
                data->reassembly = NULL;
                return -EIO;
        }
@@ -356,7 +348,7 @@ static void bfusb_rx_complete(struct urb *urb)
        int count = urb->actual_length;
        int err, hdr, len;
 
-       BT_DBG("bfusb %p urb %p skb %p len %d", bfusb, urb, skb, skb->len);
+       BT_DBG("bfusb %p urb %p skb %p len %d", data, urb, skb, skb->len);
 
        read_lock(&data->lock);
 
@@ -527,7 +519,7 @@ static int bfusb_send_frame(struct sk_buff *skb)
                buf[2] = (size == BFUSB_MAX_BLOCK_SIZE) ? 0 : size;
 
                memcpy(skb_put(nskb, 3), buf, 3);
-               memcpy(skb_put(nskb, size), skb->data + sent, size);
+               skb_copy_from_linear_data_offset(skb, sent, skb_put(nskb, size), size);
 
                sent  += size;
                count -= size;
@@ -566,7 +558,8 @@ static int bfusb_ioctl(struct hci_dev *hdev, unsigned int cmd, unsigned long arg
        return -ENOIOCTLCMD;
 }
 
-static int bfusb_load_firmware(struct bfusb_data *data, unsigned char *firmware, int count)
+static int bfusb_load_firmware(struct bfusb_data *data,
+                              const unsigned char *firmware, int count)
 {
        unsigned char *buf;
        int err, pipe, len, size, sent = 0;
@@ -655,9 +648,6 @@ static int bfusb_probe(struct usb_interface *intf, const struct usb_device_id *i
 
        BT_DBG("intf %p id %p", intf, id);
 
-       if (ignore)
-               return -ENODEV;
-
        /* Check number of endpoints */
        if (intf->cur_altsetting->desc.bNumEndpoints < 2)
                return -EIO;
@@ -695,7 +685,7 @@ static int bfusb_probe(struct usb_interface *intf, const struct usb_device_id *i
                goto error;
        }
 
-       BT_DBG("firmware data %p size %d", firmware->data, firmware->size);
+       BT_DBG("firmware data %p size %zu", firmware->data, firmware->size);
 
        if (bfusb_load_firmware(data, firmware->data, firmware->size) < 0) {
                BT_ERR("Firmware loading failed");
@@ -713,7 +703,7 @@ static int bfusb_probe(struct usb_interface *intf, const struct usb_device_id *i
 
        data->hdev = hdev;
 
-       hdev->type = HCI_USB;
+       hdev->bus = HCI_USB;
        hdev->driver_data = data;
        SET_HCIDEV_DEV(hdev, &intf->dev);
 
@@ -794,9 +784,6 @@ static void __exit bfusb_exit(void)
 module_init(bfusb_init);
 module_exit(bfusb_exit);
 
-module_param(ignore, bool, 0644);
-MODULE_PARM_DESC(ignore, "Ignore devices from the matching table");
-
 MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
 MODULE_DESCRIPTION("BlueFRITZ! USB driver ver " VERSION);
 MODULE_VERSION(VERSION);