rk: revert to v3.10
[firefly-linux-kernel-4.4.55.git] / drivers / bluetooth / ath3k.c
index 9c2c4eca52e30572d385dd9468e17b907c511f0d..11f467c00d0ac836a1c6509bffd31e49b891a844 100644 (file)
@@ -77,28 +77,20 @@ static struct usb_device_id ath3k_table[] = {
        { USB_DEVICE(0x0CF3, 0x3004) },
        { USB_DEVICE(0x0CF3, 0x3008) },
        { USB_DEVICE(0x0CF3, 0x311D) },
-       { USB_DEVICE(0x0CF3, 0x311E) },
-       { USB_DEVICE(0x0CF3, 0x311F) },
        { USB_DEVICE(0x0CF3, 0x817a) },
        { USB_DEVICE(0x13d3, 0x3375) },
        { USB_DEVICE(0x04CA, 0x3004) },
        { USB_DEVICE(0x04CA, 0x3005) },
        { USB_DEVICE(0x04CA, 0x3006) },
-       { USB_DEVICE(0x04CA, 0x3007) },
        { USB_DEVICE(0x04CA, 0x3008) },
        { USB_DEVICE(0x13d3, 0x3362) },
        { USB_DEVICE(0x0CF3, 0xE004) },
-       { USB_DEVICE(0x0CF3, 0xE005) },
        { USB_DEVICE(0x0930, 0x0219) },
        { USB_DEVICE(0x0489, 0xe057) },
        { USB_DEVICE(0x13d3, 0x3393) },
        { USB_DEVICE(0x0489, 0xe04e) },
        { USB_DEVICE(0x0489, 0xe056) },
        { USB_DEVICE(0x0489, 0xe04d) },
-       { USB_DEVICE(0x04c5, 0x1330) },
-       { USB_DEVICE(0x13d3, 0x3402) },
-       { USB_DEVICE(0x0cf3, 0x3121) },
-       { USB_DEVICE(0x0cf3, 0xe003) },
 
        /* Atheros AR5BBU12 with sflash firmware */
        { USB_DEVICE(0x0489, 0xE02C) },
@@ -122,28 +114,20 @@ static struct usb_device_id ath3k_blist_tbl[] = {
        { USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 },
        { USB_DEVICE(0x0cf3, 0x3008), .driver_info = BTUSB_ATH3012 },
        { USB_DEVICE(0x0cf3, 0x311D), .driver_info = BTUSB_ATH3012 },
-       { USB_DEVICE(0x0cf3, 0x311E), .driver_info = BTUSB_ATH3012 },
-       { USB_DEVICE(0x0cf3, 0x311F), .driver_info = BTUSB_ATH3012 },
        { USB_DEVICE(0x0CF3, 0x817a), .driver_info = BTUSB_ATH3012 },
        { USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 },
        { USB_DEVICE(0x04ca, 0x3004), .driver_info = BTUSB_ATH3012 },
        { USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 },
        { USB_DEVICE(0x04ca, 0x3006), .driver_info = BTUSB_ATH3012 },
-       { USB_DEVICE(0x04ca, 0x3007), .driver_info = BTUSB_ATH3012 },
        { USB_DEVICE(0x04ca, 0x3008), .driver_info = BTUSB_ATH3012 },
        { USB_DEVICE(0x13d3, 0x3362), .driver_info = BTUSB_ATH3012 },
        { USB_DEVICE(0x0cf3, 0xe004), .driver_info = BTUSB_ATH3012 },
-       { USB_DEVICE(0x0cf3, 0xe005), .driver_info = BTUSB_ATH3012 },
        { USB_DEVICE(0x0930, 0x0219), .driver_info = BTUSB_ATH3012 },
        { USB_DEVICE(0x0489, 0xe057), .driver_info = BTUSB_ATH3012 },
        { USB_DEVICE(0x13d3, 0x3393), .driver_info = BTUSB_ATH3012 },
        { USB_DEVICE(0x0489, 0xe04e), .driver_info = BTUSB_ATH3012 },
        { USB_DEVICE(0x0489, 0xe056), .driver_info = BTUSB_ATH3012 },
        { USB_DEVICE(0x0489, 0xe04d), .driver_info = BTUSB_ATH3012 },
-       { USB_DEVICE(0x04c5, 0x1330), .driver_info = BTUSB_ATH3012 },
-       { USB_DEVICE(0x13d3, 0x3402), .driver_info = BTUSB_ATH3012 },
-       { USB_DEVICE(0x0cf3, 0x3121), .driver_info = BTUSB_ATH3012 },
-       { USB_DEVICE(0x0cf3, 0xe003), .driver_info = BTUSB_ATH3012 },
 
        /* Atheros AR5BBU22 with sflash firmware */
        { USB_DEVICE(0x0489, 0xE03C), .driver_info = BTUSB_ATH3012 },
@@ -155,8 +139,6 @@ static struct usb_device_id ath3k_blist_tbl[] = {
 #define USB_REQ_DFU_DNLOAD     1
 #define BULK_SIZE              4096
 #define FW_HDR_SIZE            20
-#define TIMEGAP_USEC_MIN       50
-#define TIMEGAP_USEC_MAX       100
 
 static int ath3k_load_firmware(struct usb_device *udev,
                                const struct firmware *firmware)
@@ -187,9 +169,6 @@ static int ath3k_load_firmware(struct usb_device *udev,
        count -= 20;
 
        while (count) {
-               /* workaround the compatibility issue with xHCI controller*/
-               usleep_range(TIMEGAP_USEC_MIN, TIMEGAP_USEC_MAX);
-
                size = min_t(uint, count, BULK_SIZE);
                pipe = usb_sndbulkpipe(udev, 0x02);
                memcpy(send_buf, firmware->data + sent, size);
@@ -214,44 +193,24 @@ error:
 
 static int ath3k_get_state(struct usb_device *udev, unsigned char *state)
 {
-       int ret, pipe = 0;
-       char *buf;
-
-       buf = kmalloc(sizeof(*buf), GFP_KERNEL);
-       if (!buf)
-               return -ENOMEM;
+       int pipe = 0;
 
        pipe = usb_rcvctrlpipe(udev, 0);
-       ret = usb_control_msg(udev, pipe, ATH3K_GETSTATE,
-                             USB_TYPE_VENDOR | USB_DIR_IN, 0, 0,
-                             buf, sizeof(*buf), USB_CTRL_SET_TIMEOUT);
-
-       *state = *buf;
-       kfree(buf);
-
-       return ret;
+       return usb_control_msg(udev, pipe, ATH3K_GETSTATE,
+                       USB_TYPE_VENDOR | USB_DIR_IN, 0, 0,
+                       state, 0x01, USB_CTRL_SET_TIMEOUT);
 }
 
 static int ath3k_get_version(struct usb_device *udev,
                        struct ath3k_version *version)
 {
-       int ret, pipe = 0;
-       struct ath3k_version *buf;
-       const int size = sizeof(*buf);
-
-       buf = kmalloc(size, GFP_KERNEL);
-       if (!buf)
-               return -ENOMEM;
+       int pipe = 0;
 
        pipe = usb_rcvctrlpipe(udev, 0);
-       ret = usb_control_msg(udev, pipe, ATH3K_GETVERSION,
-                             USB_TYPE_VENDOR | USB_DIR_IN, 0, 0,
-                             buf, size, USB_CTRL_SET_TIMEOUT);
-
-       memcpy(version, buf, size);
-       kfree(buf);
-
-       return ret;
+       return usb_control_msg(udev, pipe, ATH3K_GETVERSION,
+                       USB_TYPE_VENDOR | USB_DIR_IN, 0, 0, version,
+                       sizeof(struct ath3k_version),
+                       USB_CTRL_SET_TIMEOUT);
 }
 
 static int ath3k_load_fwfile(struct usb_device *udev,
@@ -286,9 +245,6 @@ static int ath3k_load_fwfile(struct usb_device *udev,
        count -= size;
 
        while (count) {
-               /* workaround the compatibility issue with xHCI controller*/
-               usleep_range(TIMEGAP_USEC_MIN, TIMEGAP_USEC_MAX);
-
                size = min_t(uint, count, BULK_SIZE);
                pipe = usb_sndbulkpipe(udev, 0x02);