diff options
author | Chin-Ran Lo <crlo@marvell.com> | 2016-01-06 06:34:38 -0800 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2016-01-06 16:37:14 +0100 |
commit | 8cf60cf238ce1bea38593321e6ea8561fc32e38d (patch) | |
tree | 7f5563bd204292ea1ad51d5c4146a0ab937d65fa /drivers/bluetooth/btmrvl_drv.h | |
parent | d716892f0827dd29ae2488ab3005dfc84ff8fed0 (diff) | |
download | linux-stable-8cf60cf238ce1bea38593321e6ea8561fc32e38d.tar.gz linux-stable-8cf60cf238ce1bea38593321e6ea8561fc32e38d.tar.bz2 linux-stable-8cf60cf238ce1bea38593321e6ea8561fc32e38d.zip |
Bluetooth: btmrvl: don't send data to firmware while processing suspend
Usually when driver sends data to firmware it receives TX_DONE
(DN_LD_HOST_INT_STATUS) interrupt from firmware right away.
It's also observed that some times the fireware could delay
sending DN_LD_HOST_INT_STATUS interrupt. If driver sends data to
firmware during suspend processing and the TX_DONE interrupt is
delayed, it may come back at wrong time when SDIO host driver is
in the middle of suspending.
Block any data from stack while suspending. Also skip sending
data that are already in driver tx_queue.
Don't purge the skb queue on suspend to avoid intermittent music
after system resumes from S3.
Signed-off-by: Chin-Ran Lo <crlo@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@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 27a9aac25583..05904732e6f1 100644 --- a/drivers/bluetooth/btmrvl_drv.h +++ b/drivers/bluetooth/btmrvl_drv.h @@ -89,6 +89,7 @@ struct btmrvl_adapter { wait_queue_head_t event_hs_wait_q; u8 cmd_complete; bool is_suspended; + bool is_suspending; }; struct btmrvl_private { |