mmc: core: general purpose MMC partition support.
It allows gerneral purpose partitions in MMC Device. And I try to simply make mmc_blk_alloc_parts using mmc_part structure suggested by Andrei Warkentin. After patching, we see general purpose partitions like this: > cat /proc/partitions 179 0 847872 mmcblk0 179 192 4096 mmcblk0gp3 179 160 4096 mmcblk0gp2 179 128 4096 mmcblk0gp1 179 96 1052672 mmcblk0gp0 179 64 1024 mmcblk0boot1 179 32 1024 mmcblk0boot0 Signed-off-by: Namjae Jeon <linkinjeon@gmail.com> Acked-by: Andrei Warkentin <awarkentin@vmware.com> Signed-off-by: Chris Ball <cjb@laptop.org>
This commit is contained in:
@@ -1473,26 +1473,29 @@ static int mmc_blk_alloc_part(struct mmc_card *card,
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* MMC Physical partitions consist of two boot partitions and
|
||||
* up to four general purpose partitions.
|
||||
* For each partition enabled in EXT_CSD a block device will be allocatedi
|
||||
* to provide access to the partition.
|
||||
*/
|
||||
|
||||
static int mmc_blk_alloc_parts(struct mmc_card *card, struct mmc_blk_data *md)
|
||||
{
|
||||
int ret = 0;
|
||||
int idx, ret = 0;
|
||||
|
||||
if (!mmc_card_mmc(card))
|
||||
return 0;
|
||||
|
||||
if (card->ext_csd.boot_size && mmc_boot_partition_access(card->host)) {
|
||||
ret = mmc_blk_alloc_part(card, md, EXT_CSD_PART_CONFIG_ACC_BOOT0,
|
||||
card->ext_csd.boot_size >> 9,
|
||||
true,
|
||||
"boot0");
|
||||
if (ret)
|
||||
return ret;
|
||||
ret = mmc_blk_alloc_part(card, md, EXT_CSD_PART_CONFIG_ACC_BOOT1,
|
||||
card->ext_csd.boot_size >> 9,
|
||||
true,
|
||||
"boot1");
|
||||
if (ret)
|
||||
return ret;
|
||||
for (idx = 0; idx < card->nr_parts; idx++) {
|
||||
if (card->part[idx].size) {
|
||||
ret = mmc_blk_alloc_part(card, md,
|
||||
card->part[idx].part_cfg,
|
||||
card->part[idx].size >> 9,
|
||||
card->part[idx].force_ro,
|
||||
card->part[idx].name);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
Reference in New Issue
Block a user