diff mbox

mmc: core: Assign a fixed number to MMC devices

Message ID E1bfRRI-0006Dz-Bs@bombadil.infradead.org (mailing list archive)
State New, archived
Headers show

Commit Message

Jean-Francois Moine Sept. 1, 2016, 9:40 a.m. UTC
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(-)
diff mbox

Patch

diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c
index 98f25ff..38b94ce 100644
--- a/drivers/mmc/core/host.c
+++ b/drivers/mmc/core/host.c
@@ -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) {