Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b6796134 authored by Kamal Negi's avatar Kamal Negi Committed by Rupesh Tatiya
Browse files

bluetooth: Notify connection deletion only for SCO/ESCO links.



When SCO is active , if we create a connection to another remote
device and delete it, then the alternate setting for the ISOC
channel is getting disabled.

THis is a bug in the BTUSB driver which listens for connection
deletion notification for both ACL and SCO.

Hence, even if ACL disconnection happens with a different remote
device, we set the alternate setting of the currently active
ISOC endpoint to '0' which disables the ISOC endpoint.

As a result there are no further SCO data being sent to the
BT controller.

Change-Id: Ie33752794ee494ffbf29941278a643d8bd103077
CRs-Fixed: 764018
Signed-off-by: default avatarKamal Negi <kamaln@codeaurora.org>
Signed-off-by: default avatarRupesh Tatiya <rtatiya@codeaurora.org>
parent 6e11466b
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
/*
   BlueZ - Bluetooth protocol stack for Linux
   Copyright (c) 2000-2001, 2010, Code Aurora Forum. All rights reserved.
   Copyright (c) 2000-2001, 2010, 2014, Code Aurora Forum. All rights
   reserved.

   Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com>

@@ -502,6 +503,7 @@ struct hci_conn *hci_conn_add(struct hci_dev *hdev, int type, bdaddr_t *dst,
int hci_conn_del(struct hci_conn *conn)
{
	struct hci_dev *hdev = conn->hdev;
	__u8 type;

	BT_DBG("%s hcon %p handle %d", hdev->name, conn, conn->handle);

@@ -537,7 +539,9 @@ int hci_conn_del(struct hci_conn *conn)
		amp_mgr_put(conn->amp_mgr);

	hci_conn_hash_del(hdev, conn);
	if (hdev->notify)

	type = conn->type;
	if (hdev->notify && (type == SCO_LINK || type == ESCO_LINK))
		hdev->notify(hdev, HCI_NOTIFY_CONN_DEL);

	skb_queue_purge(&conn->data_q);