All of lore.kernel.org
 help / color / mirror / Atom feed
* RE: Bluetooth: btusb: add default nvm file
  2025-10-29  2:29 [PATCH v2 1/1] " Shuai Zhang
@ 2025-10-29  3:17 ` bluez.test.bot
  0 siblings, 0 replies; 7+ messages in thread
From: bluez.test.bot @ 2025-10-29  3:17 UTC (permalink / raw)
  To: linux-bluetooth, quic_shuaz

[-- Attachment #1: Type: text/plain, Size: 2509 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=1017003

---Test result---

Test Summary:
CheckPatch                    PENDING   0.37 seconds
GitLint                       PENDING   0.34 seconds
SubjectPrefix                 PASS      0.06 seconds
BuildKernel                   PASS      24.75 seconds
CheckAllWarning               PASS      27.34 seconds
CheckSparse                   PASS      30.51 seconds
BuildKernel32                 PASS      24.44 seconds
TestRunnerSetup               PASS      496.49 seconds
TestRunner_l2cap-tester       PASS      23.79 seconds
TestRunner_iso-tester         FAIL      33.35 seconds
TestRunner_bnep-tester        PASS      6.21 seconds
TestRunner_mgmt-tester        FAIL      111.65 seconds
TestRunner_rfcomm-tester      PASS      9.13 seconds
TestRunner_sco-tester         PASS      14.17 seconds
TestRunner_ioctl-tester       PASS      9.79 seconds
TestRunner_mesh-tester        FAIL      11.50 seconds
TestRunner_smp-tester         PASS      8.38 seconds
TestRunner_userchan-tester    PASS      6.38 seconds
IncrementalBuild              PENDING   0.81 seconds

Details
##############################
Test: CheckPatch - PENDING
Desc: Run checkpatch.pl script
Output:

##############################
Test: GitLint - PENDING
Desc: Run gitlint
Output:

##############################
Test: TestRunner_iso-tester - FAIL
Desc: Run iso-tester with test-runner
Output:
No test result found
##############################
Test: TestRunner_mgmt-tester - FAIL
Desc: Run mgmt-tester with test-runner
Output:
Total: 490, Passed: 484 (98.8%), Failed: 2, Not Run: 4

Failed Test Cases
Read Exp Feature - Success                           Failed       0.097 seconds
LL Privacy - Set Flags 1 (Add to RL)                 Failed       0.141 seconds
##############################
Test: TestRunner_mesh-tester - FAIL
Desc: Run mesh-tester with test-runner
Output:
Total: 10, Passed: 8 (80.0%), Failed: 2, Not Run: 0

Failed Test Cases
Mesh - Send cancel - 1                               Timed out    2.058 seconds
Mesh - Send cancel - 2                               Timed out    1.997 seconds
##############################
Test: IncrementalBuild - PENDING
Desc: Incremental build with the patches in the series
Output:



---
Regards,
Linux Bluetooth


^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: Bluetooth: btusb: add default nvm file
  2025-11-04 11:24 [PATCH v3 " Shuai Zhang
@ 2025-11-04 11:59 ` bluez.test.bot
  0 siblings, 0 replies; 7+ messages in thread
From: bluez.test.bot @ 2025-11-04 11:59 UTC (permalink / raw)
  To: linux-bluetooth, quic_shuaz

[-- Attachment #1: Type: text/plain, Size: 2457 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=1019386

---Test result---

Test Summary:
CheckPatch                    PENDING   0.29 seconds
GitLint                       PENDING   0.35 seconds
SubjectPrefix                 PASS      0.12 seconds
BuildKernel                   PASS      25.53 seconds
CheckAllWarning               PASS      27.66 seconds
CheckSparse                   PASS      34.26 seconds
BuildKernel32                 PASS      25.46 seconds
TestRunnerSetup               PASS      503.85 seconds
TestRunner_l2cap-tester       PASS      24.32 seconds
TestRunner_iso-tester         PASS      74.39 seconds
TestRunner_bnep-tester        PASS      6.24 seconds
TestRunner_mgmt-tester        FAIL      121.14 seconds
TestRunner_rfcomm-tester      PASS      9.35 seconds
TestRunner_sco-tester         PASS      14.57 seconds
TestRunner_ioctl-tester       PASS      10.24 seconds
TestRunner_mesh-tester        FAIL      11.53 seconds
TestRunner_smp-tester         PASS      8.54 seconds
TestRunner_userchan-tester    PASS      6.64 seconds
IncrementalBuild              PENDING   0.49 seconds

Details
##############################
Test: CheckPatch - PENDING
Desc: Run checkpatch.pl script
Output:

##############################
Test: GitLint - PENDING
Desc: Run gitlint
Output:

##############################
Test: TestRunner_mgmt-tester - FAIL
Desc: Run mgmt-tester with test-runner
Output:
Total: 490, Passed: 483 (98.6%), Failed: 3, Not Run: 4

Failed Test Cases
Read Exp Feature - Success                           Failed       0.100 seconds
LL Privacy - Set Flags 1 (Add to RL)                 Failed       0.158 seconds
LL Privacy - Set Flags 2 (Enable RL)                 Failed       0.146 seconds
##############################
Test: TestRunner_mesh-tester - FAIL
Desc: Run mesh-tester with test-runner
Output:
Total: 10, Passed: 8 (80.0%), Failed: 2, Not Run: 0

Failed Test Cases
Mesh - Send cancel - 1                               Timed out    1.925 seconds
Mesh - Send cancel - 2                               Timed out    1.997 seconds
##############################
Test: IncrementalBuild - PENDING
Desc: Incremental build with the patches in the series
Output:



---
Regards,
Linux Bluetooth


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v4 0/1] Bluetooth: btusb: add default nvm file
@ 2025-11-10  3:41 Shuai Zhang
  2025-11-10  3:41 ` [PATCH v4 1/1] " Shuai Zhang
  0 siblings, 1 reply; 7+ messages in thread
From: Shuai Zhang @ 2025-11-10  3:41 UTC (permalink / raw)
  To: Marcel Holtmann, Luiz Augusto von Dentz
  Cc: linux-bluetooth, linux-kernel, linux-arm-msm, quic_chejiang,
	quic_jiaymao, quic_chezhou, Shuai Zhang

this patch adds support for default NVM file

Changes v4:
- Remove email CC @stable.
- Link to v3
  https://lore.kernel.org/all/20251104112441.2667316-2-quic_shuaz@quicinc.com/

Changes v3:
- Remove rery, modify btusb_setup_qca_load_nvm, and add board_id to enable the use of the default NVM file.
- Link to v2
  https://lore.kernel.org/all/20251029022955.827475-2-quic_shuaz@quicinc.com/

Changes v2:
- Add log for failed default nvm file request.
- Added Cc: stable@vger.kernel.org to comply with stable kernel rules.
- Link to v1:
  https://lore.kernel.org/all/20251028120550.2225434-1-quic_shuaz@quicinc.com/

Shuai Zhang (1):
  Bluetooth: btusb: add default nvm file

 drivers/bluetooth/btusb.c | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v4 1/1] Bluetooth: btusb: add default nvm file
  2025-11-10  3:41 [PATCH v4 0/1] Bluetooth: btusb: add default nvm file Shuai Zhang
@ 2025-11-10  3:41 ` Shuai Zhang
  2025-11-10  4:13   ` bluez.test.bot
  2025-11-10  8:01   ` [PATCH v4 1/1] " Paul Menzel
  0 siblings, 2 replies; 7+ messages in thread
From: Shuai Zhang @ 2025-11-10  3:41 UTC (permalink / raw)
  To: Marcel Holtmann, Luiz Augusto von Dentz
  Cc: linux-bluetooth, linux-kernel, linux-arm-msm, quic_chejiang,
	quic_jiaymao, quic_chezhou, Shuai Zhang

If no NVM file matches the board_id, load the default NVM file.

Signed-off-by: Shuai Zhang <quic_shuaz@quicinc.com>
---
 drivers/bluetooth/btusb.c | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index dcbff7641..020dbb0ab 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -3482,15 +3482,14 @@ static int btusb_setup_qca_load_rampatch(struct hci_dev *hdev,
 }
 
 static void btusb_generate_qca_nvm_name(char *fwname, size_t max_size,
-					const struct qca_version *ver)
+					const struct qca_version *ver,
+					u16 board_id)
 {
 	u32 rom_version = le32_to_cpu(ver->rom_version);
 	const char *variant, *fw_subdir;
 	int len;
-	u16 board_id;
 
 	fw_subdir = qca_get_fw_subdirectory(ver);
-	board_id = qca_extract_board_id(ver);
 
 	switch (le32_to_cpu(ver->ram_version)) {
 	case WCN6855_2_0_RAM_VERSION_GF:
@@ -3517,14 +3516,14 @@ static void btusb_generate_qca_nvm_name(char *fwname, size_t max_size,
 
 static int btusb_setup_qca_load_nvm(struct hci_dev *hdev,
 				    struct qca_version *ver,
-				    const struct qca_device_info *info)
+				    const struct qca_device_info *info,
+				    u16 board_id)
 {
 	const struct firmware *fw;
 	char fwname[80];
 	int err;
 
-	btusb_generate_qca_nvm_name(fwname, sizeof(fwname), ver);
-
+	btusb_generate_qca_nvm_name(fwname, sizeof(fwname), ver, board_id);
 	err = request_firmware(&fw, fwname, &hdev->dev);
 	if (err) {
 		bt_dev_err(hdev, "failed to request NVM file: %s (%d)",
@@ -3606,10 +3605,19 @@ static int btusb_setup_qca(struct hci_dev *hdev)
 	btdata->qca_dump.controller_id = le32_to_cpu(ver.rom_version);
 
 	if (!(status & QCA_SYSCFG_UPDATED)) {
-		err = btusb_setup_qca_load_nvm(hdev, &ver, info);
-		if (err < 0)
-			return err;
+		u16 board_id = qca_extract_board_id(&ver);
 
+		err = btusb_setup_qca_load_nvm(hdev, &ver, info, board_id);
+		if (err < 0) {
+			//if the board id is not 0, try to load the defalut nvm file
+			if (err == -ENOENT && board_id != 0) {
+				err = btusb_setup_qca_load_nvm(hdev, &ver, info, 0);
+				if (err < 0)
+					return err;
+			} else {
+				return err;
+			}
+		}
 		/* WCN6855 2.1 and later will reset to apply firmware downloaded here, so
 		 * wait ~100ms for reset Done then go ahead, otherwise, it maybe
 		 * cause potential enable failure.
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* RE: Bluetooth: btusb: add default nvm file
  2025-11-10  3:41 ` [PATCH v4 1/1] " Shuai Zhang
@ 2025-11-10  4:13   ` bluez.test.bot
  2025-11-10  8:01   ` [PATCH v4 1/1] " Paul Menzel
  1 sibling, 0 replies; 7+ messages in thread
From: bluez.test.bot @ 2025-11-10  4:13 UTC (permalink / raw)
  To: linux-bluetooth, quic_shuaz

[-- Attachment #1: Type: text/plain, Size: 2377 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=1021377

---Test result---

Test Summary:
CheckPatch                    PENDING   0.50 seconds
GitLint                       PENDING   0.29 seconds
SubjectPrefix                 PASS      0.07 seconds
BuildKernel                   PASS      25.49 seconds
CheckAllWarning               PASS      28.38 seconds
CheckSparse                   PASS      31.54 seconds
BuildKernel32                 PASS      25.13 seconds
TestRunnerSetup               PASS      504.57 seconds
TestRunner_l2cap-tester       PASS      23.93 seconds
TestRunner_iso-tester         PASS      83.02 seconds
TestRunner_bnep-tester        PASS      6.12 seconds
TestRunner_mgmt-tester        FAIL      116.13 seconds
TestRunner_rfcomm-tester      PASS      9.28 seconds
TestRunner_sco-tester         PASS      14.38 seconds
TestRunner_ioctl-tester       PASS      10.11 seconds
TestRunner_mesh-tester        FAIL      11.51 seconds
TestRunner_smp-tester         PASS      8.55 seconds
TestRunner_userchan-tester    PASS      6.57 seconds
IncrementalBuild              PENDING   0.83 seconds

Details
##############################
Test: CheckPatch - PENDING
Desc: Run checkpatch.pl script
Output:

##############################
Test: GitLint - PENDING
Desc: Run gitlint
Output:

##############################
Test: TestRunner_mgmt-tester - FAIL
Desc: Run mgmt-tester with test-runner
Output:
Total: 492, Passed: 486 (98.8%), Failed: 2, Not Run: 4

Failed Test Cases
Read Exp Feature - Success                           Failed       0.104 seconds
LL Privacy - Add Device 3 (AL is full)               Failed       0.198 seconds
##############################
Test: TestRunner_mesh-tester - FAIL
Desc: Run mesh-tester with test-runner
Output:
Total: 10, Passed: 8 (80.0%), Failed: 2, Not Run: 0

Failed Test Cases
Mesh - Send cancel - 1                               Timed out    1.972 seconds
Mesh - Send cancel - 2                               Timed out    1.996 seconds
##############################
Test: IncrementalBuild - PENDING
Desc: Incremental build with the patches in the series
Output:



---
Regards,
Linux Bluetooth


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v4 1/1] Bluetooth: btusb: add default nvm file
  2025-11-10  3:41 ` [PATCH v4 1/1] " Shuai Zhang
  2025-11-10  4:13   ` bluez.test.bot
@ 2025-11-10  8:01   ` Paul Menzel
  2025-11-10 13:01     ` Shuai Zhang
  1 sibling, 1 reply; 7+ messages in thread
From: Paul Menzel @ 2025-11-10  8:01 UTC (permalink / raw)
  To: Shuai Zhang
  Cc: Marcel Holtmann, Luiz Augusto von Dentz, linux-bluetooth,
	linux-kernel, linux-arm-msm, quic_chejiang, quic_jiaymao,
	quic_chezhou

Dear Shuai,


Thank you for the patch.

Am 10.11.25 um 04:41 schrieb Shuai Zhang:
> If no NVM file matches the board_id, load the default NVM file.

Maybe also add the comment, that the NVM file is always compatible(?) 
and just might not give the best performance.

Also, please add a comment about passing board_id now. (Is that 
necessary or just an optimization?)

> Signed-off-by: Shuai Zhang <quic_shuaz@quicinc.com>
> ---
>   drivers/bluetooth/btusb.c | 26 +++++++++++++++++---------
>   1 file changed, 17 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
> index dcbff7641..020dbb0ab 100644
> --- a/drivers/bluetooth/btusb.c
> +++ b/drivers/bluetooth/btusb.c
> @@ -3482,15 +3482,14 @@ static int btusb_setup_qca_load_rampatch(struct hci_dev *hdev,
>   }
>   
>   static void btusb_generate_qca_nvm_name(char *fwname, size_t max_size,
> -					const struct qca_version *ver)
> +					const struct qca_version *ver,
> +					u16 board_id)
>   {
>   	u32 rom_version = le32_to_cpu(ver->rom_version);
>   	const char *variant, *fw_subdir;
>   	int len;
> -	u16 board_id;
>   
>   	fw_subdir = qca_get_fw_subdirectory(ver);
> -	board_id = qca_extract_board_id(ver);
>   
>   	switch (le32_to_cpu(ver->ram_version)) {
>   	case WCN6855_2_0_RAM_VERSION_GF:
> @@ -3517,14 +3516,14 @@ static void btusb_generate_qca_nvm_name(char *fwname, size_t max_size,
>   
>   static int btusb_setup_qca_load_nvm(struct hci_dev *hdev,
>   				    struct qca_version *ver,
> -				    const struct qca_device_info *info)
> +				    const struct qca_device_info *info,
> +				    u16 board_id)
>   {
>   	const struct firmware *fw;
>   	char fwname[80];
>   	int err;
>   
> -	btusb_generate_qca_nvm_name(fwname, sizeof(fwname), ver);
> -
> +	btusb_generate_qca_nvm_name(fwname, sizeof(fwname), ver, board_id);
>   	err = request_firmware(&fw, fwname, &hdev->dev);
>   	if (err) {
>   		bt_dev_err(hdev, "failed to request NVM file: %s (%d)",
> @@ -3606,10 +3605,19 @@ static int btusb_setup_qca(struct hci_dev *hdev)
>   	btdata->qca_dump.controller_id = le32_to_cpu(ver.rom_version);
>   
>   	if (!(status & QCA_SYSCFG_UPDATED)) {
> -		err = btusb_setup_qca_load_nvm(hdev, &ver, info);
> -		if (err < 0)
> -			return err;
> +		u16 board_id = qca_extract_board_id(&ver);
>   
> +		err = btusb_setup_qca_load_nvm(hdev, &ver, info, board_id);
> +		if (err < 0) {
> +			//if the board id is not 0, try to load the defalut nvm file

Did `checkpatch.pl` not complain about the missing space, and 
misspelling of *default*?

> +			if (err == -ENOENT && board_id != 0) {
> +				err = btusb_setup_qca_load_nvm(hdev, &ver, info, 0);
> +				if (err < 0)
> +					return err;
> +			} else {
> +				return err;
> +			}
> +		}
>   		/* WCN6855 2.1 and later will reset to apply firmware downloaded here, so
>   		 * wait ~100ms for reset Done then go ahead, otherwise, it maybe
>   		 * cause potential enable failure.

Please try to catch the style errors before submitting patches.


Kind regards,

Paul

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v4 1/1] Bluetooth: btusb: add default nvm file
  2025-11-10  8:01   ` [PATCH v4 1/1] " Paul Menzel
@ 2025-11-10 13:01     ` Shuai Zhang
  0 siblings, 0 replies; 7+ messages in thread
From: Shuai Zhang @ 2025-11-10 13:01 UTC (permalink / raw)
  To: Paul Menzel
  Cc: Marcel Holtmann, Luiz Augusto von Dentz, linux-bluetooth,
	linux-kernel, linux-arm-msm, quic_chejiang, quic_jiaymao,
	quic_chezhou

Dear Paul

Thank you for taking the time to review it.

On 11/10/2025 4:01 PM, Paul Menzel wrote:
> Dear Shuai,
> 
> 
> Thank you for the patch.
> 
> Am 10.11.25 um 04:41 schrieb Shuai Zhang:
>> If no NVM file matches the board_id, load the default NVM file.
> 
> Maybe also add the comment, that the NVM file is always compatible(?) and just might not give the best performance.
> 

The default NVM file may differ in functionality and performance because specific NVM files enable certain 
vendor commands based on chip capabilities. To ensure compatibility, the logic to load a default NVM file is added
when a dedicated NVM file is not yet available, so that basic BT functionality remains operational.

> Also, please add a comment about passing board_id now. (Is that necessary or just an optimization?)
> 

The board_id is used to determine the appropriate NVM file, and it is mandatory.

I will also update the new patch to include these comments.

>> Signed-off-by: Shuai Zhang <quic_shuaz@quicinc.com>
>> ---
>>   drivers/bluetooth/btusb.c | 26 +++++++++++++++++---------
>>   1 file changed, 17 insertions(+), 9 deletions(-)
>>
>> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
>> index dcbff7641..020dbb0ab 100644
>> --- a/drivers/bluetooth/btusb.c
>> +++ b/drivers/bluetooth/btusb.c
>> @@ -3482,15 +3482,14 @@ static int btusb_setup_qca_load_rampatch(struct hci_dev *hdev,
>>   }
>>     static void btusb_generate_qca_nvm_name(char *fwname, size_t max_size,
>> -                    const struct qca_version *ver)
>> +                    const struct qca_version *ver,
>> +                    u16 board_id)
>>   {
>>       u32 rom_version = le32_to_cpu(ver->rom_version);
>>       const char *variant, *fw_subdir;
>>       int len;
>> -    u16 board_id;
>>         fw_subdir = qca_get_fw_subdirectory(ver);
>> -    board_id = qca_extract_board_id(ver);
>>         switch (le32_to_cpu(ver->ram_version)) {
>>       case WCN6855_2_0_RAM_VERSION_GF:
>> @@ -3517,14 +3516,14 @@ static void btusb_generate_qca_nvm_name(char *fwname, size_t max_size,
>>     static int btusb_setup_qca_load_nvm(struct hci_dev *hdev,
>>                       struct qca_version *ver,
>> -                    const struct qca_device_info *info)
>> +                    const struct qca_device_info *info,
>> +                    u16 board_id)
>>   {
>>       const struct firmware *fw;
>>       char fwname[80];
>>       int err;
>>   -    btusb_generate_qca_nvm_name(fwname, sizeof(fwname), ver);
>> -
>> +    btusb_generate_qca_nvm_name(fwname, sizeof(fwname), ver, board_id);
>>       err = request_firmware(&fw, fwname, &hdev->dev);
>>       if (err) {
>>           bt_dev_err(hdev, "failed to request NVM file: %s (%d)",
>> @@ -3606,10 +3605,19 @@ static int btusb_setup_qca(struct hci_dev *hdev)
>>       btdata->qca_dump.controller_id = le32_to_cpu(ver.rom_version);
>>         if (!(status & QCA_SYSCFG_UPDATED)) {
>> -        err = btusb_setup_qca_load_nvm(hdev, &ver, info);
>> -        if (err < 0)
>> -            return err;
>> +        u16 board_id = qca_extract_board_id(&ver);
>>   +        err = btusb_setup_qca_load_nvm(hdev, &ver, info, board_id);
>> +        if (err < 0) {
>> +            //if the board id is not 0, try to load the defalut nvm file
> 
> Did `checkpatch.pl` not complain about the missing space, and misspelling of *default*?

Sorry for the typo. I will update it. > 
>> +            if (err == -ENOENT && board_id != 0) {
>> +                err = btusb_setup_qca_load_nvm(hdev, &ver, info, 0);
>> +                if (err < 0)
>> +                    return err;
>> +            } else {
>> +                return err;
>> +            }
>> +        }
>>           /* WCN6855 2.1 and later will reset to apply firmware downloaded here, so
>>            * wait ~100ms for reset Done then go ahead, otherwise, it maybe
>>            * cause potential enable failure.
> 
> Please try to catch the style errors before submitting patches.
> 

 I will update it. 

> 
> Kind regards,
> 
> Paul

Best,regard
Shuai


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2025-11-10 13:02 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-10  3:41 [PATCH v4 0/1] Bluetooth: btusb: add default nvm file Shuai Zhang
2025-11-10  3:41 ` [PATCH v4 1/1] " Shuai Zhang
2025-11-10  4:13   ` bluez.test.bot
2025-11-10  8:01   ` [PATCH v4 1/1] " Paul Menzel
2025-11-10 13:01     ` Shuai Zhang
  -- strict thread matches above, loose matches on Subject: below --
2025-11-04 11:24 [PATCH v3 " Shuai Zhang
2025-11-04 11:59 ` bluez.test.bot
2025-10-29  2:29 [PATCH v2 1/1] " Shuai Zhang
2025-10-29  3:17 ` 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.