From: Xinming Hu Date: Fri, 31 Mar 2017 06:32:31 +0000 (+0800) Subject: Bluetooth: btmrvl: disable platform wakeup interrupt in suspend failure path X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=6eb7bd66830c1e1919aa4006d7eb288873b0f806;p=openwrt%2Fstaging%2Fblogic.git 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 Signed-off-by: Xinming Hu Signed-off-by: Amitkumar Karwar Signed-off-by: Marcel Holtmann --- 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; }