[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210513101806.5666-1-hildawu@realtek.com>
Date: Thu, 13 May 2021 18:18:06 +0800
From: <hildawu@...ltek.com>
To: <marcel@...tmann.org>
CC: <johan.hedberg@...il.com>, <luiz.dentz@...il.com>,
<linux-bluetooth@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<max.chou@...ltek.com>, <alex_lu@...lsil.com.cn>,
<kidman@...ltek.com>
Subject: [PATCH] Bluetooth: btusb: Add support USB ALT 3 for WBS
From: hildawu <hildawu@...ltek.com>
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 <hildawu@...ltek.com>
---
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
Powered by blists - more mailing lists