[PATCH] mmc: core: Assign a fixed number to MMC devices
Jean-Francois Moine
moinejf at free.fr
Thu Sep 1 02:40:31 PDT 2016
This patch prevents MMC device numbering to change at each reboot
by using DT labels.
Signed-off-by: Jean-Francois Moine <moinejf at free.fr>
---
drivers/mmc/core/host.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
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) {
--
2.9.3
More information about the linux-arm-kernel
mailing list