* [PATCH 1/2] Bluetooth: btusb: mediatek: remove the unnecessary goto tag
@ 2024-06-04 22:46 sean.wang
2024-06-04 22:47 ` [PATCH 2/2] Bluetooth: btusb: mediatek: return error code for failed register access sean.wang
2024-06-04 23:34 ` [1/2] Bluetooth: btusb: mediatek: remove the unnecessary goto tag bluez.test.bot
0 siblings, 2 replies; 3+ messages in thread
From: sean.wang @ 2024-06-04 22:46 UTC (permalink / raw)
To: marcel, johan.hedberg, luiz.dentz
Cc: linux-bluetooth, linux-mediatek, linux-kernel, Sean Wang
From: Sean Wang <sean.wang@mediatek.com>
Remove the unnecessary goto tag whether there is an error or not, we have
to free the buffer at the end of the function.
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
drivers/bluetooth/btusb.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index 79aefdb3324d..fcdd660add19 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -2953,12 +2953,9 @@ static int btusb_mtk_uhw_reg_write(struct btusb_data *data, u32 reg, u32 val)
0x5E,
reg >> 16, reg & 0xffff,
buf, 4, USB_CTRL_SET_TIMEOUT);
- if (err < 0) {
+ if (err < 0)
bt_dev_err(hdev, "Failed to write uhw reg(%d)", err);
- goto err_free_buf;
- }
-err_free_buf:
kfree(buf);
return err;
--
2.25.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] Bluetooth: btusb: mediatek: return error code for failed register access
2024-06-04 22:46 [PATCH 1/2] Bluetooth: btusb: mediatek: remove the unnecessary goto tag sean.wang
@ 2024-06-04 22:47 ` sean.wang
2024-06-04 23:34 ` [1/2] Bluetooth: btusb: mediatek: remove the unnecessary goto tag bluez.test.bot
1 sibling, 0 replies; 3+ messages in thread
From: sean.wang @ 2024-06-04 22:47 UTC (permalink / raw)
To: marcel, johan.hedberg, luiz.dentz
Cc: linux-bluetooth, linux-mediatek, linux-kernel, Sean Wang
From: Sean Wang <sean.wang@mediatek.com>
Update the code to immediately return an error code if accessing a
related register fails. This ensures that our desired logic for
subsequent register operations is maintained and allows us to promptly
catch any unexpected errors.
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
drivers/bluetooth/btusb.c | 116 ++++++++++++++++++++++++++++----------
1 file changed, 85 insertions(+), 31 deletions(-)
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index fcdd660add19..e862e4648082 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -3037,47 +3037,96 @@ static int btusb_mtk_subsys_reset(struct hci_dev *hdev, u32 dev_id)
int err;
if (dev_id == 0x7922) {
- btusb_mtk_uhw_reg_read(data, MTK_BT_SUBSYS_RST, &val);
+ err = btusb_mtk_uhw_reg_read(data, MTK_BT_SUBSYS_RST, &val);
+ if (err < 0)
+ return err;
val |= 0x00002020;
- btusb_mtk_uhw_reg_write(data, MTK_BT_SUBSYS_RST, val);
- btusb_mtk_uhw_reg_write(data, MTK_EP_RST_OPT, 0x00010001);
- btusb_mtk_uhw_reg_read(data, MTK_BT_SUBSYS_RST, &val);
+ err = btusb_mtk_uhw_reg_write(data, MTK_BT_SUBSYS_RST, val);
+ if (err < 0)
+ return err;
+ err = btusb_mtk_uhw_reg_write(data, MTK_EP_RST_OPT, 0x00010001);
+ if (err < 0)
+ return err;
+ err = btusb_mtk_uhw_reg_read(data, MTK_BT_SUBSYS_RST, &val);
+ if (err < 0)
+ return err;
val |= BIT(0);
- btusb_mtk_uhw_reg_write(data, MTK_BT_SUBSYS_RST, val);
+ err = btusb_mtk_uhw_reg_write(data, MTK_BT_SUBSYS_RST, val);
+ if (err < 0)
+ return err;
msleep(100);
} else if (dev_id == 0x7925) {
- btusb_mtk_uhw_reg_read(data, MTK_BT_RESET_REG_CONNV3, &val);
+ err = btusb_mtk_uhw_reg_read(data, MTK_BT_RESET_REG_CONNV3, &val);
+ if (err < 0)
+ return err;
val |= (1 << 5);
- btusb_mtk_uhw_reg_write(data, MTK_BT_RESET_REG_CONNV3, val);
- btusb_mtk_uhw_reg_read(data, MTK_BT_RESET_REG_CONNV3, &val);
+ err = btusb_mtk_uhw_reg_write(data, MTK_BT_RESET_REG_CONNV3, val);
+ if (err < 0)
+ return err;
+ err = btusb_mtk_uhw_reg_read(data, MTK_BT_RESET_REG_CONNV3, &val);
+ if (err < 0)
+ return err;
val &= 0xFFFF00FF;
val |= (1 << 13);
- btusb_mtk_uhw_reg_write(data, MTK_BT_RESET_REG_CONNV3, val);
- btusb_mtk_uhw_reg_write(data, MTK_EP_RST_OPT, 0x00010001);
- btusb_mtk_uhw_reg_read(data, MTK_BT_RESET_REG_CONNV3, &val);
+ err = btusb_mtk_uhw_reg_write(data, MTK_BT_RESET_REG_CONNV3, val);
+ if (err < 0)
+ return err;
+ err = btusb_mtk_uhw_reg_write(data, MTK_EP_RST_OPT, 0x00010001);
+ if (err < 0)
+ return err;
+ err = btusb_mtk_uhw_reg_read(data, MTK_BT_RESET_REG_CONNV3, &val);
+ if (err < 0)
+ return err;
val |= (1 << 0);
- btusb_mtk_uhw_reg_write(data, MTK_BT_RESET_REG_CONNV3, val);
- btusb_mtk_uhw_reg_write(data, MTK_UDMA_INT_STA_BT, 0x000000FF);
- btusb_mtk_uhw_reg_read(data, MTK_UDMA_INT_STA_BT, &val);
- btusb_mtk_uhw_reg_write(data, MTK_UDMA_INT_STA_BT1, 0x000000FF);
- btusb_mtk_uhw_reg_read(data, MTK_UDMA_INT_STA_BT1, &val);
+ err = btusb_mtk_uhw_reg_write(data, MTK_BT_RESET_REG_CONNV3, val);
+ if (err < 0)
+ return err;
+ err = btusb_mtk_uhw_reg_write(data, MTK_UDMA_INT_STA_BT, 0x000000FF);
+ if (err < 0)
+ return err;
+ err = btusb_mtk_uhw_reg_read(data, MTK_UDMA_INT_STA_BT, &val);
+ if (err < 0)
+ return err;
+ err = btusb_mtk_uhw_reg_write(data, MTK_UDMA_INT_STA_BT1, 0x000000FF);
+ if (err < 0)
+ return err;
+ err = btusb_mtk_uhw_reg_read(data, MTK_UDMA_INT_STA_BT1, &val);
+ if (err < 0)
+ return err;
msleep(100);
} else {
/* It's Device EndPoint Reset Option Register */
bt_dev_dbg(hdev, "Initiating reset mechanism via uhw");
- btusb_mtk_uhw_reg_write(data, MTK_EP_RST_OPT, MTK_EP_RST_IN_OUT_OPT);
- btusb_mtk_uhw_reg_read(data, MTK_BT_WDT_STATUS, &val);
-
+ err = btusb_mtk_uhw_reg_write(data, MTK_EP_RST_OPT, MTK_EP_RST_IN_OUT_OPT);
+ if (err < 0)
+ return err;
+ err = btusb_mtk_uhw_reg_read(data, MTK_BT_WDT_STATUS, &val);
+ if (err < 0)
+ return err;
/* Reset the bluetooth chip via USB interface. */
- btusb_mtk_uhw_reg_write(data, MTK_BT_SUBSYS_RST, 1);
- btusb_mtk_uhw_reg_write(data, MTK_UDMA_INT_STA_BT, 0x000000FF);
- btusb_mtk_uhw_reg_read(data, MTK_UDMA_INT_STA_BT, &val);
- btusb_mtk_uhw_reg_write(data, MTK_UDMA_INT_STA_BT1, 0x000000FF);
- btusb_mtk_uhw_reg_read(data, MTK_UDMA_INT_STA_BT1, &val);
+ err = btusb_mtk_uhw_reg_write(data, MTK_BT_SUBSYS_RST, 1);
+ if (err < 0)
+ return err;
+ err = btusb_mtk_uhw_reg_write(data, MTK_UDMA_INT_STA_BT, 0x000000FF);
+ if (err < 0)
+ return err;
+ err = btusb_mtk_uhw_reg_read(data, MTK_UDMA_INT_STA_BT, &val);
+ if (err < 0)
+ return err;
+ err = btusb_mtk_uhw_reg_write(data, MTK_UDMA_INT_STA_BT1, 0x000000FF);
+ if (err < 0)
+ return err;
+ err = btusb_mtk_uhw_reg_read(data, MTK_UDMA_INT_STA_BT1, &val);
+ if (err < 0)
+ return err;
/* MT7921 need to delay 20ms between toggle reset bit */
msleep(20);
- btusb_mtk_uhw_reg_write(data, MTK_BT_SUBSYS_RST, 0);
- btusb_mtk_uhw_reg_read(data, MTK_BT_SUBSYS_RST, &val);
+ err = btusb_mtk_uhw_reg_write(data, MTK_BT_SUBSYS_RST, 0);
+ if (err < 0)
+ return err;
+ err = btusb_mtk_uhw_reg_read(data, MTK_BT_SUBSYS_RST, &val);
+ if (err < 0)
+ return err;
}
err = readx_poll_timeout(btusb_mtk_reset_done, hdev, val,
@@ -3085,11 +3134,14 @@ static int btusb_mtk_subsys_reset(struct hci_dev *hdev, u32 dev_id)
if (err < 0)
bt_dev_err(hdev, "Reset timeout");
- if (dev_id == 0x7922)
- btusb_mtk_uhw_reg_write(data, MTK_UDMA_INT_STA_BT, 0x000000FF);
+ if (dev_id == 0x7922) {
+ err = btusb_mtk_uhw_reg_write(data, MTK_UDMA_INT_STA_BT, 0x000000FF);
+ if (err < 0)
+ return err;
+ }
- btusb_mtk_id_get(data, 0x70010200, &val);
- if (!val)
+ err = btusb_mtk_id_get(data, 0x70010200, &val);
+ if (err < 0 || !val)
bt_dev_err(hdev, "Can't get device id, subsys reset fail.");
return err;
@@ -3205,7 +3257,9 @@ static int btusb_mtk_setup(struct hci_dev *hdev)
set_bit(BTUSB_FIRMWARE_LOADED, &data->flags);
/* It's Device EndPoint Reset Option Register */
- btusb_mtk_uhw_reg_write(data, MTK_EP_RST_OPT, MTK_EP_RST_IN_OUT_OPT);
+ err = btusb_mtk_uhw_reg_write(data, MTK_EP_RST_OPT, MTK_EP_RST_IN_OUT_OPT);
+ if (err < 0)
+ return err;
/* Enable Bluetooth protocol */
param = 1;
--
2.25.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* RE: [1/2] Bluetooth: btusb: mediatek: remove the unnecessary goto tag
2024-06-04 22:46 [PATCH 1/2] Bluetooth: btusb: mediatek: remove the unnecessary goto tag sean.wang
2024-06-04 22:47 ` [PATCH 2/2] Bluetooth: btusb: mediatek: return error code for failed register access sean.wang
@ 2024-06-04 23:34 ` bluez.test.bot
1 sibling, 0 replies; 3+ messages in thread
From: bluez.test.bot @ 2024-06-04 23:34 UTC (permalink / raw)
To: linux-bluetooth, sean.wang
[-- Attachment #1: Type: text/plain, Size: 2747 bytes --]
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=858840
---Test result---
Test Summary:
CheckPatch PASS 1.00 seconds
GitLint PASS 0.40 seconds
SubjectPrefix PASS 0.12 seconds
BuildKernel PASS 29.32 seconds
CheckAllWarning PASS 32.32 seconds
CheckSparse PASS 37.66 seconds
CheckSmatch FAIL 35.68 seconds
BuildKernel32 PASS 28.33 seconds
TestRunnerSetup PASS 516.17 seconds
TestRunner_l2cap-tester PASS 18.50 seconds
TestRunner_iso-tester FAIL 30.18 seconds
TestRunner_bnep-tester PASS 4.73 seconds
TestRunner_mgmt-tester PASS 111.34 seconds
TestRunner_rfcomm-tester PASS 7.19 seconds
TestRunner_sco-tester PASS 16.44 seconds
TestRunner_ioctl-tester PASS 7.67 seconds
TestRunner_mesh-tester PASS 5.77 seconds
TestRunner_smp-tester PASS 6.75 seconds
TestRunner_userchan-tester PASS 4.90 seconds
IncrementalBuild PASS 32.33 seconds
Details
##############################
Test: CheckSmatch - FAIL
Desc: Run smatch tool with source
Output:
Segmentation fault (core dumped)
make[4]: *** [scripts/Makefile.build:244: net/bluetooth/hci_core.o] Error 139
make[4]: *** Deleting file 'net/bluetooth/hci_core.o'
make[3]: *** [scripts/Makefile.build:485: net/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:485: net] Error 2
make[2]: *** Waiting for unfinished jobs....
Segmentation fault (core dumped)
make[4]: *** [scripts/Makefile.build:244: drivers/bluetooth/bcm203x.o] Error 139
make[4]: *** Deleting file 'drivers/bluetooth/bcm203x.o'
make[4]: *** Waiting for unfinished jobs....
Segmentation fault (core dumped)
make[4]: *** [scripts/Makefile.build:244: drivers/bluetooth/bpa10x.o] Error 139
make[4]: *** Deleting file 'drivers/bluetooth/bpa10x.o'
make[3]: *** [scripts/Makefile.build:485: drivers/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:485: drivers] Error 2
make[1]: *** [/github/workspace/src/src/Makefile:1919: .] Error 2
make: *** [Makefile:240: __sub-make] Error 2
##############################
Test: TestRunner_iso-tester - FAIL
Desc: Run iso-tester with test-runner
Output:
Total: 122, Passed: 117 (95.9%), Failed: 1, Not Run: 4
Failed Test Cases
ISO Connect2 Suspend - Success Failed 4.237 seconds
---
Regards,
Linux Bluetooth
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-06-04 23:34 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-04 22:46 [PATCH 1/2] Bluetooth: btusb: mediatek: remove the unnecessary goto tag sean.wang
2024-06-04 22:47 ` [PATCH 2/2] Bluetooth: btusb: mediatek: return error code for failed register access sean.wang
2024-06-04 23:34 ` [1/2] Bluetooth: btusb: mediatek: remove the unnecessary goto tag bluez.test.bot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.