summaryrefslogtreecommitdiff
path: root/drivers/mmc
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2016-01-21 11:49:49 -0500
committerTom Rini <trini@konsulko.com>2016-01-21 11:49:49 -0500
commit6905f4d3c7be46fed4859f51f0a8f9a1107c22e7 (patch)
treedd2fb0d12e56b3d69560b26a11ee0f0130ea0a5a /drivers/mmc
parent45fe3809b9923b92f221d70eb45ae071059fd5e0 (diff)
parent747440d0fa95f2205a8fcef49b6c7845700b6246 (diff)
downloadu-boot-imx-6905f4d3c7be46fed4859f51f0a8f9a1107c22e7.zip
u-boot-imx-6905f4d3c7be46fed4859f51f0a8f9a1107c22e7.tar.gz
u-boot-imx-6905f4d3c7be46fed4859f51f0a8f9a1107c22e7.tar.bz2
Merge git://git.denx.de/u-boot-dm
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/mmc.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index e6028d5..ede5d6e 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -1780,18 +1780,28 @@ static int mmc_probe(bd_t *bis)
#elif defined(CONFIG_DM_MMC)
static int mmc_probe(bd_t *bis)
{
- int ret;
+ int ret, i;
struct uclass *uc;
- struct udevice *m;
+ struct udevice *dev;
ret = uclass_get(UCLASS_MMC, &uc);
if (ret)
return ret;
- uclass_foreach_dev(m, uc) {
- ret = device_probe(m);
+ /*
+ * Try to add them in sequence order. Really with driver model we
+ * should allow holes, but the current MMC list does not allow that.
+ * So if we request 0, 1, 3 we will get 0, 1, 2.
+ */
+ for (i = 0; ; i++) {
+ ret = uclass_get_device_by_seq(UCLASS_MMC, i, &dev);
+ if (ret == -ENODEV)
+ break;
+ }
+ uclass_foreach_dev(dev, uc) {
+ ret = device_probe(dev);
if (ret)
- printf("%s - probe failed: %d\n", m->name, ret);
+ printf("%s - probe failed: %d\n", dev->name, ret);
}
return 0;