* [PATCH v2 0/3] Bluetooth: Add btrealtek data struct and improve SCO sound quality of RTK chips @ 2022-09-13 10:02 hildawu 2022-09-13 10:02 ` [PATCH v2 1/3] Bluetooth: btrtl: Add btrealtek data struct hildawu ` (2 more replies) 0 siblings, 3 replies; 6+ messages in thread From: hildawu @ 2022-09-13 10:02 UTC (permalink / raw) To: marcel Cc: johan.hedberg, luiz.dentz, linux-bluetooth, linux-kernel, apusaka, yinghsu, max.chou, alex_lu, kidman From: Hilda Wu <hildawu@realtek.com> Add btrealtek data struct and use definition of vendor flags to manage the specific chip. The Bluetooth: btusb: Workaround for spotty SCO quality patch is for filter out duplicate packet for avoiding spotty SCO quality. The Bluetooth: btsub: Ignore zero length of USB packets on ALT 6 patch is for some Realtek chips need to transmit mSBC data continuously without the zero length of USB packets. --- Changes in v2: - Set the proper priv_size to hci_alloc_dev_priv(). - Separate commits for functions. --- Thank you for your review and suggestions. Hilda Wu (3): Bluetooth: btrtl: Add btrealtek data struct Bluetooth: btusb: Workaround for spotty SCO quality Bluetooth: btsub: Ignore zero length of USB packets on ALT 6 for the specific chip model of Realtek devices drivers/bluetooth/btrtl.c | 35 +++++++++++++++++++++++++++++++++++ drivers/bluetooth/btrtl.h | 30 ++++++++++++++++++++++++++++++ drivers/bluetooth/btusb.c | 31 ++++++++++++++++++++++++++++++- 3 files changed, 95 insertions(+), 1 deletion(-) -- 2.17.1 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2 1/3] Bluetooth: btrtl: Add btrealtek data struct 2022-09-13 10:02 [PATCH v2 0/3] Bluetooth: Add btrealtek data struct and improve SCO sound quality of RTK chips hildawu @ 2022-09-13 10:02 ` hildawu 2022-09-13 11:11 ` Bluetooth: Add btrealtek data struct and improve SCO sound quality of RTK chips bluez.test.bot 2022-09-13 10:02 ` [PATCH v2 2/3] Bluetooth: btusb: Workaround for spotty SCO quality hildawu 2022-09-13 10:02 ` [PATCH v2 3/3] Bluetooth: btsub: Ignore zero length of USB packets on ALT 6 for the specific chip model of Realtek devices hildawu 2 siblings, 1 reply; 6+ messages in thread From: hildawu @ 2022-09-13 10:02 UTC (permalink / raw) To: marcel Cc: johan.hedberg, luiz.dentz, linux-bluetooth, linux-kernel, apusaka, yinghsu, max.chou, alex_lu, kidman From: Hilda Wu <hildawu@realtek.com> This patch adds a data structure for btrealtek object, and the definition of vendor behavior flags. It also adds macros to set/test/get the flags. Signed-off-by: Hilda Wu <hildawu@realtek.com> --- Changes in v2: - Set the proper priv_size to hci_alloc_dev_priv(). - Separate commits for functions. --- --- drivers/bluetooth/btrtl.h | 22 ++++++++++++++++++++++ drivers/bluetooth/btusb.c | 3 +++ 2 files changed, 25 insertions(+) diff --git a/drivers/bluetooth/btrtl.h b/drivers/bluetooth/btrtl.h index 2c441bda390a..e2c99684799a 100644 --- a/drivers/bluetooth/btrtl.h +++ b/drivers/bluetooth/btrtl.h @@ -47,6 +47,28 @@ struct rtl_vendor_config { struct rtl_vendor_config_entry entry[]; } __packed; +enum { + REALTEK_WBS_FILTER, + REALTEK_ALT6_CONTINUOUS_TX_CHIP, + + __REALTEK_NUM_FLAGS, +}; + +struct btrealtek_data { + DECLARE_BITMAP(flags, __REALTEK_NUM_FLAGS); +}; + +#define btrealtek_set_flag(hdev, nr) \ + do { \ + struct btrealtek_data *realtek = hci_get_priv((hdev)); \ + set_bit((nr), realtek->flags); \ + } while (0) + +#define btrealtek_get_flag(hdev) \ + (((struct btrealtek_data *)hci_get_priv(hdev))->flags) + +#define btrealtek_test_flag(hdev, nr) test_bit((nr), btrealtek_get_flag(hdev)) + #if IS_ENABLED(CONFIG_BT_RTL) struct btrtl_device_info *btrtl_initialize(struct hci_dev *hdev, diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index c3daba17de7f..4c3aed89ff05 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -3749,6 +3749,9 @@ static int btusb_probe(struct usb_interface *intf, /* Override the rx handlers */ data->recv_event = btusb_recv_event_intel; data->recv_bulk = btusb_recv_bulk_intel; + } else if (id->driver_info & BTUSB_REALTEK) { + /* Allocate extra space for Realtek device */ + priv_size += sizeof(struct btrealtek_data); } data->recv_acl = hci_recv_frame; -- 2.17.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* RE: Bluetooth: Add btrealtek data struct and improve SCO sound quality of RTK chips 2022-09-13 10:02 ` [PATCH v2 1/3] Bluetooth: btrtl: Add btrealtek data struct hildawu @ 2022-09-13 11:11 ` bluez.test.bot 0 siblings, 0 replies; 6+ messages in thread From: bluez.test.bot @ 2022-09-13 11:11 UTC (permalink / raw) To: linux-bluetooth, hildawu [-- Attachment #1: Type: text/plain, Size: 1539 bytes --] 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=676514 ---Test result--- Test Summary: CheckPatch PASS 5.12 seconds GitLint FAIL 2.46 seconds SubjectPrefix PASS 1.94 seconds BuildKernel PASS 34.34 seconds BuildKernel32 PASS 30.14 seconds Incremental Build with patchesPASS 56.77 seconds TestRunner: Setup PASS 501.76 seconds TestRunner: l2cap-tester PASS 16.63 seconds TestRunner: iso-tester PASS 15.66 seconds TestRunner: bnep-tester PASS 6.21 seconds TestRunner: mgmt-tester PASS 100.91 seconds TestRunner: rfcomm-tester PASS 9.78 seconds TestRunner: sco-tester PASS 9.30 seconds TestRunner: smp-tester PASS 9.38 seconds TestRunner: userchan-tester PASS 6.41 seconds Details ############################## Test: GitLint - FAIL - 2.46 seconds Run gitlint with rule in .gitlint [v2,3/3] Bluetooth: btsub: Ignore zero length of USB packets on ALT 6 for the specific chip model of Realtek devices 1: T1 Title exceeds max length (116>80): "[v2,3/3] Bluetooth: btsub: Ignore zero length of USB packets on ALT 6 for the specific chip model of Realtek devices" --- Regards, Linux Bluetooth ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2 2/3] Bluetooth: btusb: Workaround for spotty SCO quality 2022-09-13 10:02 [PATCH v2 0/3] Bluetooth: Add btrealtek data struct and improve SCO sound quality of RTK chips hildawu 2022-09-13 10:02 ` [PATCH v2 1/3] Bluetooth: btrtl: Add btrealtek data struct hildawu @ 2022-09-13 10:02 ` hildawu 2022-09-14 21:37 ` Luiz Augusto von Dentz 2022-09-13 10:02 ` [PATCH v2 3/3] Bluetooth: btsub: Ignore zero length of USB packets on ALT 6 for the specific chip model of Realtek devices hildawu 2 siblings, 1 reply; 6+ messages in thread From: hildawu @ 2022-09-13 10:02 UTC (permalink / raw) To: marcel Cc: johan.hedberg, luiz.dentz, linux-bluetooth, linux-kernel, apusaka, yinghsu, max.chou, alex_lu, kidman From: Hilda Wu <hildawu@realtek.com> When streaming HFP, once a few minutes a brief pause in audio can be heard on some platform with Realtek Bluetooth. When the issue occurs, the system will see the SCO packet for unknown connection handle messages. Note: This issue affects (e)SCO only, does not affect ACLs. Because the duplicate packet causing the problem only occurs in Realtek BT. This is to filter out duplicate packet for avoiding influence. Signed-off-by: Hilda Wu <hildawu@realtek.com> --- Changes in v2: - Seperate commits for functions --- --- drivers/bluetooth/btrtl.c | 28 ++++++++++++++++++++++++++++ drivers/bluetooth/btrtl.h | 8 ++++++++ drivers/bluetooth/btusb.c | 14 ++++++++++++++ 3 files changed, 50 insertions(+) diff --git a/drivers/bluetooth/btrtl.c b/drivers/bluetooth/btrtl.c index fb52313a1d45..15223b3ed94d 100644 --- a/drivers/bluetooth/btrtl.c +++ b/drivers/bluetooth/btrtl.c @@ -781,6 +781,7 @@ void btrtl_set_quirks(struct hci_dev *hdev, struct btrtl_device_info *btrtl_dev) case CHIP_ID_8852C: set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks); set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, &hdev->quirks); + btrealtek_set_flag(hdev, REALTEK_WBS_FILTER); hci_set_aosp_capable(hdev); break; default: @@ -937,6 +938,33 @@ int btrtl_get_uart_settings(struct hci_dev *hdev, } EXPORT_SYMBOL_GPL(btrtl_get_uart_settings); +int btrtl_usb_recv_isoc(u16 pos, u8 *data, u8 *p, int len, + u16 wMaxPacketSize) +{ + u8 *prev; + + if (pos >= HCI_SCO_HDR_SIZE && pos >= wMaxPacketSize && + len == wMaxPacketSize && !(pos % wMaxPacketSize) && + wMaxPacketSize >= 10 && p[0] == data[0] && p[1] == data[1]) { + prev = data + (pos - wMaxPacketSize); + + /* Detect the sco data of usb isoc pkt duplication. */ + if (!memcmp(p + 2, prev + 2, 8)) + return -EILSEQ; + + if (wMaxPacketSize >= 12 && + p[2] == prev[6] && p[3] == prev[7] && + p[4] == prev[4] && p[5] == prev[5] && + p[6] == prev[10] && p[7] == prev[11] && + p[8] == prev[8] && p[9] == prev[9]) { + return -EILSEQ; + } + } + + return 0; +} +EXPORT_SYMBOL_GPL(btrtl_usb_recv_isoc); + MODULE_AUTHOR("Daniel Drake <drake@endlessm.com>"); MODULE_DESCRIPTION("Bluetooth support for Realtek devices ver " VERSION); MODULE_VERSION(VERSION); diff --git a/drivers/bluetooth/btrtl.h b/drivers/bluetooth/btrtl.h index e2c99684799a..79e93a8b229f 100644 --- a/drivers/bluetooth/btrtl.h +++ b/drivers/bluetooth/btrtl.h @@ -84,6 +84,8 @@ int btrtl_get_uart_settings(struct hci_dev *hdev, struct btrtl_device_info *btrtl_dev, unsigned int *controller_baudrate, u32 *device_baudrate, bool *flow_control); +int btrtl_usb_recv_isoc(u16 pos, u8 *data, u8 *buffer, int len, + u16 wMaxPacketSize); #else @@ -127,4 +129,10 @@ static inline int btrtl_get_uart_settings(struct hci_dev *hdev, return -ENOENT; } +static inline int btrtl_usb_recv_isoc(u16 pos, u8 *data, u8 *buffer, int len, + u16 wMaxPacketSize) +{ + return -EOPNOTSUPP; +} + #endif diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index 4c3aed89ff05..8e595e03655a 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -961,6 +961,7 @@ static int btusb_recv_isoc(struct btusb_data *data, void *buffer, int count) struct sk_buff *skb; unsigned long flags; int err = 0; + u16 wMaxPacketSize = le16_to_cpu(data->isoc_rx_ep->wMaxPacketSize); spin_lock_irqsave(&data->rxlock, flags); skb = data->sco_skb; @@ -980,6 +981,19 @@ static int btusb_recv_isoc(struct btusb_data *data, void *buffer, int count) } len = min_t(uint, hci_skb_expect(skb), count); + + /* Gaps in audio could be heard while streaming WBS using USB + * alt settings 3 on some platforms, since this is only used + * with RTK chips so let vendor function detect it. + */ + if (test_bit(BTUSB_USE_ALT3_FOR_WBS, &data->flags) && + btrealtek_test_flag(data->hdev, REALTEK_WBS_FILTER)) { + err = btrtl_usb_recv_isoc(skb->len, skb->data, buffer, + len, wMaxPacketSize); + if (err) + break; + } + skb_put_data(skb, buffer, len); count -= len; -- 2.17.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 2/3] Bluetooth: btusb: Workaround for spotty SCO quality 2022-09-13 10:02 ` [PATCH v2 2/3] Bluetooth: btusb: Workaround for spotty SCO quality hildawu @ 2022-09-14 21:37 ` Luiz Augusto von Dentz 0 siblings, 0 replies; 6+ messages in thread From: Luiz Augusto von Dentz @ 2022-09-14 21:37 UTC (permalink / raw) To: hildawu Cc: marcel, johan.hedberg, linux-bluetooth, linux-kernel, apusaka, yinghsu, max.chou, alex_lu, kidman Hi Hilda, On Tue, Sep 13, 2022 at 3:02 AM <hildawu@realtek.com> wrote: > > From: Hilda Wu <hildawu@realtek.com> > > When streaming HFP, once a few minutes a brief pause in audio can be > heard on some platform with Realtek Bluetooth. When the issue occurs, > the system will see the SCO packet for unknown connection handle messages. > > Note: This issue affects (e)SCO only, does not affect ACLs. > Because the duplicate packet causing the problem only occurs in Realtek BT. > This is to filter out duplicate packet for avoiding influence. > > Signed-off-by: Hilda Wu <hildawu@realtek.com> > --- > Changes in v2: > - Seperate commits for functions > --- > --- > drivers/bluetooth/btrtl.c | 28 ++++++++++++++++++++++++++++ > drivers/bluetooth/btrtl.h | 8 ++++++++ > drivers/bluetooth/btusb.c | 14 ++++++++++++++ > 3 files changed, 50 insertions(+) > > diff --git a/drivers/bluetooth/btrtl.c b/drivers/bluetooth/btrtl.c > index fb52313a1d45..15223b3ed94d 100644 > --- a/drivers/bluetooth/btrtl.c > +++ b/drivers/bluetooth/btrtl.c > @@ -781,6 +781,7 @@ void btrtl_set_quirks(struct hci_dev *hdev, struct btrtl_device_info *btrtl_dev) > case CHIP_ID_8852C: > set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks); > set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, &hdev->quirks); > + btrealtek_set_flag(hdev, REALTEK_WBS_FILTER); > hci_set_aosp_capable(hdev); > break; > default: > @@ -937,6 +938,33 @@ int btrtl_get_uart_settings(struct hci_dev *hdev, > } > EXPORT_SYMBOL_GPL(btrtl_get_uart_settings); > > +int btrtl_usb_recv_isoc(u16 pos, u8 *data, u8 *p, int len, > + u16 wMaxPacketSize) > +{ > + u8 *prev; > + > + if (pos >= HCI_SCO_HDR_SIZE && pos >= wMaxPacketSize && > + len == wMaxPacketSize && !(pos % wMaxPacketSize) && > + wMaxPacketSize >= 10 && p[0] == data[0] && p[1] == data[1]) { > + prev = data + (pos - wMaxPacketSize); Is this attempting to access before the skb-->data in case wMaxPacketSize is bigger than pos? Anyway I'm not really following the reasoning you are comparing the data like that, depending on the codec there could be frames that match exactly but doesn't necessarily means they are duplicated. > + > + /* Detect the sco data of usb isoc pkt duplication. */ > + if (!memcmp(p + 2, prev + 2, 8)) > + return -EILSEQ; > + > + if (wMaxPacketSize >= 12 && > + p[2] == prev[6] && p[3] == prev[7] && > + p[4] == prev[4] && p[5] == prev[5] && > + p[6] == prev[10] && p[7] == prev[11] && > + p[8] == prev[8] && p[9] == prev[9]) { > + return -EILSEQ; > + } > + } > + > + return 0; > +} > +EXPORT_SYMBOL_GPL(btrtl_usb_recv_isoc); > + > MODULE_AUTHOR("Daniel Drake <drake@endlessm.com>"); > MODULE_DESCRIPTION("Bluetooth support for Realtek devices ver " VERSION); > MODULE_VERSION(VERSION); > diff --git a/drivers/bluetooth/btrtl.h b/drivers/bluetooth/btrtl.h > index e2c99684799a..79e93a8b229f 100644 > --- a/drivers/bluetooth/btrtl.h > +++ b/drivers/bluetooth/btrtl.h > @@ -84,6 +84,8 @@ int btrtl_get_uart_settings(struct hci_dev *hdev, > struct btrtl_device_info *btrtl_dev, > unsigned int *controller_baudrate, > u32 *device_baudrate, bool *flow_control); > +int btrtl_usb_recv_isoc(u16 pos, u8 *data, u8 *buffer, int len, > + u16 wMaxPacketSize); > > #else > > @@ -127,4 +129,10 @@ static inline int btrtl_get_uart_settings(struct hci_dev *hdev, > return -ENOENT; > } > > +static inline int btrtl_usb_recv_isoc(u16 pos, u8 *data, u8 *buffer, int len, > + u16 wMaxPacketSize) > +{ > + return -EOPNOTSUPP; > +} > + > #endif > diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c > index 4c3aed89ff05..8e595e03655a 100644 > --- a/drivers/bluetooth/btusb.c > +++ b/drivers/bluetooth/btusb.c > @@ -961,6 +961,7 @@ static int btusb_recv_isoc(struct btusb_data *data, void *buffer, int count) > struct sk_buff *skb; > unsigned long flags; > int err = 0; > + u16 wMaxPacketSize = le16_to_cpu(data->isoc_rx_ep->wMaxPacketSize); > > spin_lock_irqsave(&data->rxlock, flags); > skb = data->sco_skb; > @@ -980,6 +981,19 @@ static int btusb_recv_isoc(struct btusb_data *data, void *buffer, int count) > } > > len = min_t(uint, hci_skb_expect(skb), count); > + > + /* Gaps in audio could be heard while streaming WBS using USB > + * alt settings 3 on some platforms, since this is only used > + * with RTK chips so let vendor function detect it. > + */ > + if (test_bit(BTUSB_USE_ALT3_FOR_WBS, &data->flags) && > + btrealtek_test_flag(data->hdev, REALTEK_WBS_FILTER)) { > + err = btrtl_usb_recv_isoc(skb->len, skb->data, buffer, > + len, wMaxPacketSize); > + if (err) > + break; > + } If we really need to do this then we need a way for vendors to replace btus_recv_isoc with the vendor function. > skb_put_data(skb, buffer, len); > > count -= len; > -- > 2.17.1 > -- Luiz Augusto von Dentz ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2 3/3] Bluetooth: btsub: Ignore zero length of USB packets on ALT 6 for the specific chip model of Realtek devices 2022-09-13 10:02 [PATCH v2 0/3] Bluetooth: Add btrealtek data struct and improve SCO sound quality of RTK chips hildawu 2022-09-13 10:02 ` [PATCH v2 1/3] Bluetooth: btrtl: Add btrealtek data struct hildawu 2022-09-13 10:02 ` [PATCH v2 2/3] Bluetooth: btusb: Workaround for spotty SCO quality hildawu @ 2022-09-13 10:02 ` hildawu 2 siblings, 0 replies; 6+ messages in thread From: hildawu @ 2022-09-13 10:02 UTC (permalink / raw) To: marcel Cc: johan.hedberg, luiz.dentz, linux-bluetooth, linux-kernel, apusaka, yinghsu, max.chou, alex_lu, kidman From: Hilda Wu <hildawu@realtek.com> For USB ALT 6 settings some Realtek chips need to transmit mSBC data continuously without the zero length of USB packets. In this commit, create BTUSB_ALT6_CONTINUOUS_TX to manage the workaround. Therefore, create REALTEK_ALT6_CONTINUOUS_TX_CHIP to manage the specific chip model for the workaround. Signed-off-by: Max Chou <max.chou@realtek.com> Signed-off-by: Hilda Wu <hildawu@realtek.com> --- drivers/bluetooth/btrtl.c | 7 +++++++ drivers/bluetooth/btusb.c | 14 +++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/drivers/bluetooth/btrtl.c b/drivers/bluetooth/btrtl.c index 15223b3ed94d..6d74175cd25f 100644 --- a/drivers/bluetooth/btrtl.c +++ b/drivers/bluetooth/btrtl.c @@ -782,6 +782,13 @@ void btrtl_set_quirks(struct hci_dev *hdev, struct btrtl_device_info *btrtl_dev) set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks); set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, &hdev->quirks); btrealtek_set_flag(hdev, REALTEK_WBS_FILTER); + + /* RTL8852C needs to transmit mSBC data continuously without + * the zero length of USB packets for the ALT 6 supported chips + */ + if (btrtl_dev->project_id == CHIP_ID_8852C) + btrealtek_set_flag(hdev, REALTEK_ALT6_CONTINUOUS_TX_CHIP); + hci_set_aosp_capable(hdev); break; default: diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index 8e595e03655a..50a21061350e 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -626,6 +626,7 @@ static const struct dmi_system_id btusb_needs_reset_resume_table[] = { #define BTUSB_TX_WAIT_VND_EVT 13 #define BTUSB_WAKEUP_AUTOSUSPEND 14 #define BTUSB_USE_ALT3_FOR_WBS 15 +#define BTUSB_ALT6_CONTINUOUS_TX 16 struct btusb_data { struct hci_dev *hdev; @@ -1284,11 +1285,18 @@ static void btusb_isoc_complete(struct urb *urb) static inline void __fill_isoc_descriptor_msbc(struct urb *urb, int len, int mtu, struct btusb_data *data) { - int i, offset = 0; + int i = 0, offset = 0; unsigned int interval; BT_DBG("len %d mtu %d", len, mtu); + /* For mSBC ALT 6 settings some Realtek chips need to transmit the data + * continuously without the zero length of USB packets. + */ + if (test_bit(BTUSB_ALT6_CONTINUOUS_TX, &data->flags)) + if (btrealtek_test_flag(data->hdev, REALTEK_ALT6_CONTINUOUS_TX_CHIP)) + goto ignore_usb_alt6_packet_flow; + /* For mSBC ALT 6 setting the host will send the packet at continuous * flow. As per core spec 5, vol 4, part B, table 2.1. For ALT setting * 6 the HCI PACKET INTERVAL should be 7.5ms for every usb packets. @@ -1308,6 +1316,7 @@ static inline void __fill_isoc_descriptor_msbc(struct urb *urb, int len, urb->iso_frame_desc[i].length = offset; } +ignore_usb_alt6_packet_flow: if (len && i < BTUSB_MAX_ISOC_FRAMES) { urb->iso_frame_desc[i].offset = offset; urb->iso_frame_desc[i].length = len; @@ -3931,6 +3940,9 @@ static int btusb_probe(struct usb_interface *intf, /* Realtek devices need to set remote wakeup on auto-suspend */ set_bit(BTUSB_WAKEUP_AUTOSUSPEND, &data->flags); set_bit(BTUSB_USE_ALT3_FOR_WBS, &data->flags); + + /* Some Realtek devices need to transmit mSBC data continuously */ + set_bit(BTUSB_ALT6_CONTINUOUS_TX, &data->flags); } if (!reset) -- 2.17.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-09-14 21:37 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-09-13 10:02 [PATCH v2 0/3] Bluetooth: Add btrealtek data struct and improve SCO sound quality of RTK chips hildawu 2022-09-13 10:02 ` [PATCH v2 1/3] Bluetooth: btrtl: Add btrealtek data struct hildawu 2022-09-13 11:11 ` Bluetooth: Add btrealtek data struct and improve SCO sound quality of RTK chips bluez.test.bot 2022-09-13 10:02 ` [PATCH v2 2/3] Bluetooth: btusb: Workaround for spotty SCO quality hildawu 2022-09-14 21:37 ` Luiz Augusto von Dentz 2022-09-13 10:02 ` [PATCH v2 3/3] Bluetooth: btsub: Ignore zero length of USB packets on ALT 6 for the specific chip model of Realtek devices hildawu
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.