2017-03-30 14:37:15

by Xinming Hu

[permalink] [raw]
Subject: [PATCH v2 1/2] 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.

Signed-off-by: Xinming Hu <[email protected]>
Signed-off-by: Guenter Roeck <[email protected]>
Signed-off-by: Amitkumar Karwar <[email protected]>
---
v2: same as v1
---
drivers/bluetooth/btmrvl_sdio.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/drivers/bluetooth/btmrvl_sdio.c b/drivers/bluetooth/btmrvl_sdio.c
index 2424ea2..95e40ec 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;
}
--
1.8.1.4


2017-03-31 06:31:52

by Xinming Hu

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] Bluetooth: btmrvl: remove unnecessary wakeup interrupt number sanity check

Hi Marcel,=0A=
________________________________________=0A=
=0A=
=0A=
>Hi Xinming,=0A=
=0A=
>> Sanity check of interrupt number in interrupt handler is unnecessary and=
=0A=
>> confusion, remove it.=0A=
>>=0A=
>> Signed-off-by: Xinming Hu <[email protected]>=0A=
>> Signed-off-by: Guenter Roeck <[email protected]>=0A=
>> Signed-off-by: Amitkumar Karwar <[email protected]>=0A=
>> ---=0A=
>> v2: fix apply error in v1=0A=
>> ---=0A=
>> drivers/bluetooth/btmrvl_sdio.c | 8 +++-----=0A=
>> 1 file changed, 3 insertions(+), 5 deletions(-)=0A=
=0A=
>patch has been applied to bluetooth-next tree.=0A=
=0A=
Thanks ! we might need send V3 patches based on Guenter's comments.=0A=
=0A=
Regards,=0A=
Simon=0A=
=0A=
>Regards=0A=
=0A=
>Marcel=0A=
=0A=

2017-03-30 14:44:00

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] Bluetooth: btmrvl: remove unnecessary wakeup interrupt number sanity check

Hi Xinming,

> Sanity check of interrupt number in interrupt handler is unnecessary and
> confusion, remove it.
>
> Signed-off-by: Xinming Hu <[email protected]>
> Signed-off-by: Guenter Roeck <[email protected]>
> Signed-off-by: Amitkumar Karwar <[email protected]>
> ---
> v2: fix apply error in v1
> ---
> drivers/bluetooth/btmrvl_sdio.c | 8 +++-----
> 1 file changed, 3 insertions(+), 5 deletions(-)

patch has been applied to bluetooth-next tree.

Regards

Marcel


2017-03-30 14:37:16

by Xinming Hu

[permalink] [raw]
Subject: [PATCH v2 2/2] Bluetooth: btmrvl: remove unnecessary wakeup interrupt number sanity check

Sanity check of interrupt number in interrupt handler is unnecessary and
confusion, remove it.

Signed-off-by: Xinming Hu <[email protected]>
Signed-off-by: Guenter Roeck <[email protected]>
Signed-off-by: Amitkumar Karwar <[email protected]>
---
v2: fix apply error in v1
---
drivers/bluetooth/btmrvl_sdio.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/bluetooth/btmrvl_sdio.c b/drivers/bluetooth/btmrvl_sdio.c
index 95e40ec..eb794f0 100644
--- a/drivers/bluetooth/btmrvl_sdio.c
+++ b/drivers/bluetooth/btmrvl_sdio.c
@@ -64,11 +64,9 @@ static irqreturn_t btmrvl_wake_irq_bt(int irq, void *priv)
struct btmrvl_sdio_card *card = priv;
struct btmrvl_plt_wake_cfg *cfg = card->plt_wake_cfg;

- if (cfg->irq_bt >= 0) {
- pr_info("%s: wake by bt", __func__);
- cfg->wake_by_bt = true;
- disable_irq_nosync(irq);
- }
+ pr_info("%s: wake by bt", __func__);
+ cfg->wake_by_bt = true;
+ disable_irq_nosync(irq);

pm_wakeup_event(&card->func->dev, 0);
pm_system_wakeup();
--
1.8.1.4