linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] Revert "wl12xx: Change claiming of the SDIO bus"
@ 2012-01-26 12:12 Eliad Peller
  2012-01-26 12:12 ` [PATCH 2/2] wl12xx: don't release/claim sdio on suspend/resume Eliad Peller
  2012-02-15 10:14 ` [PATCH 1/2] Revert "wl12xx: Change claiming of the SDIO bus" Luciano Coelho
  0 siblings, 2 replies; 3+ messages in thread
From: Eliad Peller @ 2012-01-26 12:12 UTC (permalink / raw)
  To: Luciano Coelho; +Cc: linux-wireless

This reverts commit 393fb560d328cc06e6a5c7b7473901ad724f82e7.

Commit b6ad726 ("mmc: core: Prevent too long response times
for suspend") fails the suspend if the mmc host can't be
claimed before suspend. As the host is claimed by us as long
as the chip is powered on, suspend will always fail.

Revert to claiming the sdio bus only when needed.

Signed-off-by: Eliad Peller <eliad@wizery.com>
---
 drivers/net/wireless/wl12xx/sdio.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/wl12xx/sdio.c b/drivers/net/wireless/wl12xx/sdio.c
index 468a505..099c2c9 100644
--- a/drivers/net/wireless/wl12xx/sdio.c
+++ b/drivers/net/wireless/wl12xx/sdio.c
@@ -74,6 +74,8 @@ static void wl12xx_sdio_raw_read(struct device *child, int addr, void *buf,
 	struct wl12xx_sdio_glue *glue = dev_get_drvdata(child->parent);
 	struct sdio_func *func = dev_to_sdio_func(glue->dev);
 
+	sdio_claim_host(func);
+
 	if (unlikely(addr == HW_ACCESS_ELP_CTRL_REG_ADDR)) {
 		((u8 *)buf)[0] = sdio_f0_readb(func, addr, &ret);
 		dev_dbg(child->parent, "sdio read 52 addr 0x%x, byte 0x%02x\n",
@@ -88,6 +90,8 @@ static void wl12xx_sdio_raw_read(struct device *child, int addr, void *buf,
 			addr, len);
 	}
 
+	sdio_release_host(func);
+
 	if (ret)
 		dev_err(child->parent, "sdio read failed (%d)\n", ret);
 }
@@ -99,6 +103,8 @@ static void wl12xx_sdio_raw_write(struct device *child, int addr, void *buf,
 	struct wl12xx_sdio_glue *glue = dev_get_drvdata(child->parent);
 	struct sdio_func *func = dev_to_sdio_func(glue->dev);
 
+	sdio_claim_host(func);
+
 	if (unlikely(addr == HW_ACCESS_ELP_CTRL_REG_ADDR)) {
 		sdio_f0_writeb(func, ((u8 *)buf)[0], addr, &ret);
 		dev_dbg(child->parent, "sdio write 52 addr 0x%x, byte 0x%02x\n",
@@ -113,6 +119,8 @@ static void wl12xx_sdio_raw_write(struct device *child, int addr, void *buf,
 			ret = sdio_memcpy_toio(func, addr, buf, len);
 	}
 
+	sdio_release_host(func);
+
 	if (ret)
 		dev_err(child->parent, "sdio write failed (%d)\n", ret);
 }
@@ -136,6 +144,7 @@ static int wl12xx_sdio_power_on(struct wl12xx_sdio_glue *glue)
 
 	sdio_claim_host(func);
 	sdio_enable_func(func);
+	sdio_release_host(func);
 
 out:
 	return ret;
@@ -146,6 +155,7 @@ static int wl12xx_sdio_power_off(struct wl12xx_sdio_glue *glue)
 	int ret;
 	struct sdio_func *func = dev_to_sdio_func(glue->dev);
 
+	sdio_claim_host(func);
 	sdio_disable_func(func);
 	sdio_release_host(func);
 
-- 
1.7.6.401.g6a319


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 2/2] wl12xx: don't release/claim sdio on suspend/resume
  2012-01-26 12:12 [PATCH 1/2] Revert "wl12xx: Change claiming of the SDIO bus" Eliad Peller
@ 2012-01-26 12:12 ` Eliad Peller
  2012-02-15 10:14 ` [PATCH 1/2] Revert "wl12xx: Change claiming of the SDIO bus" Luciano Coelho
  1 sibling, 0 replies; 3+ messages in thread
From: Eliad Peller @ 2012-01-26 12:12 UTC (permalink / raw)
  To: Luciano Coelho; +Cc: linux-wireless

Since we reverted to claiming the host only when needed,
we no longer need to release/claim the host on suspend/resume.

Signed-off-by: Eliad Peller <eliad@wizery.com>
---
 drivers/net/wireless/wl12xx/sdio.c |   11 -----------
 1 files changed, 0 insertions(+), 11 deletions(-)

diff --git a/drivers/net/wireless/wl12xx/sdio.c b/drivers/net/wireless/wl12xx/sdio.c
index 099c2c9..ce3b9a9 100644
--- a/drivers/net/wireless/wl12xx/sdio.c
+++ b/drivers/net/wireless/wl12xx/sdio.c
@@ -324,9 +324,6 @@ static int wl1271_suspend(struct device *dev)
 			dev_err(dev, "error while trying to keep power\n");
 			goto out;
 		}
-
-		/* release host */
-		sdio_release_host(func);
 	}
 out:
 	return ret;
@@ -334,15 +331,7 @@ out:
 
 static int wl1271_resume(struct device *dev)
 {
-	struct sdio_func *func = dev_to_sdio_func(dev);
-	struct wl12xx_sdio_glue *glue = sdio_get_drvdata(func);
-	struct wl1271 *wl = platform_get_drvdata(glue->core);
-
 	dev_dbg(dev, "wl1271 resume\n");
-	if (wl->wow_enabled) {
-		/* claim back host */
-		sdio_claim_host(func);
-	}
 
 	return 0;
 }
-- 
1.7.6.401.g6a319


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/2] Revert "wl12xx: Change claiming of the SDIO bus"
  2012-01-26 12:12 [PATCH 1/2] Revert "wl12xx: Change claiming of the SDIO bus" Eliad Peller
  2012-01-26 12:12 ` [PATCH 2/2] wl12xx: don't release/claim sdio on suspend/resume Eliad Peller
@ 2012-02-15 10:14 ` Luciano Coelho
  1 sibling, 0 replies; 3+ messages in thread
From: Luciano Coelho @ 2012-02-15 10:14 UTC (permalink / raw)
  To: Eliad Peller; +Cc: linux-wireless

On Thu, 2012-01-26 at 14:12 +0200, Eliad Peller wrote: 
> This reverts commit 393fb560d328cc06e6a5c7b7473901ad724f82e7.
> 
> Commit b6ad726 ("mmc: core: Prevent too long response times
> for suspend") fails the suspend if the mmc host can't be
> claimed before suspend. As the host is claimed by us as long
> as the chip is powered on, suspend will always fail.
> 
> Revert to claiming the sdio bus only when needed.
> 
> Signed-off-by: Eliad Peller <eliad@wizery.com>
> ---

Applied the set, thank you.

-- 
Cheers,
Luca.


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-02-15 10:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-26 12:12 [PATCH 1/2] Revert "wl12xx: Change claiming of the SDIO bus" Eliad Peller
2012-01-26 12:12 ` [PATCH 2/2] wl12xx: don't release/claim sdio on suspend/resume Eliad Peller
2012-02-15 10:14 ` [PATCH 1/2] Revert "wl12xx: Change claiming of the SDIO bus" Luciano Coelho

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).