mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 00:22:00 +02:00
wifi: wilc1000: Do not operate uninitialized hardware during suspend/resume
In case the hardware is not initialized, do not operate it during suspend/resume cycle, the hardware is already off so there is no reason to access it. In fact, wilc_sdio_enable_interrupt() in the resume callback does interfere with the same call when initializing the hardware after resume and makes such initialization after resume fail. Fix this by not operating uninitialized hardware during suspend/resume. Signed-off-by: Marek Vasut <marex@denx.de> Reviewed-by: Alexis Lothoré <alexis.lothore@bootlin.com> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://patch.msgid.link/20240821183639.163187-1-marex@denx.de
This commit is contained in:
parent
d38792292b
commit
b0dc701847
|
|
@ -977,6 +977,9 @@ static int wilc_sdio_suspend(struct device *dev)
|
|||
|
||||
dev_info(dev, "sdio suspend\n");
|
||||
|
||||
if (!wilc->initialized)
|
||||
return 0;
|
||||
|
||||
if (!IS_ERR(wilc->rtc_clk))
|
||||
clk_disable_unprepare(wilc->rtc_clk);
|
||||
|
||||
|
|
@ -999,6 +1002,10 @@ static int wilc_sdio_resume(struct device *dev)
|
|||
struct wilc *wilc = sdio_get_drvdata(func);
|
||||
|
||||
dev_info(dev, "sdio resume\n");
|
||||
|
||||
if (!wilc->initialized)
|
||||
return 0;
|
||||
|
||||
wilc_sdio_init(wilc, true);
|
||||
wilc_sdio_enable_interrupt(wilc);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user