]> git.baikalelectronics.ru Git - kernel.git/commit
wlcore: sdio: Fix flakey SDIO runtime PM handling
authorTony Lindgren <tony@atomide.com>
Thu, 17 May 2018 18:29:50 +0000 (11:29 -0700)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 29 May 2018 07:14:45 +0000 (10:14 +0300)
commit269af8dc110293e3e95555eb63fb6c27f8a7aa89
treec8655f5eaf32300560c29c45c3303f9a617b6f74
parentd080f53166fd7a980c32863ba802a50f85607ea2
wlcore: sdio: Fix flakey SDIO runtime PM handling

We can have pm_runtime_get_sync() return 1, and we can have
pm_runtime_put_sync() return -EBUSY. See rpm_suspend() and
rpm_resume() for more information.

Fix the issue by returning 0 from wl12xx_sdio_power_on() on success.
And use pm_runtime_put() instead of pm_runtime_put_sync() for
wl12xx_sdio_power_off(), then the MMC subsystem will idle the bus
when suitable.

Otherwise wlcore can sometimes get confused and may report bogus
errors and WLAN connection can fail.

Note that while wlcore checks the return value for wl1271_power_on(),
the return value is ignored for wl1271_power_off(). Let's fix them
both though to avoid further confusion in the future.

Fixes: a33f6ee2fe02 ("wlcore: sdio: allow pm to handle sdio power")
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/ti/wlcore/sdio.c