Skip to content

Commit d2fcd01

Browse files
committed
Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth
Johan Hedberg says: ==================== pull request: bluetooth 2018-05-07 Here are a few more Bluetooth fixes for the 4.17 kernel, all for the btusb driver. Two relate to the needs_reset_resume table, and one is a revert of a patch for Atheros 1525/QCA6174 which caused a regression for some people. ==================== Signed-off-by: David S. Miller <[email protected]>
2 parents 2ba5622 + 596b07a commit d2fcd01

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

drivers/bluetooth/btusb.c

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@ static const struct usb_device_id blacklist_table[] = {
231231
{ USB_DEVICE(0x0930, 0x0227), .driver_info = BTUSB_ATH3012 },
232232
{ USB_DEVICE(0x0b05, 0x17d0), .driver_info = BTUSB_ATH3012 },
233233
{ USB_DEVICE(0x0cf3, 0x0036), .driver_info = BTUSB_ATH3012 },
234+
{ USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 },
234235
{ USB_DEVICE(0x0cf3, 0x3008), .driver_info = BTUSB_ATH3012 },
235236
{ USB_DEVICE(0x0cf3, 0x311d), .driver_info = BTUSB_ATH3012 },
236237
{ USB_DEVICE(0x0cf3, 0x311e), .driver_info = BTUSB_ATH3012 },
@@ -263,7 +264,6 @@ static const struct usb_device_id blacklist_table[] = {
263264
{ USB_DEVICE(0x0489, 0xe03c), .driver_info = BTUSB_ATH3012 },
264265

265266
/* QCA ROME chipset */
266-
{ USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_QCA_ROME },
267267
{ USB_DEVICE(0x0cf3, 0xe007), .driver_info = BTUSB_QCA_ROME },
268268
{ USB_DEVICE(0x0cf3, 0xe009), .driver_info = BTUSB_QCA_ROME },
269269
{ USB_DEVICE(0x0cf3, 0xe010), .driver_info = BTUSB_QCA_ROME },
@@ -399,6 +399,13 @@ static const struct dmi_system_id btusb_needs_reset_resume_table[] = {
399399
DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 3060"),
400400
},
401401
},
402+
{
403+
/* Dell XPS 9360 (QCA ROME device 0cf3:e300) */
404+
.matches = {
405+
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
406+
DMI_MATCH(DMI_PRODUCT_NAME, "XPS 13 9360"),
407+
},
408+
},
402409
{}
403410
};
404411

@@ -2852,6 +2859,12 @@ static int btusb_config_oob_wake(struct hci_dev *hdev)
28522859
}
28532860
#endif
28542861

2862+
static void btusb_check_needs_reset_resume(struct usb_interface *intf)
2863+
{
2864+
if (dmi_check_system(btusb_needs_reset_resume_table))
2865+
interface_to_usbdev(intf)->quirks |= USB_QUIRK_RESET_RESUME;
2866+
}
2867+
28552868
static int btusb_probe(struct usb_interface *intf,
28562869
const struct usb_device_id *id)
28572870
{
@@ -2974,9 +2987,6 @@ static int btusb_probe(struct usb_interface *intf,
29742987
hdev->send = btusb_send_frame;
29752988
hdev->notify = btusb_notify;
29762989

2977-
if (dmi_check_system(btusb_needs_reset_resume_table))
2978-
interface_to_usbdev(intf)->quirks |= USB_QUIRK_RESET_RESUME;
2979-
29802990
#ifdef CONFIG_PM
29812991
err = btusb_config_oob_wake(hdev);
29822992
if (err)
@@ -3064,6 +3074,7 @@ static int btusb_probe(struct usb_interface *intf,
30643074
data->setup_on_usb = btusb_setup_qca;
30653075
hdev->set_bdaddr = btusb_set_bdaddr_ath3012;
30663076
set_bit(HCI_QUIRK_SIMULTANEOUS_DISCOVERY, &hdev->quirks);
3077+
btusb_check_needs_reset_resume(intf);
30673078
}
30683079

30693080
#ifdef CONFIG_BT_HCIBTUSB_RTL

0 commit comments

Comments
 (0)