2022-06-09 11:23:41

by Zijun Hu

[permalink] [raw]
Subject: [PATCH v2] Bluetooth: Fix CVSD SCO setup failure

It will set up SCO after all CVSD eSCO attempts failure, but
still fails to set up SCO finally due to wrong D1/D0 @retrans_effort
within @esco_param_cvsd, so change it from 0x1 to 0xff to avoid
Invalid HCI Command Parameters error.

< HCI Command: Setup Synchrono.. (0x01|0x0028) plen 17 #3427
Handle: 3
Transmit bandwidth: 8000
Receive bandwidth: 8000
Max latency: 65535
Setting: 0x0060
Input Coding: Linear
Input Data Format: 2's complement
Input Sample Size: 16-bit
# of bits padding at MSB: 0
Air Coding Format: CVSD
Retransmission effort: Optimize for power consumption (0x01)
Packet type: 0x03c4
HV3 may be used
2-EV3 may not be used
3-EV3 may not be used
2-EV5 may not be used
3-EV5 may not be used
> HCI Event: Command Status (0x0f) plen 4 #3428
Setup Synchronous Connection (0x01|0x0028) ncmd 1
Status: Success (0x00)
> HCI Event: Synchronous Connect Comp.. (0x2c) plen 17 #3429
Status: Invalid HCI Command Parameters (0x12)
Handle: 0
Address: 14:3F:A6:47:56:15 (OUI 14-3F-A6)
Link type: SCO (0x00)
Transmission interval: 0x00
Retransmission window: 0x00
RX packet length: 0
TX packet length: 0
Air mode: u-law log (0x00)

Signed-off-by: Zijun Hu <[email protected]>
---
net/bluetooth/hci_conn.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
index 7829433d54c1..2627d5ac15d6 100644
--- a/net/bluetooth/hci_conn.c
+++ b/net/bluetooth/hci_conn.c
@@ -45,8 +45,8 @@ static const struct sco_param esco_param_cvsd[] = {
{ EDR_ESCO_MASK & ~ESCO_2EV3, 0x000a, 0x01 }, /* S3 */
{ EDR_ESCO_MASK & ~ESCO_2EV3, 0x0007, 0x01 }, /* S2 */
{ EDR_ESCO_MASK | ESCO_EV3, 0x0007, 0x01 }, /* S1 */
- { EDR_ESCO_MASK | ESCO_HV3, 0xffff, 0x01 }, /* D1 */
- { EDR_ESCO_MASK | ESCO_HV1, 0xffff, 0x01 }, /* D0 */
+ { EDR_ESCO_MASK | ESCO_HV3, 0xffff, 0xff }, /* D1 */
+ { EDR_ESCO_MASK | ESCO_HV1, 0xffff, 0xff }, /* D0 */
};

static const struct sco_param sco_param_cvsd[] = {
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project


2022-06-09 12:21:31

by bluez.test.bot

[permalink] [raw]
Subject: RE: [v2] Bluetooth: Fix CVSD SCO setup failure

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

---Test result---

Test Summary:
CheckPatch PASS 1.79 seconds
GitLint PASS 0.98 seconds
SubjectPrefix PASS 0.86 seconds
BuildKernel PASS 31.08 seconds
BuildKernel32 PASS 27.29 seconds
Incremental Build with patchesPASS 37.60 seconds
TestRunner: Setup PASS 459.51 seconds
TestRunner: l2cap-tester PASS 16.90 seconds
TestRunner: bnep-tester PASS 5.82 seconds
TestRunner: mgmt-tester PASS 97.39 seconds
TestRunner: rfcomm-tester PASS 9.27 seconds
TestRunner: sco-tester PASS 9.08 seconds
TestRunner: smp-tester PASS 9.04 seconds
TestRunner: userchan-tester PASS 6.01 seconds



---
Regards,
Linux Bluetooth

2022-06-24 15:23:23

by Zijun Hu

[permalink] [raw]
Subject: Re: [PATCH v2] Bluetooth: Fix CVSD SCO setup failure

On 6/9/2022 7:09 PM, Zijun Hu wrote:
> It will set up SCO after all CVSD eSCO attempts failure, but
> still fails to set up SCO finally due to wrong D1/D0 @retrans_effort
> within @esco_param_cvsd, so change it from 0x1 to 0xff to avoid
> Invalid HCI Command Parameters error.
>
> < HCI Command: Setup Synchrono.. (0x01|0x0028) plen 17 #3427
> Handle: 3
> Transmit bandwidth: 8000
> Receive bandwidth: 8000
> Max latency: 65535
> Setting: 0x0060
> Input Coding: Linear
> Input Data Format: 2's complement
> Input Sample Size: 16-bit
> # of bits padding at MSB: 0
> Air Coding Format: CVSD
> Retransmission effort: Optimize for power consumption (0x01)
> Packet type: 0x03c4
> HV3 may be used
> 2-EV3 may not be used
> 3-EV3 may not be used
> 2-EV5 may not be used
> 3-EV5 may not be used
>> HCI Event: Command Status (0x0f) plen 4 #3428
> Setup Synchronous Connection (0x01|0x0028) ncmd 1
> Status: Success (0x00)
>> HCI Event: Synchronous Connect Comp.. (0x2c) plen 17 #3429
> Status: Invalid HCI Command Parameters (0x12)
> Handle: 0
> Address: 14:3F:A6:47:56:15 (OUI 14-3F-A6)
> Link type: SCO (0x00)
> Transmission interval: 0x00
> Retransmission window: 0x00
> RX packet length: 0
> TX packet length: 0
> Air mode: u-law log (0x00)
>
> Signed-off-by: Zijun Hu <[email protected]>
> ---
> net/bluetooth/hci_conn.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
> index 7829433d54c1..2627d5ac15d6 100644
> --- a/net/bluetooth/hci_conn.c
> +++ b/net/bluetooth/hci_conn.c
> @@ -45,8 +45,8 @@ static const struct sco_param esco_param_cvsd[] = {
> { EDR_ESCO_MASK & ~ESCO_2EV3, 0x000a, 0x01 }, /* S3 */
> { EDR_ESCO_MASK & ~ESCO_2EV3, 0x0007, 0x01 }, /* S2 */
> { EDR_ESCO_MASK | ESCO_EV3, 0x0007, 0x01 }, /* S1 */
> - { EDR_ESCO_MASK | ESCO_HV3, 0xffff, 0x01 }, /* D1 */
> - { EDR_ESCO_MASK | ESCO_HV1, 0xffff, 0x01 }, /* D0 */
> + { EDR_ESCO_MASK | ESCO_HV3, 0xffff, 0xff }, /* D1 */
> + { EDR_ESCO_MASK | ESCO_HV1, 0xffff, 0xff }, /* D0 */
> };
>
> static const struct sco_param sco_param_cvsd[] = {
could you code review for this change?

2022-07-11 02:05:01

by Zijun Hu

[permalink] [raw]
Subject: Re: [PATCH v2] Bluetooth: Fix CVSD SCO setup failure

On 6/24/2022 11:12 PM, quic_zijuhu wrote:
> On 6/9/2022 7:09 PM, Zijun Hu wrote:
>> It will set up SCO after all CVSD eSCO attempts failure, but
>> still fails to set up SCO finally due to wrong D1/D0 @retrans_effort
>> within @esco_param_cvsd, so change it from 0x1 to 0xff to avoid
>> Invalid HCI Command Parameters error.
>>
>> < HCI Command: Setup Synchrono.. (0x01|0x0028) plen 17 #3427
>> Handle: 3
>> Transmit bandwidth: 8000
>> Receive bandwidth: 8000
>> Max latency: 65535
>> Setting: 0x0060
>> Input Coding: Linear
>> Input Data Format: 2's complement
>> Input Sample Size: 16-bit
>> # of bits padding at MSB: 0
>> Air Coding Format: CVSD
>> Retransmission effort: Optimize for power consumption (0x01)
>> Packet type: 0x03c4
>> HV3 may be used
>> 2-EV3 may not be used
>> 3-EV3 may not be used
>> 2-EV5 may not be used
>> 3-EV5 may not be used
>>> HCI Event: Command Status (0x0f) plen 4 #3428
>> Setup Synchronous Connection (0x01|0x0028) ncmd 1
>> Status: Success (0x00)
>>> HCI Event: Synchronous Connect Comp.. (0x2c) plen 17 #3429
>> Status: Invalid HCI Command Parameters (0x12)
>> Handle: 0
>> Address: 14:3F:A6:47:56:15 (OUI 14-3F-A6)
>> Link type: SCO (0x00)
>> Transmission interval: 0x00
>> Retransmission window: 0x00
>> RX packet length: 0
>> TX packet length: 0
>> Air mode: u-law log (0x00)
>>
>> Signed-off-by: Zijun Hu <[email protected]>
>> ---
>> net/bluetooth/hci_conn.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
>> index 7829433d54c1..2627d5ac15d6 100644
>> --- a/net/bluetooth/hci_conn.c
>> +++ b/net/bluetooth/hci_conn.c
>> @@ -45,8 +45,8 @@ static const struct sco_param esco_param_cvsd[] = {
>> { EDR_ESCO_MASK & ~ESCO_2EV3, 0x000a, 0x01 }, /* S3 */
>> { EDR_ESCO_MASK & ~ESCO_2EV3, 0x0007, 0x01 }, /* S2 */
>> { EDR_ESCO_MASK | ESCO_EV3, 0x0007, 0x01 }, /* S1 */
>> - { EDR_ESCO_MASK | ESCO_HV3, 0xffff, 0x01 }, /* D1 */
>> - { EDR_ESCO_MASK | ESCO_HV1, 0xffff, 0x01 }, /* D0 */
>> + { EDR_ESCO_MASK | ESCO_HV3, 0xffff, 0xff }, /* D1 */
>> + { EDR_ESCO_MASK | ESCO_HV1, 0xffff, 0xff }, /* D0 */
>> };
>>
>> static const struct sco_param sco_param_cvsd[] = {
> could you code review for this change?
i have tested this change and it can fix this issue.