summaryrefslogtreecommitdiffstats
path: root/drivers/bluetooth/btmrvl_sdio.c
diff options
context:
space:
mode:
authorXinming Hu <huxm@marvell.com>2017-03-31 08:32:31 +0200
committerMarcel Holtmann <marcel@holtmann.org>2017-04-12 22:02:40 +0200
commit6eb7bd66830c1e1919aa4006d7eb288873b0f806 (patch)
tree8f45a713b959bb2363c3d14e6172a84b49c4b036 /drivers/bluetooth/btmrvl_sdio.c
parentBluetooth: 6lowpan: fix use after free in chan_suspend/resume (diff)
downloadlinux-6eb7bd66830c1e1919aa4006d7eb288873b0f806.tar.xz
linux-6eb7bd66830c1e1919aa4006d7eb288873b0f806.zip
Bluetooth: btmrvl: disable platform wakeup interrupt in suspend failure path
Host sleep handshake with device might been fail, disable platform wakeup interrupt in this case. Reported-by: Guenter Roeck <groeck@chromium.org> Signed-off-by: Xinming Hu <huxm@marvell.com> Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'drivers/bluetooth/btmrvl_sdio.c')
-rw-r--r--drivers/bluetooth/btmrvl_sdio.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/bluetooth/btmrvl_sdio.c b/drivers/bluetooth/btmrvl_sdio.c
index 2424ea2685a7..95e40ec27c0e 100644
--- a/drivers/bluetooth/btmrvl_sdio.c
+++ b/drivers/bluetooth/btmrvl_sdio.c
@@ -1630,6 +1630,13 @@ static int btmrvl_sdio_suspend(struct device *dev)
if (priv->adapter->hs_state != HS_ACTIVATED) {
if (btmrvl_enable_hs(priv)) {
BT_ERR("HS not activated, suspend failed!");
+ /* Disable platform specific wakeup interrupt */
+ if (card->plt_wake_cfg &&
+ card->plt_wake_cfg->irq_bt >= 0) {
+ disable_irq_wake(card->plt_wake_cfg->irq_bt);
+ disable_irq(card->plt_wake_cfg->irq_bt);
+ }
+
priv->adapter->is_suspending = false;
return -EBUSY;
}