]> git.baikalelectronics.ru Git - kernel.git/commit
Bluetooth: btmrvl: don't send data to firmware while processing suspend
authorChin-Ran Lo <crlo@marvell.com>
Wed, 6 Jan 2016 14:34:38 +0000 (06:34 -0800)
committerMarcel Holtmann <marcel@holtmann.org>
Wed, 6 Jan 2016 15:37:14 +0000 (16:37 +0100)
commit88aec961c2f8aa16aefd3c345b40b2fdea7f0d32
tree7f5563bd204292ea1ad51d5c4146a0ab937d65fa
parenta6d50388f404e1c6088b253e4e3aac97d831ef1d
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>
drivers/bluetooth/btmrvl_drv.h
drivers/bluetooth/btmrvl_main.c
drivers/bluetooth/btmrvl_sdio.c