diff options
| author | Javier Tia <floss@jetm.me> | 2026-03-30 14:39:24 -0600 |
|---|---|---|
| committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2026-04-13 09:18:16 -0400 |
| commit | e4f6bc7f8222a9e40283d3fc6c4c4c656d79a48e (patch) | |
| tree | 66ba2d3c5ca6bea91aa0e48e64a720f6bfd26760 /drivers/bluetooth | |
| parent | 28b7c5a6db74e9305c6cbcbe52f259ff1cf85158 (diff) | |
| download | lwn-e4f6bc7f8222a9e40283d3fc6c4c4c656d79a48e.tar.gz lwn-e4f6bc7f8222a9e40283d3fc6c4c4c656d79a48e.zip | |
Bluetooth: btmtk: fix ISO interface setup for single alt setting
Some MT6639 Bluetooth USB interfaces (e.g. IMC Networks 13d3:3588 on
ASUS ROG STRIX X870E-E and ProArt X870E-Creator boards) expose only a
single alternate setting (alt 0) on the ISO interface. The driver
unconditionally requests alt setting 1, which fails with EINVAL on
these devices, causing a ~20 second initialization delay and no LE
audio support.
Check the number of available alternate settings before selecting one.
If only alt 0 exists, use it; otherwise request alt 1 as before.
Closes: https://github.com/jetm/mediatek-mt7927-dkms/pull/39
Signed-off-by: Javier Tia <floss@jetm.me>
Reported-by: Ryan Gilbert <xelnaga@gmail.com>
Tested-by: Ryan Gilbert <xelnaga@gmail.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Diffstat (limited to 'drivers/bluetooth')
| -rw-r--r-- | drivers/bluetooth/btmtk.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/bluetooth/btmtk.c b/drivers/bluetooth/btmtk.c index cef7a6405e1d..099188bf772e 100644 --- a/drivers/bluetooth/btmtk.c +++ b/drivers/bluetooth/btmtk.c @@ -1029,7 +1029,8 @@ static int __set_mtk_intr_interface(struct hci_dev *hdev) if (!btmtk_data->isopkt_intf) return -ENODEV; - err = usb_set_interface(btmtk_data->udev, MTK_ISO_IFNUM, 1); + err = usb_set_interface(btmtk_data->udev, MTK_ISO_IFNUM, + (intf->num_altsetting > 1) ? 1 : 0); if (err < 0) { bt_dev_err(hdev, "setting interface failed (%d)", -err); return err; |
