From: Javier Tia Date: Mon, 30 Mar 2026 20:39:24 +0000 (-0600) Subject: Bluetooth: btmtk: fix ISO interface setup for single alt setting X-Git-Url: http://git.ipfire.org/index.cgi?a=commitdiff_plain;h=e4f6bc7f8222a9e40283d3fc6c4c4c656d79a48e;p=thirdparty%2Flinux.git 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 Reported-by: Ryan Gilbert Tested-by: Ryan Gilbert Signed-off-by: Luiz Augusto von Dentz --- diff --git a/drivers/bluetooth/btmtk.c b/drivers/bluetooth/btmtk.c index cef7a6405e1d0..099188bf772ef 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;