Skip to content

Commit b5dd0e7

Browse files
committed
Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth
Johan Hedberg says: ==================== Here are a few more important Bluetooth driver fixes for the 4.16 kernel. Please let me know if there are any issues pulling. Thanks. ==================== Signed-off-by: David S. Miller <[email protected]>
2 parents 36fe095 + e07c99b commit b5dd0e7

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

drivers/bluetooth/btusb.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,6 @@ 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 },
235234
{ USB_DEVICE(0x0cf3, 0x3008), .driver_info = BTUSB_ATH3012 },
236235
{ USB_DEVICE(0x0cf3, 0x311d), .driver_info = BTUSB_ATH3012 },
237236
{ USB_DEVICE(0x0cf3, 0x311e), .driver_info = BTUSB_ATH3012 },
@@ -264,6 +263,7 @@ static const struct usb_device_id blacklist_table[] = {
264263
{ USB_DEVICE(0x0489, 0xe03c), .driver_info = BTUSB_ATH3012 },
265264

266265
/* 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 },

drivers/bluetooth/hci_bcm.c

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,9 @@ static irqreturn_t bcm_host_wake(int irq, void *data)
244244

245245
bt_dev_dbg(bdev, "Host wake IRQ");
246246

247-
pm_request_resume(bdev->dev);
247+
pm_runtime_get(bdev->dev);
248+
pm_runtime_mark_last_busy(bdev->dev);
249+
pm_runtime_put_autosuspend(bdev->dev);
248250

249251
return IRQ_HANDLED;
250252
}
@@ -301,7 +303,7 @@ static const struct bcm_set_sleep_mode default_sleep_params = {
301303
.usb_auto_sleep = 0,
302304
.usb_resume_timeout = 0,
303305
.break_to_host = 0,
304-
.pulsed_host_wake = 0,
306+
.pulsed_host_wake = 1,
305307
};
306308

307309
static int bcm_setup_sleep(struct hci_uart *hu)
@@ -586,8 +588,11 @@ static int bcm_recv(struct hci_uart *hu, const void *data, int count)
586588
} else if (!bcm->rx_skb) {
587589
/* Delay auto-suspend when receiving completed packet */
588590
mutex_lock(&bcm_device_lock);
589-
if (bcm->dev && bcm_device_exists(bcm->dev))
590-
pm_request_resume(bcm->dev->dev);
591+
if (bcm->dev && bcm_device_exists(bcm->dev)) {
592+
pm_runtime_get(bcm->dev->dev);
593+
pm_runtime_mark_last_busy(bcm->dev->dev);
594+
pm_runtime_put_autosuspend(bcm->dev->dev);
595+
}
591596
mutex_unlock(&bcm_device_lock);
592597
}
593598

0 commit comments

Comments
 (0)