Skip to content

Commit f5c5661

Browse files
ChrisCH-Lugregkh
authored andcommitted
Bluetooth: btusb: mediatek: change the conditions for ISO interface
commit defc33b upstream. Change conditions for Bluetooth driver claiming and releasing usb ISO interface for MediaTek ISO data transmission. Signed-off-by: Chris Lu <chris.lu@mediatek.com> Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> Cc: Fedor Pchelkin <boddah8794@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent cc569d7 commit f5c5661

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

drivers/bluetooth/btusb.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2648,7 +2648,7 @@ static void btusb_mtk_release_iso_intf(struct hci_dev *hdev)
26482648
{
26492649
struct btmtk_data *btmtk_data = hci_get_priv(hdev);
26502650

2651-
if (btmtk_data->isopkt_intf) {
2651+
if (test_bit(BTMTK_ISOPKT_OVER_INTR, &btmtk_data->flags)) {
26522652
usb_kill_anchored_urbs(&btmtk_data->isopkt_anchor);
26532653
clear_bit(BTMTK_ISOPKT_RUNNING, &btmtk_data->flags);
26542654

@@ -2688,8 +2688,8 @@ static int btusb_mtk_reset(struct hci_dev *hdev, void *rst_data)
26882688
if (err < 0)
26892689
return err;
26902690

2691-
if (test_bit(BTMTK_ISOPKT_RUNNING, &btmtk_data->flags))
2692-
btusb_mtk_release_iso_intf(hdev);
2691+
/* Release MediaTek ISO data interface */
2692+
btusb_mtk_release_iso_intf(hdev);
26932693

26942694
btusb_stop_traffic(data);
26952695
usb_kill_anchored_urbs(&data->tx_anchor);
@@ -2734,22 +2734,22 @@ static int btusb_mtk_setup(struct hci_dev *hdev)
27342734
btmtk_data->reset_sync = btusb_mtk_reset;
27352735

27362736
/* Claim ISO data interface and endpoint */
2737-
btmtk_data->isopkt_intf = usb_ifnum_to_if(data->udev, MTK_ISO_IFNUM);
2738-
if (btmtk_data->isopkt_intf)
2737+
if (!test_bit(BTMTK_ISOPKT_OVER_INTR, &btmtk_data->flags)) {
2738+
btmtk_data->isopkt_intf = usb_ifnum_to_if(data->udev, MTK_ISO_IFNUM);
27392739
btusb_mtk_claim_iso_intf(data);
2740+
}
27402741

27412742
return btmtk_usb_setup(hdev);
27422743
}
27432744

27442745
static int btusb_mtk_shutdown(struct hci_dev *hdev)
27452746
{
2746-
struct btmtk_data *btmtk_data = hci_get_priv(hdev);
27472747
int ret;
27482748

27492749
ret = btmtk_usb_shutdown(hdev);
27502750

2751-
if (test_bit(BTMTK_ISOPKT_RUNNING, &btmtk_data->flags))
2752-
btusb_mtk_release_iso_intf(hdev);
2751+
/* Release MediaTek iso interface after shutdown */
2752+
btusb_mtk_release_iso_intf(hdev);
27532753

27542754
return ret;
27552755
}

0 commit comments

Comments
 (0)