diff options
Diffstat (limited to 'drivers/mmc/core/sdio.c')
-rw-r--r-- | drivers/mmc/core/sdio.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c index ebc62ad4cc56..db0f0b44d684 100644 --- a/drivers/mmc/core/sdio.c +++ b/drivers/mmc/core/sdio.c | |||
@@ -395,6 +395,14 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr, | |||
395 | if (err) | 395 | if (err) |
396 | goto remove; | 396 | goto remove; |
397 | 397 | ||
398 | /* | ||
399 | * Update oldcard with the new RCA received from the SDIO | ||
400 | * device -- we're doing this so that it's updated in the | ||
401 | * "card" struct when oldcard overwrites that later. | ||
402 | */ | ||
403 | if (oldcard) | ||
404 | oldcard->rca = card->rca; | ||
405 | |||
398 | mmc_set_bus_mode(host, MMC_BUSMODE_PUSHPULL); | 406 | mmc_set_bus_mode(host, MMC_BUSMODE_PUSHPULL); |
399 | } | 407 | } |
400 | 408 | ||
@@ -458,6 +466,7 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr, | |||
458 | 466 | ||
459 | card = oldcard; | 467 | card = oldcard; |
460 | } | 468 | } |
469 | mmc_fixup_device(card); | ||
461 | 470 | ||
462 | if (card->type == MMC_TYPE_SD_COMBO) { | 471 | if (card->type == MMC_TYPE_SD_COMBO) { |
463 | err = mmc_sd_setup_card(host, card, oldcard != NULL); | 472 | err = mmc_sd_setup_card(host, card, oldcard != NULL); |