Message ID | 3f1ee6737f092ae6312a7ae6079d341b81c791a5.1657670957.git.objelf@gmail.com |
---|---|
State | New |
Headers | show |
Series | [v2] Bluetooth: btusb: mediatek: fix shutdown failure during runtime suspend | expand |
Hi Sean, On Wed, Jul 13, 2022 at 2:15 PM <bluez.test.bot@gmail.com> wrote: > > This is automated email and please do not reply to this email! > > Dear submitter, > > Thank you for submitting the patches to the linux bluetooth mailing list. > This is a CI test results with your patch series: > PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=659440 > > ---Test result--- > > Test Summary: > CheckPatch PASS 1.02 seconds > GitLint PASS 0.45 seconds > SubjectPrefix PASS 0.33 seconds > BuildKernel PASS 41.55 seconds > BuildKernel32 PASS 37.70 seconds > Incremental Build with patchesPASS 49.91 seconds > TestRunner: Setup PASS 620.74 seconds > TestRunner: l2cap-tester PASS 20.09 seconds > TestRunner: bnep-tester PASS 7.29 seconds > TestRunner: mgmt-tester PASS 122.23 seconds > TestRunner: rfcomm-tester PASS 11.24 seconds > TestRunner: sco-tester PASS 10.85 seconds > TestRunner: smp-tester PASS 11.16 seconds > TestRunner: userchan-tester PASS 7.91 seconds > > > > --- > Regards, > Linux Bluetooth Need more context to be able to merge this, why are you using usb_autopm_get_interface/usb_autopm_put_interface and shouldn't that be generalized if that is required to handle suspend properly?
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index fb1a67189412..b1161853c6ab 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -2795,10 +2795,15 @@ static int btusb_mtk_setup(struct hci_dev *hdev) static int btusb_mtk_shutdown(struct hci_dev *hdev) { + struct btusb_data *data = hci_get_drvdata(hdev); struct btmtk_hci_wmt_params wmt_params; u8 param = 0; int err; + err = usb_autopm_get_interface(data->intf); + if (err < 0) + return err; + /* Disable the device */ wmt_params.op = BTMTK_WMT_FUNC_CTRL; wmt_params.flag = 0; @@ -2807,12 +2812,12 @@ static int btusb_mtk_shutdown(struct hci_dev *hdev) wmt_params.status = NULL; err = btusb_mtk_hci_wmt_sync(hdev, &wmt_params); - if (err < 0) { + if (err < 0) bt_dev_err(hdev, "Failed to send wmt func ctrl (%d)", err); - return err; - } - return 0; + usb_autopm_put_interface(data->intf); + + return err; } static void btusb_mtk_cmd_timeout(struct hci_dev *hdev)