Bluetooth: Introduce HCI_DEV_OPEN and HCI_DEV_CLOSE events

When opening the HCI transport via hdev->open send HCI_DEV_OPEN event
and when closing the HCI transport via hdev->close send HCI_DEV_CLOSE.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This commit is contained in:
Marcel Holtmann 2015-10-04 23:34:00 +02:00 committed by Johan Hedberg
parent ed1b28a48b
commit 4a3f95b7b6
2 changed files with 8 additions and 0 deletions
include/net/bluetooth
net/bluetooth

View File

@ -44,6 +44,8 @@
#define HCI_DEV_DOWN 4
#define HCI_DEV_SUSPEND 5
#define HCI_DEV_RESUME 6
#define HCI_DEV_OPEN 7
#define HCI_DEV_CLOSE 8
/* HCI notify events */
#define HCI_NOTIFY_CONN_ADD 1

View File

@ -1385,6 +1385,8 @@ static int hci_dev_do_open(struct hci_dev *hdev)
goto done;
}
hci_notify(hdev, HCI_DEV_OPEN);
atomic_set(&hdev->cmd_cnt, 1);
set_bit(HCI_INIT, &hdev->flags);
@ -1466,6 +1468,8 @@ static int hci_dev_do_open(struct hci_dev *hdev)
hdev->sent_cmd = NULL;
}
hci_notify(hdev, HCI_DEV_CLOSE);
hdev->close(hdev);
hdev->flags &= BIT(HCI_RAW);
}
@ -1649,6 +1653,8 @@ int hci_dev_do_close(struct hci_dev *hdev)
hdev->sent_cmd = NULL;
}
hci_notify(hdev, HCI_DEV_CLOSE);
/* After this point our queues are empty
* and no tasks are scheduled. */
hdev->close(hdev);