summaryrefslogtreecommitdiff
path: root/drivers/mmc
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2014-06-04 13:29:39 +0200
committerMarcel Ziswiler <marcel.ziswiler@toradex.com>2018-12-24 01:27:25 +0100
commit51f1e96461536ae06d6350c3854e34af2d90fc1f (patch)
tree45b888ef5a8ded1a8a1cc4ab4f811fa9f571a59c /drivers/mmc
parent911ec875770c7f4837ab30dcba5f5f28543c54b3 (diff)
eMMC: Don't initialize partitions on RPMB flagged areas.
Prevents a lot of pointless hanging at boot on some devices. Taken from Nell Hardcastle https://dev-nell.com/rpmb-emmc-errors-under-linux.html Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> (cherry picked from commit d888e1ddc838112d3ccf4853c0b8934490134fbb) (cherry picked from commit 25c2bbcb3b52a09d13859edc2401f142ced98235)
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/core/block.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c
index 2f7465723b14..b2e1a45fade7 100644
--- a/drivers/mmc/core/block.c
+++ b/drivers/mmc/core/block.c
@@ -2257,7 +2257,8 @@ static int mmc_blk_alloc_parts(struct mmc_card *card, struct mmc_blk_data *md)
return 0;
for (idx = 0; idx < card->nr_parts; idx++) {
- if (card->part[idx].size) {
+ if (card->part[idx].size &&
+ !(card->part[idx].area_type & MMC_BLK_DATA_AREA_RPMB)) {
ret = mmc_blk_alloc_part(card, md,
card->part[idx].part_cfg,
card->part[idx].size >> 9,