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:
committed by
Noah Wager
parent
5bebece0ed
commit
af22d991ad
+16
-1
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user