linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Rajat Jain <rajatja@google.com>
To: Marcel Holtmann <marcel@holtmann.org>,
	Johan Hedberg <johan.hedberg@gmail.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"David S. Miller" <davem@davemloft.net>,
	Dmitry Torokhov <dtor@chromium.org>,
	Rajat Jain <rajatja@google.com>,
	Alex Hung <alex.hung@canonical.com>,
	linux-bluetooth@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-usb@vger.kernel.org, netdev@vger.kernel.org
Cc: rajatxjain@gmail.com, dtor@google.com, raghuram.hegde@intel.com,
	chethan.tumkur.narayan@intel.com, sukumar.ghorai@intel.com
Subject: [PATCH v6 3/4] Bluetooth: Allow driver specific cmd timeout handling
Date: Thu, 24 Jan 2019 15:28:13 -0800	[thread overview]
Message-ID: <20190124232814.252661-3-rajatja@google.com> (raw)
In-Reply-To: <20190124232814.252661-1-rajatja@google.com>

Add a hook to allow the BT driver to do device or command specific
handling in case of timeouts. This is to be used by Intel driver to
reset the device after certain number of timeouts.

Signed-off-by: Rajat Jain <rajatja@google.com>
---
v6: Dropped the "sent command" parameter from cmd_timeout()
v5: Drop the quirk, and rename the hook function to cmd_timeout()
v4: same as v1
v3: same as v1
v2: same as v1

 include/net/bluetooth/hci_core.h | 1 +
 net/bluetooth/hci_core.c         | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index e5ea633ea368..094e61e07030 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -437,6 +437,7 @@ struct hci_dev {
 	int (*post_init)(struct hci_dev *hdev);
 	int (*set_diag)(struct hci_dev *hdev, bool enable);
 	int (*set_bdaddr)(struct hci_dev *hdev, const bdaddr_t *bdaddr);
+	void (*cmd_timeout)(struct hci_dev *hdev);
 };
 
 #define HCI_PHY_HANDLE(handle)	(handle & 0xff)
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 7352fe85674b..75793265ba9e 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -2578,6 +2578,9 @@ static void hci_cmd_timeout(struct work_struct *work)
 		bt_dev_err(hdev, "command tx timeout");
 	}
 
+	if (hdev->cmd_timeout)
+		hdev->cmd_timeout(hdev);
+
 	atomic_set(&hdev->cmd_cnt, 1);
 	queue_work(hdev->workqueue, &hdev->cmd_work);
 }
-- 
2.20.1.321.g9e740568ce-goog


  parent reply	other threads:[~2019-01-24 23:28 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-17  1:07 [PATCH 0/5] Reset Intel BT controller if it gets stuck Rajat Jain
2018-11-17  1:07 ` [PATCH 1/5] usb: split code locating ACPI companion into port and device Rajat Jain
2018-11-17  1:07 ` [PATCH 2/5] usb: assign ACPI companions for embedded USB devices Rajat Jain
2018-11-17  1:07 ` [PATCH 3/5] Bluetooth: Reset Bluetooth chip after multiple command timeouts Rajat Jain
2018-11-17  1:07 ` [PATCH 4/5] Bluetooth: btusb: Collect the common Intel assignments together Rajat Jain
2018-11-17  1:07 ` [PATCH 5/5] Bluetooth: btusb: Use the hw_reset method to allow resetting the BT chip Rajat Jain
2018-11-19 23:04 ` [PATCH v2 1/5] usb: split code locating ACPI companion into port and device Rajat Jain
2018-11-19 23:04   ` [PATCH v2 2/5] usb: assign ACPI companions for embedded USB devices Rajat Jain
2018-11-19 23:04   ` [PATCH v2 3/5] Bluetooth: Reset Bluetooth chip after multiple command timeouts Rajat Jain
2018-11-19 23:04   ` [PATCH v2 4/5] Bluetooth: btusb: Collect the common Intel assignments together Rajat Jain
2018-11-19 23:04   ` [PATCH v2 5/5] Bluetooth: btusb: Use the hw_reset method to allow resetting the BT chip Rajat Jain
2018-11-21 23:50 ` [PATCH v3 1/5] usb: split code locating ACPI companion into port and device Rajat Jain
2018-11-21 23:50   ` [PATCH v3 2/5] usb: assign ACPI companions for embedded USB devices Rajat Jain
2018-12-05  9:32     ` Greg Kroah-Hartman
2018-12-05 17:19       ` Ghorai, Sukumar
2018-11-21 23:50   ` [PATCH v3 3/5] Bluetooth: Reset Bluetooth chip after multiple command timeouts Rajat Jain
2018-11-21 23:50   ` [PATCH v3 4/5] Bluetooth: btusb: Collect the common Intel assignments together Rajat Jain
2018-11-21 23:50   ` [PATCH v3 5/5] Bluetooth: btusb: Use the hw_reset method to allow resetting the BT chip Rajat Jain
2018-12-20  8:46     ` Rajat Jain
2019-01-18 11:04     ` Marcel Holtmann
2019-01-18 20:51       ` Rajat Jain
2018-12-05  9:32   ` [PATCH v3 1/5] usb: split code locating ACPI companion into port and device Greg Kroah-Hartman
2018-12-05 17:41     ` Ghorai, Sukumar
2019-01-18 22:34 ` [PATCH v4 " Rajat Jain
2019-01-18 22:34   ` [PATCH v4 2/5] usb: assign ACPI companions for embedded USB devices Rajat Jain
2019-01-19 19:51     ` Marcel Holtmann
2019-01-22 22:29       ` Rajat Jain
2019-01-18 22:34   ` [PATCH v4 3/5] Bluetooth: Reset Bluetooth chip after multiple command timeouts Rajat Jain
2019-01-19 19:51     ` Marcel Holtmann
2019-01-22 22:34       ` Rajat Jain
2019-01-18 22:34   ` [PATCH v4 4/5] Bluetooth: btusb: Collect the common Intel assignments together Rajat Jain
2019-01-19 19:51     ` Marcel Holtmann
2019-01-22 22:35       ` Rajat Jain
2019-01-18 22:34   ` [PATCH v4 5/5] Bluetooth: btusb: Use the hw_reset method to allow resetting the BT chip Rajat Jain
2019-01-19 19:51     ` Marcel Holtmann
2019-01-22 22:36       ` Rajat Jain
2019-01-19 19:51   ` [PATCH v4 1/5] usb: split code locating ACPI companion into port and device Marcel Holtmann
2019-01-22 22:28     ` Rajat Jain
2019-01-22 22:42       ` Dmitry Torokhov
2019-01-23  6:36         ` Greg Kroah-Hartman
2019-01-23 20:57 ` [PATCH v5 1/4] " Rajat Jain
2019-01-23 20:57   ` [PATCH v5 2/4] usb: assign ACPI companions for embedded USB devices Rajat Jain
2019-01-23 20:57   ` [PATCH v5 3/4] Bluetooth: Allow driver specific cmd timeout handling Rajat Jain
2019-01-24  9:36     ` Marcel Holtmann
2019-01-24 20:10       ` Rajat Jain
2019-01-23 20:57   ` [PATCH v5 4/4] Bluetooth: btusb: Use the cmd_timeout method to reset the Intel BT chip Rajat Jain
2019-01-24  9:46     ` Marcel Holtmann
2019-01-24 20:05       ` Rajat Jain
2019-01-24 23:28 ` [PATCH v6 1/4] usb: split code locating ACPI companion into port and device Rajat Jain
2019-01-24 23:28   ` [PATCH v6 2/4] usb: assign ACPI companions for embedded USB devices Rajat Jain
2019-01-25  7:51     ` Marcel Holtmann
2019-01-24 23:28   ` Rajat Jain [this message]
2019-01-25  7:51     ` [PATCH v6 3/4] Bluetooth: Allow driver specific cmd timeout handling Marcel Holtmann
2019-01-24 23:28   ` [PATCH v6 4/4] Bluetooth: btusb: Use the cmd_timeout method to reset the Intel BT chip Rajat Jain
2019-01-25  7:51     ` Marcel Holtmann
2019-01-25  7:51   ` [PATCH v6 1/4] usb: split code locating ACPI companion into port and device Marcel Holtmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190124232814.252661-3-rajatja@google.com \
    --to=rajatja@google.com \
    --cc=alex.hung@canonical.com \
    --cc=chethan.tumkur.narayan@intel.com \
    --cc=davem@davemloft.net \
    --cc=dtor@chromium.org \
    --cc=dtor@google.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=johan.hedberg@gmail.com \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=marcel@holtmann.org \
    --cc=netdev@vger.kernel.org \
    --cc=raghuram.hegde@intel.com \
    --cc=rajatxjain@gmail.com \
    --cc=sukumar.ghorai@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).