summaryrefslogtreecommitdiffstats
path: root/drivers/mci/mci-core.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2013-07-10 08:50:59 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2013-07-15 11:16:19 +0200
commitb2968cc8af06bfa851cf40fd5e4c845634a0caa4 (patch)
tree522f7c1a6b58f08b8dd4b8816d714676aa36151a /drivers/mci/mci-core.c
parent0ee203186d1adf98a04484ee9e601ca9714f0497 (diff)
downloadbarebox-b2968cc8af06bfa851cf40fd5e4c845634a0caa4.tar.gz
barebox-b2968cc8af06bfa851cf40fd5e4c845634a0caa4.tar.xz
mci: set partnames of eMMC boot partitions
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/mci/mci-core.c')
-rw-r--r--drivers/mci/mci-core.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/mci/mci-core.c b/drivers/mci/mci-core.c
index 67668d53f0..02e6216caf 100644
--- a/drivers/mci/mci-core.c
+++ b/drivers/mci/mci-core.c
@@ -406,7 +406,7 @@ static int mci_calc_blk_cnt(uint64_t cap, unsigned shift)
}
static void mci_part_add(struct mci *mci, uint64_t size,
- unsigned int part_cfg, char *name, int idx, bool ro,
+ unsigned int part_cfg, char *name, char *partname, int idx, bool ro,
int area_type)
{
struct mci_part *part = &mci->part[mci->nr_parts];
@@ -414,6 +414,7 @@ static void mci_part_add(struct mci *mci, uint64_t size,
part->mci = mci;
part->size = size;
part->blk.cdev.name = name;
+ part->blk.cdev.partname = partname;
part->blk.blockbits = SECTOR_SHIFT;
part->blk.num_blocks = mci_calc_blk_cnt(size, part->blk.blockbits);
part->area_type = area_type;
@@ -482,13 +483,14 @@ static int mmc_change_freq(struct mci *mci)
unsigned int part_size;
for (idx = 0; idx < MMC_NUM_BOOT_PARTITION; idx++) {
- char *name;
+ char *name, *partname;
part_size = mci->ext_csd[EXT_CSD_BOOT_MULT] << 17;
- name = asprintf("%s.boot%d", mci->cdevname, idx);
+ partname = asprintf("boot%d", idx);
+ name = asprintf("%s.%s", mci->cdevname, partname);
mci_part_add(mci, part_size,
EXT_CSD_PART_CONFIG_ACC_BOOT0 + idx,
- name, idx, true,
+ name, partname, idx, true,
MMC_BLK_DATA_AREA_BOOT);
}
@@ -1104,7 +1106,7 @@ static int mci_startup(struct mci *mci)
err = mci_set_blocklen(mci, mci->read_bl_len);
mci_part_add(mci, mci->capacity, 0,
- mci->cdevname, 0, true,
+ mci->cdevname, NULL, 0, true,
MMC_BLK_DATA_AREA_MAIN);
return err;