2021-05-13 10:34:42

by Hilda Wu

[permalink] [raw]
Subject: [PATCH] Bluetooth: btusb: Add support USB ALT 3 for WBS

From: hildawu <[email protected]>

Because mSBC frames do not need to be aligned to the SCO packet
boundary. Using USB ALT 3 let HCI payload >= 60 bytes, let mSBC
data satisfy 60 Bytes avoid payload unaligned situation and fixed
some headset no voise issue.

USB Alt 3 supported also need HFP support transparent MTU in 72 Bytes.

Signed-off-by: hildawu <[email protected]>
---
drivers/bluetooth/btusb.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index 6f253378e893..872034e7a232 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -1752,6 +1752,13 @@ static void btusb_work(struct work_struct *work)
* which work with WBS at all.
*/
new_alts = btusb_find_altsetting(data, 6) ? 6 : 1;
+ /* Because mSBC frames do not need to be aligned to the
+ * SCO packet boundary. If support the Alt 3, use the
+ * Alt 3 for HCI payload >= 60 Bytes let air packet
+ * data satisfy 60 bytes.
+ */
+ if ((new_alts == 1) && (btusb_find_altsetting(data, 3)))
+ new_alts = 3;
}

if (btusb_switch_alt_setting(hdev, new_alts) < 0)
--
2.17.1



2021-05-14 02:41:11

by Hilda Wu

[permalink] [raw]
Subject: RE: [PATCH] Bluetooth: btusb: Add support USB ALT 3 for WBS

Hi Marcel,

Thank you!
I will propose a patch v2.

Regards,
Hilda

-----Original Message-----
From: Marcel Holtmann <[email protected]>
Sent: Thursday, May 13, 2021 11:13 PM
To: Hilda Wu <[email protected]>
Cc: Johan Hedberg <[email protected]>; Luiz Augusto von Dentz <[email protected]>; Bluetooth Kernel Mailing List <[email protected]>; open list <[email protected]>; Max Chou <[email protected]>; [email protected]; KidmanLee <[email protected]>
Subject: Re: [PATCH] Bluetooth: btusb: Add support USB ALT 3 for WBS

Hi Hilda,

> Because mSBC frames do not need to be aligned to the SCO packet
> boundary. Using USB ALT 3 let HCI payload >= 60 bytes, let mSBC data
> satisfy 60 Bytes avoid payload unaligned situation and fixed some
> headset no voise issue.
>
> USB Alt 3 supported also need HFP support transparent MTU in 72 Bytes.
>
> Signed-off-by: hildawu <[email protected]>

please use real name here.

> ---
> drivers/bluetooth/btusb.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
> index 6f253378e893..872034e7a232 100644
> --- a/drivers/bluetooth/btusb.c
> +++ b/drivers/bluetooth/btusb.c
> @@ -1752,6 +1752,13 @@ static void btusb_work(struct work_struct *work)
> * which work with WBS at all.
> */
> new_alts = btusb_find_altsetting(data, 6) ? 6 : 1;
> + /* Because mSBC frames do not need to be aligned to the
> + * SCO packet boundary. If support the Alt 3, use the
> + * Alt 3 for HCI payload >= 60 Bytes let air packet
> + * data satisfy 60 bytes.
> + */
> + if ((new_alts == 1) && (btusb_find_altsetting(data, 3)))
> + new_alts = 3;

if (new_alts == 1 && btusb_find_altsetting(..))
..

Regards

Marcel

------Please consider the environment before printing this e-mail.