diff options
author | Xinming Hu <huxm@marvell.com> | 2017-03-31 08:32:31 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2017-04-12 22:02:40 +0200 |
commit | 6eb7bd66830c1e1919aa4006d7eb288873b0f806 (patch) | |
tree | 8f45a713b959bb2363c3d14e6172a84b49c4b036 /drivers/bluetooth/btmrvl_sdio.c | |
parent | Bluetooth: 6lowpan: fix use after free in chan_suspend/resume (diff) | |
download | linux-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.c | 7 |
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; } |