Commit 0aab3995 authored by Stefan Nilsson XK's avatar Stefan Nilsson XK Committed by Chris Ball

mmc: sdio: remember new card RCA when redetecting card

During redetection of a SDIO card, a request for a new card RCA
was submitted to the card, but was then overwritten by the old RCA.
This caused the card to be deselected instead of selected when using
the incorrect RCA.  This bug's been present since the "oldcard"
handling was introduced in 2.6.32.
Signed-off-by: default avatarStefan Nilsson XK <stefan.xk.nilsson@stericsson.com>
Reviewed-by: default avatarUlf Hansson <ulf.hansson@stericsson.com>
Reviewed-by: default avatarPawel Wieczorkiewicz <pawel.wieczorkiewicz@stericsson.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Cc: <stable@kernel.org>
Signed-off-by: default avatarChris Ball <cjb@laptop.org>
parent ba6a902d
...@@ -395,6 +395,14 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr, ...@@ -395,6 +395,14 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr,
if (err) if (err)
goto remove; goto remove;
/*
* Update oldcard with the new RCA received from the SDIO
* device -- we're doing this so that it's updated in the
* "card" struct when oldcard overwrites that later.
*/
if (oldcard)
oldcard->rca = card->rca;
mmc_set_bus_mode(host, MMC_BUSMODE_PUSHPULL); mmc_set_bus_mode(host, MMC_BUSMODE_PUSHPULL);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment