|
@@ -244,7 +244,9 @@ static irqreturn_t bcm_host_wake(int irq, void *data)
|
|
|
|
|
|
bt_dev_dbg(bdev, "Host wake IRQ");
|
|
bt_dev_dbg(bdev, "Host wake IRQ");
|
|
|
|
|
|
- pm_request_resume(bdev->dev);
|
|
|
|
|
|
+ pm_runtime_get(bdev->dev);
|
|
|
|
+ pm_runtime_mark_last_busy(bdev->dev);
|
|
|
|
+ pm_runtime_put_autosuspend(bdev->dev);
|
|
|
|
|
|
return IRQ_HANDLED;
|
|
return IRQ_HANDLED;
|
|
}
|
|
}
|
|
@@ -586,8 +588,11 @@ static int bcm_recv(struct hci_uart *hu, const void *data, int count)
|
|
} else if (!bcm->rx_skb) {
|
|
} else if (!bcm->rx_skb) {
|
|
/* Delay auto-suspend when receiving completed packet */
|
|
/* Delay auto-suspend when receiving completed packet */
|
|
mutex_lock(&bcm_device_lock);
|
|
mutex_lock(&bcm_device_lock);
|
|
- if (bcm->dev && bcm_device_exists(bcm->dev))
|
|
|
|
- pm_request_resume(bcm->dev->dev);
|
|
|
|
|
|
+ if (bcm->dev && bcm_device_exists(bcm->dev)) {
|
|
|
|
+ pm_runtime_get(bcm->dev->dev);
|
|
|
|
+ pm_runtime_mark_last_busy(bcm->dev->dev);
|
|
|
|
+ pm_runtime_put_autosuspend(bcm->dev->dev);
|
|
|
|
+ }
|
|
mutex_unlock(&bcm_device_lock);
|
|
mutex_unlock(&bcm_device_lock);
|
|
}
|
|
}
|
|
|
|
|