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

Commit 5afff038 authored by Marcel Holtmann's avatar Marcel Holtmann Committed by Johan Hedberg
Browse files

Bluetooth: Remove driver init queue from core



The driver init queue is no longer needed. This can be all handled
inside the drivers now. So remove it.

Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
parent 93600997
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -269,8 +269,6 @@ struct hci_dev {

	struct hci_dev_stats	stat;

	struct sk_buff_head	driver_init;

	atomic_t		promisc;

	struct dentry		*debugfs;
+0 −23
Original line number Diff line number Diff line
@@ -316,29 +316,9 @@ static void amp_init(struct hci_request *req)
static void hci_init1_req(struct hci_request *req, unsigned long opt)
{
	struct hci_dev *hdev = req->hdev;
	struct hci_request init_req;
	struct sk_buff *skb;

	BT_DBG("%s %ld", hdev->name, opt);

	/* Driver initialization */

	hci_req_init(&init_req, hdev);

	/* Special commands */
	while ((skb = skb_dequeue(&hdev->driver_init))) {
		bt_cb(skb)->pkt_type = HCI_COMMAND_PKT;
		skb->dev = (void *) hdev;

		if (skb_queue_empty(&init_req.cmd_q))
			bt_cb(skb)->req.start = true;

		skb_queue_tail(&init_req.cmd_q, skb);
	}
	skb_queue_purge(&hdev->driver_init);

	hci_req_run(&init_req, NULL);

	/* Reset */
	if (!test_bit(HCI_QUIRK_RESET_ON_CLOSE, &hdev->quirks))
		hci_reset_req(req, 0);
@@ -2144,7 +2124,6 @@ struct hci_dev *hci_alloc_dev(void)
	INIT_DELAYED_WORK(&hdev->discov_off, hci_discov_off);
	INIT_DELAYED_WORK(&hdev->le_scan_disable, le_scan_disable_work);

	skb_queue_head_init(&hdev->driver_init);
	skb_queue_head_init(&hdev->rx_q);
	skb_queue_head_init(&hdev->cmd_q);
	skb_queue_head_init(&hdev->raw_q);
@@ -2163,8 +2142,6 @@ EXPORT_SYMBOL(hci_alloc_dev);
/* Free HCI device */
void hci_free_dev(struct hci_dev *hdev)
{
	skb_queue_purge(&hdev->driver_init);

	/* will free via device release */
	put_device(&hdev->dev);
}