@@ -346,6 +346,14 @@ struct mmc_host *mmc_alloc_host(int extra, struct device *dev)
{
int err;
struct mmc_host *host;
+ int id = 0;
+
+ /* use DT label as mmc index */
+ if (dev->of_node) {
+ id = of_alias_get_id(dev->of_node, "mmc");
+ if (id < 0)
+ id = 0;
+ }
host = kzalloc(sizeof(struct mmc_host) + extra, GFP_KERNEL);
if (!host)
@@ -361,7 +369,7 @@ again:
}
spin_lock(&mmc_host_lock);
- err = ida_get_new(&mmc_host_ida, &host->index);
+ err = ida_get_new_above(&mmc_host_ida, id, &host->index);
spin_unlock(&mmc_host_lock);
if (err == -EAGAIN) {
This patch prevents MMC device numbering to change at each reboot by using DT labels. Signed-off-by: Jean-Francois Moine <moinejf@free.fr> --- drivers/mmc/core/host.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)