diff options
author | Chin-Ran Lo <crlo@marvell.com> | 2014-07-01 14:00:14 -0700 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2014-07-03 17:42:54 +0200 |
commit | 396e04f4bb9afefb0744715dc76d9abe18ee5fb0 (patch) | |
tree | 0492fff5438d6a4b094489e8faa4536cb5d46689 /drivers/bluetooth/btmrvl_drv.h | |
parent | 4df82b5911c0e380d8b308958f158c3e7b365467 (diff) | |
download | op-kernel-dev-396e04f4bb9afefb0744715dc76d9abe18ee5fb0.zip op-kernel-dev-396e04f4bb9afefb0744715dc76d9abe18ee5fb0.tar.gz |
Bluetooth: btmrvl: wait for HOST_SLEEP_ENABLE event in suspend
After BT_CMD_HOST_SLEEP_ENABLE command finishes, driver should
wait until getting BT_EVENT_HOST_SLEEP_ENABLE event to complete
suspend procedure.
Without this patch the suspend handler would return success
earlier. By the time when the BT_EVENT_HOST_SLEEP_ENABLE event
comes in the controller driver could have already turned off the
bus clock. This causes kernel crash or system reboot eventually.
Cc: <stable@vger.kernel.org> # 3.13+
Signed-off-by: Chin-Ran Lo <crlo@marvell.com>
Signed-off-by: Jeff CF Chen <jeffc@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'drivers/bluetooth/btmrvl_drv.h')
-rw-r--r-- | drivers/bluetooth/btmrvl_drv.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/bluetooth/btmrvl_drv.h b/drivers/bluetooth/btmrvl_drv.h index 4c313e7..a8a9d33 100644 --- a/drivers/bluetooth/btmrvl_drv.h +++ b/drivers/bluetooth/btmrvl_drv.h @@ -68,6 +68,7 @@ struct btmrvl_adapter { u8 hs_state; u8 wakeup_tries; wait_queue_head_t cmd_wait_q; + wait_queue_head_t event_hs_wait_q; u8 cmd_complete; bool is_suspended; }; |