Commit defc33b5 authored by Chris Lu's avatar Chris Lu Committed by Luiz Augusto von Dentz
Browse files

Bluetooth: btusb: mediatek: change the conditions for ISO interface



Change conditions for Bluetooth driver claiming and releasing usb
ISO interface for MediaTek ISO data transmission.

Signed-off-by: default avatarChris Lu <chris.lu@mediatek.com>
Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
parent 489304e6
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -2623,7 +2623,7 @@ static void btusb_mtk_release_iso_intf(struct hci_dev *hdev)
{
	struct btmtk_data *btmtk_data = hci_get_priv(hdev);

	if (btmtk_data->isopkt_intf) {
	if (test_bit(BTMTK_ISOPKT_OVER_INTR, &btmtk_data->flags)) {
		usb_kill_anchored_urbs(&btmtk_data->isopkt_anchor);
		clear_bit(BTMTK_ISOPKT_RUNNING, &btmtk_data->flags);

@@ -2663,7 +2663,7 @@ static int btusb_mtk_reset(struct hci_dev *hdev, void *rst_data)
	if (err < 0)
		return err;

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

	btusb_stop_traffic(data);
@@ -2709,21 +2709,21 @@ static int btusb_mtk_setup(struct hci_dev *hdev)
	btmtk_data->reset_sync = btusb_mtk_reset;

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

	return btmtk_usb_setup(hdev);
}

static int btusb_mtk_shutdown(struct hci_dev *hdev)
{
	struct btmtk_data *btmtk_data = hci_get_priv(hdev);
	int ret;

	ret = btmtk_usb_shutdown(hdev);

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

	return ret;