Bluetooth: Allow usb to auto-suspend when SCO use non-HCI transport

Currently usb tranport is not allowed to suspend when SCO over
HCI tranport is active.

This patch shall enable the usb tranport to suspend when SCO
link use non-HCI transport.

Signed-off-by: Chethan T N <chethan.tumkur.narayan@intel.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This commit is contained in:
Chethan T N 2021-09-07 15:42:48 +05:30 коммит произвёл Luiz Augusto von Dentz
Родитель ad93315183
Коммит f4f9fa0c07
1 изменённых файлов: 11 добавлений и 4 удалений

Просмотреть файл

@ -4444,6 +4444,7 @@ static void hci_sync_conn_complete_evt(struct hci_dev *hdev,
{ {
struct hci_ev_sync_conn_complete *ev = (void *) skb->data; struct hci_ev_sync_conn_complete *ev = (void *) skb->data;
struct hci_conn *conn; struct hci_conn *conn;
unsigned int notify_evt;
BT_DBG("%s status 0x%2.2x", hdev->name, ev->status); BT_DBG("%s status 0x%2.2x", hdev->name, ev->status);
@ -4518,15 +4519,21 @@ static void hci_sync_conn_complete_evt(struct hci_dev *hdev,
switch (ev->air_mode) { switch (ev->air_mode) {
case 0x02: case 0x02:
if (hdev->notify) notify_evt = HCI_NOTIFY_ENABLE_SCO_CVSD;
hdev->notify(hdev, HCI_NOTIFY_ENABLE_SCO_CVSD);
break; break;
case 0x03: case 0x03:
if (hdev->notify) notify_evt = HCI_NOTIFY_ENABLE_SCO_TRANSP;
hdev->notify(hdev, HCI_NOTIFY_ENABLE_SCO_TRANSP);
break; break;
} }
/* Notify only in case of SCO over HCI transport data path which
* is zero and non-zero value shall be non-HCI transport data path
*/
if (conn->codec.data_path == 0) {
if (hdev->notify)
hdev->notify(hdev, notify_evt);
}
hci_connect_cfm(conn, ev->status); hci_connect_cfm(conn, ev->status);
if (ev->status) if (ev->status)
hci_conn_del(conn); hci_conn_del(conn);