Skip to content

Commit

Permalink
wl12xx: Change claiming of the SDIO bus
Browse files Browse the repository at this point in the history
The SDIO bus is claimed and released for each SDIO transaction. In
addition to the few CPU cycles it takes to claim and release the bus, it
may also cause undesired side effects such as the MMC host stopping its
internal clocks.

Since only the wl12xx_sdio driver drives this SDIO card, it is safe to
claim the SDIO host once (on power on), and release it only when turning
the power off.

This patch was inspired by Juuso Oikarinen's (juuso.oikarinen@nokia.com)
patch "wl12xx: Change claiming of the (SDIO) bus".

Signed-off-by: Ido Yariv <ido@wizery.com>
Reviewed-by: Luciano Coelho <coelho@ti.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
  • Loading branch information
Ido Yariv authored and Luciano Coelho committed Mar 3, 2011
1 parent 606ea9f commit 393fb56
Showing 1 changed file with 0 additions and 10 deletions.
10 changes: 0 additions & 10 deletions drivers/net/wireless/wl12xx/sdio.c
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,6 @@ static void wl1271_sdio_raw_read(struct wl1271 *wl, int addr, void *buf,
int ret;
struct sdio_func *func = wl_to_func(wl);

sdio_claim_host(func);

if (unlikely(addr == HW_ACCESS_ELP_CTRL_REG_ADDR)) {
((u8 *)buf)[0] = sdio_f0_readb(func, addr, &ret);
wl1271_debug(DEBUG_SDIO, "sdio read 52 addr 0x%x, byte 0x%02x",
Expand All @@ -124,8 +122,6 @@ static void wl1271_sdio_raw_read(struct wl1271 *wl, int addr, void *buf,
wl1271_dump_ascii(DEBUG_SDIO, "data: ", buf, len);
}

sdio_release_host(func);

if (ret)
wl1271_error("sdio read failed (%d)", ret);
}
Expand All @@ -136,8 +132,6 @@ static void wl1271_sdio_raw_write(struct wl1271 *wl, int addr, void *buf,
int ret;
struct sdio_func *func = wl_to_func(wl);

sdio_claim_host(func);

if (unlikely(addr == HW_ACCESS_ELP_CTRL_REG_ADDR)) {
sdio_f0_writeb(func, ((u8 *)buf)[0], addr, &ret);
wl1271_debug(DEBUG_SDIO, "sdio write 52 addr 0x%x, byte 0x%02x",
Expand All @@ -153,8 +147,6 @@ static void wl1271_sdio_raw_write(struct wl1271 *wl, int addr, void *buf,
ret = sdio_memcpy_toio(func, addr, buf, len);
}

sdio_release_host(func);

if (ret)
wl1271_error("sdio write failed (%d)", ret);
}
Expand All @@ -176,7 +168,6 @@ static int wl1271_sdio_power_on(struct wl1271 *wl)

sdio_claim_host(func);
sdio_enable_func(func);
sdio_release_host(func);

out:
return ret;
Expand All @@ -187,7 +178,6 @@ static int wl1271_sdio_power_off(struct wl1271 *wl)
struct sdio_func *func = wl_to_func(wl);
int ret;

sdio_claim_host(func);
sdio_disable_func(func);
sdio_release_host(func);

Expand Down

0 comments on commit 393fb56

Please sign in to comment.