[meta-ti] [ti-uboot][PATCH] mmc: restore capacity when switching to partition 0
Peter A. Bigot
pab at pabigot.com
Mon Sep 1 20:11:30 PDT 2014
The capacity and lba for an MMC device with part_num 0 reflects the
whole device. When mmc_switch_part() successfully switches to a
partition, the capacity is changed to that partition. As partition 0
does not physically exist, attempts to switch back to the whole device
will indicate an error, but should still restore the capacity setting.
Signed-off-by: Peter A. Bigot <pab at pabigot.com>
---
drivers/mmc/mmc.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index b5477b1..b05c6ee 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -596,10 +596,11 @@ int mmc_switch_part(int dev_num, unsigned int part_num)
ret = mmc_switch(mmc, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_PART_CONF,
(mmc->part_config & ~PART_ACCESS_MASK)
| (part_num & PART_ACCESS_MASK));
- if (ret)
- return ret;
- return mmc_set_capacity(mmc, part_num);
+ if ((0 == ret) || ((-ENODEV == ret) && (0 == part_num)))
+ ret = mmc_set_capacity(mmc, part_num);
+
+ return ret;
}
int mmc_getcd(struct mmc *mmc)
--
1.8.5.5
More information about the meta-ti
mailing list