On some machines, it seems that usb hubs do not get power while being suspended. We can get something like this in dmesg: usb usb2: root hub lost power or was reset When this is the case, .reset_resume is called instead of .resume. If .reset_resume is not set, bluetooth modules would stay in an unusable state because the resume function is not called. Signed-off-by: Wen-chien Jesse Sung <jesse.sung@xxxxxxxxxxxxx> --- drivers/bluetooth/btusb.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index abfc4ee..db2a4d1 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -1220,6 +1220,7 @@ static struct usb_driver btusb_driver = { #ifdef CONFIG_PM .suspend = btusb_suspend, .resume = btusb_resume, + .reset_resume = btusb_resume, #endif .id_table = btusb_table, .supports_autosuspend = 1,