Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 006fc51c authored by NeilBrown's avatar NeilBrown Committed by Ulf Hansson
Browse files

mmc: core: reset sdio card properly on resume.



mmc_sdio_power_restore() calls
	mmc_send_if_cond(host, host->card->ocr);

	ret = mmc_send_io_op_cond(host, 0, NULL);

between mmc_go_idle() and mmc_sdio_init_card().
mmc_sdio_resume() needs to as well, else my libertas sdio wifi
device doesn't resume properly from suspend.

Signed-off-by: default avatarNeilBrown <neilb@suse.de>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent 59b6c9e0
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -980,7 +980,11 @@ static int mmc_sdio_resume(struct mmc_host *host)
	if (mmc_card_is_removable(host) || !mmc_card_keep_power(host)) {
		sdio_reset(host);
		mmc_go_idle(host);
		err = mmc_sdio_init_card(host, host->card->ocr, host->card,
		mmc_send_if_cond(host, host->card->ocr);
		err = mmc_send_io_op_cond(host, 0, NULL);
		if (!err)
			err = mmc_sdio_init_card(host, host->card->ocr,
						 host->card,
						 mmc_card_keep_power(host));
	} else if (mmc_card_keep_power(host) && mmc_card_wake_sdio_irq(host)) {
		/* We may have switched to 1-bit mode during suspend */