2021-10-05 15:16:26

by Kiran K

[permalink] [raw]
Subject: [PATCH v1] Bluetooth: Read codec capabilities only if supported

Read codec capabilities only if HCI_READ_LOCAL_CODEC_CAPABILITIES
command is supported. If capablities are not supported, then
cache codec data without caps.

Signed-off-by: Kiran K <[email protected]>
---
net/bluetooth/hci_codec.c | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/net/bluetooth/hci_codec.c b/net/bluetooth/hci_codec.c
index f0421d0edaa3..38201532f58e 100644
--- a/net/bluetooth/hci_codec.c
+++ b/net/bluetooth/hci_codec.c
@@ -25,9 +25,11 @@ static int hci_codec_list_add(struct list_head *list,
}
entry->transport = sent->transport;
entry->len = len;
- entry->num_caps = rp->num_caps;
- if (rp->num_caps)
+ entry->num_caps = 0;
+ if (rp) {
+ entry->num_caps = rp->num_caps;
memcpy(entry->caps, caps, len);
+ }
list_add(&entry->list, list);

return 0;
@@ -58,6 +60,18 @@ static void hci_read_codec_capabilities(struct hci_dev *hdev, __u8 transport,
__u32 len;

cmd->transport = i;
+
+ /* If Read_Codec_Capabilities command is not supported
+ * then just add codec to the list without caps
+ */
+ if (!(hdev->commands[45] & 0x08)) {
+ hci_dev_lock(hdev);
+ hci_codec_list_add(&hdev->local_codecs, cmd,
+ NULL, NULL, 0);
+ hci_dev_unlock(hdev);
+ continue;
+ }
+
skb = __hci_cmd_sync(hdev, HCI_OP_READ_LOCAL_CODEC_CAPS,
sizeof(*cmd), cmd,
HCI_CMD_TIMEOUT);
--
2.17.1


2021-10-05 16:14:27

by bluez.test.bot

[permalink] [raw]
Subject: RE: [v1] Bluetooth: Read codec capabilities only if supported

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=557813

---Test result---

Test Summary:
CheckPatch PASS 1.63 seconds
GitLint PASS 0.93 seconds
BuildKernel PASS 646.49 seconds
TestRunner: Setup PASS 479.86 seconds
TestRunner: l2cap-tester PASS 10.63 seconds
TestRunner: bnep-tester PASS 5.71 seconds
TestRunner: mgmt-tester FAIL 93.67 seconds
TestRunner: rfcomm-tester PASS 7.01 seconds
TestRunner: sco-tester PASS 7.24 seconds
TestRunner: smp-tester PASS 7.07 seconds
TestRunner: userchan-tester PASS 5.92 seconds

Details
##############################
Test: TestRunner: mgmt-tester - FAIL - 93.67 seconds
Run test-runner with mgmt-tester
Total: 462, Passed: 459 (99.4%), Failed: 3, Not Run: 0

Failed Test Cases
Suspend/Resume - Success 1 (Suspend) Failed 0.136 seconds
Suspend/Resume - Success 3 (Device in WL) Failed 0.132 seconds
Suspend/Resume - Success 4 (Advertising) Failed 0.144 seconds



---
Regards,
Linux Bluetooth


Attachments:
l2cap-tester.log (43.32 kB)
bnep-tester.log (3.48 kB)
mgmt-tester.log (622.69 kB)
rfcomm-tester.log (11.41 kB)
sco-tester.log (13.60 kB)
smp-tester.log (11.55 kB)
userchan-tester.log (6.22 kB)
Download all attachments

2021-10-06 08:53:55

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH v1] Bluetooth: Read codec capabilities only if supported

Hi Kiran,

> Read codec capabilities only if HCI_READ_LOCAL_CODEC_CAPABILITIES
> command is supported. If capablities are not supported, then
> cache codec data without caps.
>
> Signed-off-by: Kiran K <[email protected]>
> ---
> net/bluetooth/hci_codec.c | 18 ++++++++++++++++--
> 1 file changed, 16 insertions(+), 2 deletions(-)

patch has been applied to bluetooth-next tree.

Regards

Marcel