summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/mci/mci-core.c10
-rw-r--r--include/mci.h1
2 files changed, 8 insertions, 3 deletions
diff --git a/drivers/mci/mci-core.c b/drivers/mci/mci-core.c
index e29bd2ed3e..559f8abc9a 100644
--- a/drivers/mci/mci-core.c
+++ b/drivers/mci/mci-core.c
@@ -1397,9 +1397,13 @@ static int mci_card_probe(struct mci *mci)
mci->blk.dev = mci->mci_dev;
mci->blk.ops = &mci_ops;
- disknum = cdev_find_free_index("disk");
+ if (host->devname) {
+ mci->blk.cdev.name = strdup(host->devname);
+ } else {
+ disknum = cdev_find_free_index("disk");
+ mci->blk.cdev.name = asprintf("disk%d", disknum);
+ }
- mci->blk.cdev.name = asprintf("disk%d", disknum);
mci->blk.blockbits = SECTOR_SHIFT;
mci->blk.num_blocks = mci_calc_blk_cnt(mci->capacity, mci->blk.blockbits);
@@ -1409,7 +1413,7 @@ static int mci_card_probe(struct mci *mci)
goto on_error;
}
- dev_info(mci->mci_dev, "registered disk%d\n", disknum);
+ dev_info(mci->mci_dev, "registered %s\n", mci->blk.cdev.name);
/* create partitions on demand */
rc = parse_partition_table(&mci->blk);
diff --git a/include/mci.h b/include/mci.h
index db78b9cfe6..0041e2714f 100644
--- a/include/mci.h
+++ b/include/mci.h
@@ -286,6 +286,7 @@ struct mci_ios {
/** host information */
struct mci_host {
struct device_d *hw_dev; /**< the host MCI hardware device */
+ char *devname; /**< the devicename for the card, defaults to disk%d */
unsigned voltages;
unsigned host_caps; /**< Host's interface capabilities, refer MMC_VDD_* */
unsigned f_min; /**< host interface lower limit */