Message ID | 20250219215352.15605-1-nishiyama.pedro@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | bluetooth: btusb: Fix regression in the initialization of fake Bluetooth controllers | expand |
Context | Check | Description |
---|---|---|
tedd_an/pre-ci_am | success | Success |
tedd_an/SubjectPrefix | fail | "Bluetooth: " prefix is not specified in the subject |
tedd_an/BuildKernel | success | BuildKernel PASS |
tedd_an/CheckAllWarning | success | CheckAllWarning PASS |
tedd_an/CheckSparse | success | CheckSparse PASS |
tedd_an/BuildKernel32 | success | BuildKernel32 PASS |
tedd_an/TestRunnerSetup | success | TestRunnerSetup PASS |
tedd_an/TestRunner_l2cap-tester | success | TestRunner PASS |
tedd_an/TestRunner_iso-tester | success | TestRunner PASS |
tedd_an/TestRunner_bnep-tester | success | TestRunner PASS |
tedd_an/TestRunner_mgmt-tester | fail | TestRunner_mgmt-tester: Total: 490, Passed: 485 (99.0%), Failed: 1, Not Run: 4 |
tedd_an/TestRunner_rfcomm-tester | success | TestRunner PASS |
tedd_an/TestRunner_sco-tester | success | TestRunner PASS |
tedd_an/TestRunner_ioctl-tester | success | TestRunner PASS |
tedd_an/TestRunner_mesh-tester | success | TestRunner PASS |
tedd_an/TestRunner_smp-tester | success | TestRunner PASS |
tedd_an/TestRunner_userchan-tester | success | TestRunner PASS |
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=935756 ---Test result--- Test Summary: CheckPatch PENDING 0.33 seconds GitLint PENDING 0.20 seconds SubjectPrefix FAIL 4.19 seconds BuildKernel PASS 24.41 seconds CheckAllWarning PASS 26.56 seconds CheckSparse PASS 30.47 seconds BuildKernel32 PASS 23.82 seconds TestRunnerSetup PASS 427.42 seconds TestRunner_l2cap-tester PASS 24.18 seconds TestRunner_iso-tester PASS 34.97 seconds TestRunner_bnep-tester PASS 4.74 seconds TestRunner_mgmt-tester FAIL 119.57 seconds TestRunner_rfcomm-tester PASS 7.78 seconds TestRunner_sco-tester PASS 9.62 seconds TestRunner_ioctl-tester PASS 8.36 seconds TestRunner_mesh-tester PASS 5.82 seconds TestRunner_smp-tester PASS 7.23 seconds TestRunner_userchan-tester PASS 5.04 seconds IncrementalBuild PENDING 0.68 seconds Details ############################## Test: CheckPatch - PENDING Desc: Run checkpatch.pl script Output: ############################## Test: GitLint - PENDING Desc: Run gitlint Output: ############################## Test: SubjectPrefix - FAIL Desc: Check subject contains "Bluetooth" prefix Output: "Bluetooth: " prefix is not specified in the subject ############################## Test: TestRunner_mgmt-tester - FAIL Desc: Run mgmt-tester with test-runner Output: Total: 490, Passed: 485 (99.0%), Failed: 1, Not Run: 4 Failed Test Cases LL Privacy - Set Flags 3 (2 Devices to RL) Failed 0.167 seconds ############################## Test: IncrementalBuild - PENDING Desc: Incremental build with the patches in the series Output: --- Regards, Linux Bluetooth
Hi Pedro, On Wed, Feb 19, 2025 at 4:54 PM Pedro Nishiyama <nishiyama.pedro@gmail.com> wrote: > > Set HCI_OP_READ_VOICE_SETTING and HCI_OP_READ_PAGE_SCAN_TYPE as broken. > These features are falsely reported as supported. > > https://bugzilla.kernel.org/show_bug.cgi?id=60824 If it is a regression it needs the Fixes tag of the change when the regression was introduced in order to determine if it should be backported, etc. > Signed-off-by: Pedro Nishiyama <nishiyama.pedro@gmail.com> > --- > drivers/bluetooth/btusb.c | 2 ++ > include/net/bluetooth/hci.h | 16 ++++++++++++++++ > net/bluetooth/hci_sync.c | 6 ++++++ > 3 files changed, 24 insertions(+) > > diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c > index 90966dfbd278..43403b0cb5cc 100644 > --- a/drivers/bluetooth/btusb.c > +++ b/drivers/bluetooth/btusb.c > @@ -2435,6 +2435,8 @@ static int btusb_setup_csr(struct hci_dev *hdev) > set_bit(HCI_QUIRK_BROKEN_ERR_DATA_REPORTING, &hdev->quirks); > set_bit(HCI_QUIRK_BROKEN_FILTER_CLEAR_ALL, &hdev->quirks); > set_bit(HCI_QUIRK_NO_SUSPEND_NOTIFIER, &hdev->quirks); > + set_bit(HCI_QUIRK_BROKEN_READ_VOICE_SETTING, &hdev->quirks); > + set_bit(HCI_QUIRK_BROKEN_READ_PAGE_SCAN_TYPE, &hdev->quirks); Can you please split the driver specific changes from the quirks? > /* Clear the reset quirk since this is not an actual > * early Bluetooth 1.1 device from CSR. > diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h > index 0d51970d809f..b99818df8ee7 100644 > --- a/include/net/bluetooth/hci.h > +++ b/include/net/bluetooth/hci.h > @@ -354,6 +354,22 @@ enum { > * during the hdev->setup vendor callback. > */ > HCI_QUIRK_FIXUP_LE_EXT_ADV_REPORT_PHY, > + > + /* When this quirk is set, the HCI_OP_READ_VOICE_SETTING command is > + * skipped. This is required for a subset of the CSR controller clones > + * which erroneously claim to support it. > + * > + * This quirk must be set before hci_register_dev is called. > + */ > + HCI_QUIRK_BROKEN_READ_VOICE_SETTING, > + > + /* When this quirk is set, the HCI_OP_READ_PAGE_SCAN_TYPE command is > + * skipped. This is required for a subset of the CSR controller clones > + * which erroneously claim to support it. > + * > + * This quirk must be set before hci_register_dev is called. > + */ > + HCI_QUIRK_BROKEN_READ_PAGE_SCAN_TYPE, > }; > > /* HCI device flags */ > diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c > index dd770ef5ec36..e76012956020 100644 > --- a/net/bluetooth/hci_sync.c > +++ b/net/bluetooth/hci_sync.c > @@ -3696,6 +3696,9 @@ static int hci_read_local_name_sync(struct hci_dev *hdev) > /* Read Voice Setting */ > static int hci_read_voice_setting_sync(struct hci_dev *hdev) > { > + if (test_bit(HCI_QUIRK_BROKEN_READ_VOICE_SETTING, &hdev->quirks)) > + return 0; > + > return __hci_cmd_sync_status(hdev, HCI_OP_READ_VOICE_SETTING, > 0, NULL, HCI_CMD_TIMEOUT); > } > @@ -4132,6 +4135,9 @@ static int hci_read_page_scan_type_sync(struct hci_dev *hdev) > if (!(hdev->commands[13] & 0x01)) > return 0; > > + if (test_bit(HCI_QUIRK_BROKEN_READ_PAGE_SCAN_TYPE, &hdev->quirks)) > + return 0; > + > return __hci_cmd_sync_status(hdev, HCI_OP_READ_PAGE_SCAN_TYPE, > 0, NULL, HCI_CMD_TIMEOUT); > } > -- > 2.48.1 >
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index 90966dfbd278..43403b0cb5cc 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -2435,6 +2435,8 @@ static int btusb_setup_csr(struct hci_dev *hdev) set_bit(HCI_QUIRK_BROKEN_ERR_DATA_REPORTING, &hdev->quirks); set_bit(HCI_QUIRK_BROKEN_FILTER_CLEAR_ALL, &hdev->quirks); set_bit(HCI_QUIRK_NO_SUSPEND_NOTIFIER, &hdev->quirks); + set_bit(HCI_QUIRK_BROKEN_READ_VOICE_SETTING, &hdev->quirks); + set_bit(HCI_QUIRK_BROKEN_READ_PAGE_SCAN_TYPE, &hdev->quirks); /* Clear the reset quirk since this is not an actual * early Bluetooth 1.1 device from CSR. diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h index 0d51970d809f..b99818df8ee7 100644 --- a/include/net/bluetooth/hci.h +++ b/include/net/bluetooth/hci.h @@ -354,6 +354,22 @@ enum { * during the hdev->setup vendor callback. */ HCI_QUIRK_FIXUP_LE_EXT_ADV_REPORT_PHY, + + /* When this quirk is set, the HCI_OP_READ_VOICE_SETTING command is + * skipped. This is required for a subset of the CSR controller clones + * which erroneously claim to support it. + * + * This quirk must be set before hci_register_dev is called. + */ + HCI_QUIRK_BROKEN_READ_VOICE_SETTING, + + /* When this quirk is set, the HCI_OP_READ_PAGE_SCAN_TYPE command is + * skipped. This is required for a subset of the CSR controller clones + * which erroneously claim to support it. + * + * This quirk must be set before hci_register_dev is called. + */ + HCI_QUIRK_BROKEN_READ_PAGE_SCAN_TYPE, }; /* HCI device flags */ diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c index dd770ef5ec36..e76012956020 100644 --- a/net/bluetooth/hci_sync.c +++ b/net/bluetooth/hci_sync.c @@ -3696,6 +3696,9 @@ static int hci_read_local_name_sync(struct hci_dev *hdev) /* Read Voice Setting */ static int hci_read_voice_setting_sync(struct hci_dev *hdev) { + if (test_bit(HCI_QUIRK_BROKEN_READ_VOICE_SETTING, &hdev->quirks)) + return 0; + return __hci_cmd_sync_status(hdev, HCI_OP_READ_VOICE_SETTING, 0, NULL, HCI_CMD_TIMEOUT); } @@ -4132,6 +4135,9 @@ static int hci_read_page_scan_type_sync(struct hci_dev *hdev) if (!(hdev->commands[13] & 0x01)) return 0; + if (test_bit(HCI_QUIRK_BROKEN_READ_PAGE_SCAN_TYPE, &hdev->quirks)) + return 0; + return __hci_cmd_sync_status(hdev, HCI_OP_READ_PAGE_SCAN_TYPE, 0, NULL, HCI_CMD_TIMEOUT); }
Set HCI_OP_READ_VOICE_SETTING and HCI_OP_READ_PAGE_SCAN_TYPE as broken. These features are falsely reported as supported. https://bugzilla.kernel.org/show_bug.cgi?id=60824 Signed-off-by: Pedro Nishiyama <nishiyama.pedro@gmail.com> --- drivers/bluetooth/btusb.c | 2 ++ include/net/bluetooth/hci.h | 16 ++++++++++++++++ net/bluetooth/hci_sync.c | 6 ++++++ 3 files changed, 24 insertions(+)