summaryrefslogtreecommitdiffstats
path: root/drivers/vme
diff options
context:
space:
mode:
authorIdo Yariv <ido@wizery.com>2012-05-20 10:38:16 +0300
committerLuciano Coelho <coelho@ti.com>2012-06-22 10:46:33 +0300
commit645865fc377c9ac73df590abf8e6af65824390a3 (patch)
tree57ed4f4716a2b1be2415a397f0692b7bb17b47c2 /drivers/vme
parent41844076c5c3a33636b5c26d19b16c6141c5d6cd (diff)
wlcore: Fix sdio out-of-sync power state
wl12xx_sdio_power_off() manually powers down the card regardless of the runtime pm state. If wl12xx_sdio_power_on() is called before the card was suspended by runtime PM, it will not power up the card. As part of the HW detection, the chip's power is toggled. Since this happens in the context of probing sdio, the power reference counter will be higher than zero. As a result, when wl12xx_sdio_power_off() is called, the chip will be powered down while still having a positive power reference counter. If the interface is quickly activated, the driver might try to transfer data to a powered off chip. Fix this by ensuring that wl12xx_sdio_power_on() explicitly powers on the chip in case runtime pm claims the chip is already powered on. To avoid cases in which it is not possible to determine if the chip was really powered on (card's power reference counter is positive), operate on the mmc_card instead of the function. Also verify that the chip is indeed powered on before powering off, to avoid wrong reference counter values in error cases. Signed-off-by: Ido Yariv <ido@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/vme')
0 files changed, 0 insertions, 0 deletions