Message ID | 1654772974-10357-1-git-send-email-quic_zijuhu@quicinc.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | [v2] Bluetooth: Fix CVSD SCO setup failure | expand |
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 <quic_zijuhu@quicinc.com> > --- > 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?
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 <quic_zijuhu@quicinc.com> >> --- >> 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.
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[] = {