Message ID | 2d7bef70b876e4cbd447c5109956f716bad5bc2d.1687565769.git.objelf@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | [v7,1/3] Bluetooth: btusb: mediatek: use readx_poll_timeout instead of open coding | expand |
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=760403 ---Test result--- Test Summary: CheckPatch PASS 2.54 seconds GitLint FAIL 1.07 seconds SubjectPrefix PASS 0.25 seconds BuildKernel PASS 32.25 seconds CheckAllWarning PASS 35.44 seconds CheckSparse PASS 40.36 seconds CheckSmatch PASS 111.91 seconds BuildKernel32 PASS 30.99 seconds TestRunnerSetup PASS 444.24 seconds TestRunner_l2cap-tester PASS 16.60 seconds TestRunner_iso-tester PASS 22.56 seconds TestRunner_bnep-tester PASS 5.30 seconds TestRunner_mgmt-tester PASS 128.29 seconds TestRunner_rfcomm-tester PASS 8.51 seconds TestRunner_sco-tester PASS 7.84 seconds TestRunner_ioctl-tester PASS 9.07 seconds TestRunner_mesh-tester PASS 6.71 seconds TestRunner_smp-tester PASS 7.87 seconds TestRunner_userchan-tester PASS 5.51 seconds IncrementalBuild PASS 41.53 seconds Details ############################## Test: GitLint - FAIL Desc: Run gitlint Output: [v7,1/3] Bluetooth: btusb: mediatek: use readx_poll_timeout instead of open coding WARNING: I3 - ignore-body-lines: gitlint will be switching from using Python regex 'match' (match beginning) to 'search' (match anywhere) semantics. Please review your ignore-body-lines.regex option accordingly. To remove this warning, set general.regex-style-search=True. More details: https://jorisroovers.github.io/gitlint/configuration/#regex-style-search 1: T1 Title exceeds max length (82>80): "[v7,1/3] Bluetooth: btusb: mediatek: use readx_poll_timeout instead of open coding" --- Regards, Linux Bluetooth
Hello: This series was applied to bluetooth/bluetooth-next.git (master) by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>: On Tue, 27 Jun 2023 04:41:37 +0800 you wrote: > From: Sean Wang <sean.wang@mediatek.com> > > Use readx_poll_timeout instead of open coding to poll the hardware reset > status until it is done. > > Signed-off-by: Sean Wang <sean.wang@mediatek.com> > > [...] Here is the summary with links: - [v7,1/3] Bluetooth: btusb: mediatek: use readx_poll_timeout instead of open coding https://git.kernel.org/bluetooth/bluetooth-next/c/c56e5f834e13 - [v7,2/3] Bluetooth: btmtk: introduce btmtk reset work (no matching commit) - [v7,3/3] Bluetooth: btusb: mediatek: add MediaTek devcoredump support (no matching commit) You are awesome, thank you!
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index 1c0879601735..71b119bcff29 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -2654,8 +2654,6 @@ static int btusb_recv_event_realtek(struct hci_dev *hdev, struct sk_buff *skb) #define MTK_EP_RST_OPT 0x74011890 #define MTK_EP_RST_IN_OUT_OPT 0x00010001 #define MTK_BT_RST_DONE 0x00000100 -#define MTK_BT_RESET_WAIT_MS 100 -#define MTK_BT_RESET_NUM_TRIES 10 #define MTK_BT_RESET_REG_CONNV3 0x70028610 #define MTK_BT_READ_DEV_ID 0x70010200 @@ -3029,6 +3027,16 @@ static int btusb_mtk_id_get(struct btusb_data *data, u32 reg, u32 *id) return btusb_mtk_reg_read(data, reg, id); } +static u32 btusb_mtk_reset_done(struct hci_dev *hdev) +{ + struct btusb_data *data = hci_get_drvdata(hdev); + u32 val = 0; + + btusb_mtk_uhw_reg_read(data, MTK_BT_MISC, &val); + + return val & MTK_BT_RST_DONE; +} + static int btusb_mtk_setup(struct hci_dev *hdev) { struct btusb_data *data = hci_get_drvdata(hdev); @@ -3229,7 +3237,7 @@ static void btusb_mtk_cmd_timeout(struct hci_dev *hdev) { struct btusb_data *data = hci_get_drvdata(hdev); u32 val; - int err, retry = 0; + int err; struct btmediatek_data *mediatek; /* It's MediaTek specific bluetooth reset mechanism via USB */ @@ -3281,18 +3289,10 @@ static void btusb_mtk_cmd_timeout(struct hci_dev *hdev) btusb_mtk_uhw_reg_read(data, MTK_BT_SUBSYS_RST, &val); } - /* Poll the register until reset is completed */ - do { - btusb_mtk_uhw_reg_read(data, MTK_BT_MISC, &val); - if (val & MTK_BT_RST_DONE) { - bt_dev_dbg(hdev, "Bluetooth Reset Successfully"); - break; - } - - bt_dev_dbg(hdev, "Polling Bluetooth Reset CR"); - retry++; - msleep(MTK_BT_RESET_WAIT_MS); - } while (retry < MTK_BT_RESET_NUM_TRIES); + err = readx_poll_timeout(btusb_mtk_reset_done, hdev, val, + val & MTK_BT_RST_DONE, 20000, 1000000); + if (err < 0) + bt_dev_err(hdev, "Reset timeout"); btusb_mtk_id_get(data, 0x70010200, &val); if (!val)