video: rockchip: vop: 3399: add support afbdc
[firefly-linux-kernel-4.4.55.git] / drivers / bluetooth / btusb.c
index e33dacf5bd98765178ddac60f7d50d742de555ac..968897108c76c00d39ac528edfa29012a27ec5a5 100644 (file)
@@ -153,6 +153,10 @@ static const struct usb_device_id btusb_table[] = {
        { USB_VENDOR_AND_INTERFACE_INFO(0x13d3, 0xff, 0x01, 0x01),
          .driver_info = BTUSB_BCM_PATCHRAM },
 
+       /* Toshiba Corp - Broadcom based */
+       { USB_VENDOR_AND_INTERFACE_INFO(0x0930, 0xff, 0x01, 0x01),
+         .driver_info = BTUSB_BCM_PATCHRAM },
+
        /* Intel Bluetooth USB Bootloader (RAM module) */
        { USB_DEVICE(0x8087, 0x0a5a),
          .driver_info = BTUSB_INTEL_BOOT | BTUSB_BROKEN_ISOC },
@@ -1372,6 +1376,8 @@ static void btusb_work(struct work_struct *work)
                }
 
                if (data->isoc_altsetting != new_alts) {
+                       unsigned long flags;
+
                        clear_bit(BTUSB_ISOC_RUNNING, &data->flags);
                        usb_kill_anchored_urbs(&data->isoc_anchor);
 
@@ -1384,10 +1390,10 @@ static void btusb_work(struct work_struct *work)
                         * Clear outstanding fragment when selecting a new
                         * alternate setting.
                         */
-                       spin_lock(&data->rxlock);
+                       spin_lock_irqsave(&data->rxlock, flags);
                        kfree_skb(data->sco_skb);
                        data->sco_skb = NULL;
-                       spin_unlock(&data->rxlock);
+                       spin_unlock_irqrestore(&data->rxlock, flags);
 
                        if (__set_isoc_interface(hdev, new_alts) < 0)
                                return;