NVIDIA: SAUCE: mmc: core: Update bus status on sd card removal

BugLink: https://bugs.launchpad.net/bugs/2072591

Update card status in mmc_bus_remove on card removal.

http://nvbugs/200426887
http://nvbugs/4452228

Signed-off-by: Aniruddha Tvs Rao <anrao@nvidia.com>
Signed-off-by: Prathamesh Shete <pshete@nvidia.com>
Signed-off-by: Satish Seelamsetti <sseelamsetti@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Acked-by: Jacob Martin <jacob.martin@canonical.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Signed-off-by: Noah Wager <noah.wager@canonical.com>
This commit is contained in:
Aniruddha Tvs Rao
2018-07-03 10:28:40 +05:30
committed by Noah Wager
parent 5bebece0ed
commit af22d991ad
+16 -1
View File
@@ -133,12 +133,18 @@ static int mmc_bus_probe(struct device *dev)
{
struct mmc_driver *drv = to_mmc_driver(dev->driver);
struct mmc_card *card = mmc_dev_to_card(dev);
int card_id;
if (card_idx == MAX_CARDS_NUM) {
pr_err("Exceeded the total number of cards allowed");
return -EINVAL;
} else {
mmc_cards[card_idx++] = card;
for (card_id = 0; card_id < MAX_CARDS_NUM; card_id++) {
if (!mmc_cards[card_id])
break;
}
mmc_cards[card_id] = card;
card_idx++;
}
return drv->probe(card);
@@ -148,7 +154,16 @@ static void mmc_bus_remove(struct device *dev)
{
struct mmc_driver *drv = to_mmc_driver(dev->driver);
struct mmc_card *card = mmc_dev_to_card(dev);
int card_id;
for (card_id = 0; card_id < MAX_CARDS_NUM; card_id++) {
if (mmc_cards[card_id] == card)
break;
}
if (card_id == MAX_CARDS_NUM)
card_id--;
mmc_cards[card_id] = NULL;
card_idx--;
drv->remove(card);
}