devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] mmc: read alias from device-tree if probing via of.
@ 2015-10-02 16:36 Ben Dooks
  0 siblings, 0 replies; only message in thread
From: Ben Dooks @ 2015-10-02 16:36 UTC (permalink / raw)
  To: linux-kernel, ulf.hansson, linux-mmc, linux-kernel, kejia.hu
  Cc: devicetree, Ben Dooks

The mmc host controller fails to check for the presence
of an aliases entry in the device tree when creating a
new mmc host. This means that  mmc bus numbers are not
as specified in the aliases node.

For example, the following on an imx6 would make mmc0
the second sdhci, and mmc2 the first sdhci:

aliases {
	mmc0 = &usdhc2;
	mmc2 = &usdhc0;
}

Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
Tested-by: Kejia Hu <kejia.hu@codethink.co.uk>
---
 drivers/mmc/core/host.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c
index abd933b..3bed4d0 100644
--- a/drivers/mmc/core/host.c
+++ b/drivers/mmc/core/host.c
@@ -561,7 +561,11 @@ struct mmc_host *mmc_alloc_host(int extra, struct device *dev)
 	host->rescan_disable = 1;
 	idr_preload(GFP_KERNEL);
 	spin_lock(&mmc_host_lock);
-	err = idr_alloc(&mmc_host_idr, host, 0, 0, GFP_NOWAIT);
+	err = of_alias_get_id(dev->of_node, "mmc");
+	if (err >= 0)
+		err = idr_alloc(&mmc_host_idr, host, err, err+1, GFP_NOWAIT);
+	if (err < 0)
+		err = idr_alloc(&mmc_host_idr, host, 0, 0, GFP_NOWAIT);
 	if (err >= 0)
 		host->index = err;
 	spin_unlock(&mmc_host_lock);
-- 
2.5.3


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2015-10-02 16:36 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-02 16:36 [PATCH] mmc: read alias from device-tree if probing via of Ben Dooks

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).