brcmfmac: avoid duplicated suspend/resume operation
Subsystems (3)
PATCH v2 1/1 brcmfmac: avoid duplicated suspend/resume operation
Quoted 1 line
From
ff39ed4af9f1c50358fe92ec4c8eaac9db183e00Mon Sep 17 00:00:00 2001
From: Zhonghui Fu <[email protected]>
Date: Mon, 26 Jan 2015 10:13:21 +0800
Subject: [PATCH v2] brcmfmac: avoid duplicated suspend/resume operation
WiFi chip has 2 SDIO functions, and PM core will trigger twice suspend/resume operations for one WiFi chip to do the same things. This patch avoid this case.
---
Changes in v2:
- Remove two "Acked-by" lines
drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c | 17 +++++++++++++++-- 1 files changed, 15 insertions(+), 2 deletions(-)
drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c +15 -2
@@ -1139,11 +1139,17 @@ void brcmf_sdio_wowl_config(struct device *dev, bool enabled)static int brcmf_ops_sdio_suspend (struct device *dev) {struct brcmf_bus *bus_if =dev_get_drvdata (dev); -struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; +struct brcmf_sdio_dev *sdiodev;mmc_pm_flag_t sdio_flags; +struct sdio_func *func =dev_to_sdio_func (dev);brcmf_dbg (SDIO ,"Enter\n" ); +if (func->num ==2 ) +return 0 ; + + sdiodev = bus_if->bus_priv.sdio; +atomic_set (&sdiodev->suspend, true);if (sdiodev->wowl_enabled) {
@@ -1164,9 +1170,16 @@ static int brcmf_ops_sdio_suspend(struct device *dev)static int brcmf_ops_sdio_resume (struct device *dev) {struct brcmf_bus *bus_if =dev_get_drvdata (dev); -struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; +struct brcmf_sdio_dev *sdiodev; +struct sdio_func *func =dev_to_sdio_func (dev);brcmf_dbg (SDIO ,"Enter\n" ); + +if (func->num ==2 ) +return 0 ; + + sdiodev = bus_if->bus_priv.sdio; +if (sdiodev->pdata && sdiodev->pdata->oob_irq_supported)disable_irq_wake (sdiodev->pdata->oob_irq_nr);brcmf_sdio_wd_timer (sdiodev->bus,BRCMF_WD_POLL_MS );
-- 1.7.1
Quoted 8 lines · Zhonghui
From
ff39ed4af9f1c50358fe92ec4c8eaac9db183e00Mon Sep 17 00:00:00 2001
From: Zhonghui Fu<[email protected]>
Date: Mon, 26 Jan 2015 10:13:21 +0800
Subject: [PATCH v2] brcmfmac: avoid duplicated suspend/resume operationWiFi chip has 2 SDIO functions, and PM core will trigger twice suspend/resume operations for one WiFi chip to do the same things. This patch avoid this case.
Well, another remark from Kalle was that this patch does not apply to wireless-drivers-next/master branch. So I tried to apply this patch and it failed. Please rebase this patch.
Regards,
Arend
Quoted 52 lines
Acked-by Arend van Spriel<[email protected]>Signed-off-by Zhonghui Fu<[email protected]>---
Changes in v2:
- Remove two "Acked-by" linesdrivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c | 17 +++++++++++++++-- 1 files changed, 15 insertions(+), 2 deletions(-)drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c +15
-3@@ -1139,11 +1139,17 @@ void brcmf_sdio_wowl_config(struct device *dev, bool enabled)static int brcmf_ops_sdio_suspend (struct device *dev) {struct brcmf_bus *bus_if =dev_get_drvdata (dev); -struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; +struct brcmf_sdio_dev *sdiodev;mmc_pm_flag_t sdio_flags; +struct sdio_func *func =dev_to_sdio_func (dev);brcmf_dbg (SDIO ,"Enter\n" ); +if (func->num ==2 ) +return 0 ; + + sdiodev = bus_if->bus_priv.sdio; +atomic_set (&sdiodev->suspend, true);if (sdiodev->wowl_enabled) {@@ -1164,9 +1170,16 @@ static int brcmf_ops_sdio_suspend(struct device *dev)static int brcmf_ops_sdio_resume (struct device *dev) {struct brcmf_bus *bus_if =dev_get_drvdata (dev); -struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; +struct brcmf_sdio_dev *sdiodev; +struct sdio_func *func =dev_to_sdio_func (dev);brcmf_dbg (SDIO ,"Enter\n" ); + +if (func->num ==2 ) +return 0 ; + + sdiodev = bus_if->bus_priv.sdio; +if (sdiodev->pdata&& sdiodev->pdata->oob_irq_supported)disable_irq_wake (sdiodev->pdata->oob_irq_nr);brcmf_sdio_wd_timer (sdiodev->bus,BRCMF_WD_POLL_MS ); -- 1.7.1
Quoted 11 lines · Arend van Spriel
Quoted 8 lines · Zhonghui
From
ff39ed4af9f1c50358fe92ec4c8eaac9db183e00Mon Sep 17 00:00:00 2001
From: Zhonghui Fu<[email protected]>
Date: Mon, 26 Jan 2015 10:13:21 +0800
Subject: [PATCH v2] brcmfmac: avoid duplicated suspend/resume operationWiFi chip has 2 SDIO functions, and PM core will trigger twice suspend/resume operations for one WiFi chip to do the same things. This patch avoid this case.
Well, another remark from Kalle was that this patch does not apply to wireless-drivers-next/master branch. So I tried to apply this patch and it failed. Please rebase this patch.
I have re-based this patch to wireless-drivers-next/master branch and sent it with the subject "[PATCH v3] brcmfmac: avoid duplicated suspend/resume operation" in another mail.
Thanks,
Zhonghui
Quoted 61 lines
Regards,
ArendQuoted 52 lines
Acked-by Arend van Spriel<[email protected]>Signed-off-by Zhonghui Fu<[email protected]>---
Changes in v2:
- Remove two "Acked-by" linesdrivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c | 17 +++++++++++++++-- 1 files changed, 15 insertions(+), 2 deletions(-)drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c +15
-3@@ -1139,11 +1139,17 @@ void brcmf_sdio_wowl_config(struct device *dev, bool enabled)static int brcmf_ops_sdio_suspend (struct device *dev) {struct brcmf_bus *bus_if =dev_get_drvdata (dev); -struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; +struct brcmf_sdio_dev *sdiodev;mmc_pm_flag_t sdio_flags; +struct sdio_func *func =dev_to_sdio_func (dev);brcmf_dbg (SDIO ,"Enter\n" ); +if (func->num ==2 ) +return 0 ; + + sdiodev = bus_if->bus_priv.sdio; +atomic_set (&sdiodev->suspend, true);if (sdiodev->wowl_enabled) {@@ -1164,9 +1170,16 @@ static int brcmf_ops_sdio_suspend(struct device *dev)static int brcmf_ops_sdio_resume (struct device *dev) {struct brcmf_bus *bus_if =dev_get_drvdata (dev); -struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; +struct brcmf_sdio_dev *sdiodev; +struct sdio_func *func =dev_to_sdio_func (dev);brcmf_dbg (SDIO ,"Enter\n" ); + +if (func->num ==2 ) +return 0 ; + + sdiodev = bus_if->bus_priv.sdio; +if (sdiodev->pdata&& sdiodev->pdata->oob_irq_supported)disable_irq_wake (sdiodev->pdata->oob_irq_nr);brcmf_sdio_wd_timer (sdiodev->bus,BRCMF_WD_POLL_MS ); -- 1.7.1Signature · 3 lines
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html