diff options
author | Tom Rini <trini@konsulko.com> | 2016-01-21 11:49:49 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2016-01-21 11:49:49 -0500 |
commit | 6905f4d3c7be46fed4859f51f0a8f9a1107c22e7 (patch) | |
tree | dd2fb0d12e56b3d69560b26a11ee0f0130ea0a5a /drivers/mmc | |
parent | 45fe3809b9923b92f221d70eb45ae071059fd5e0 (diff) | |
parent | 747440d0fa95f2205a8fcef49b6c7845700b6246 (diff) | |
download | u-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.c | 20 |
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; |