Message ID | 20131114172527.GD10317@atomide.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Tony, On Thu, Nov 14 2013, Tony Lindgren wrote: > Some features can be configured by the companion I2C chips, > which may not be available at the probe time. Fix the issue > by returning -EPROBE_DEFER when the MMC controller slots > are not configured. > > While at it, let's also add minimal device tree support so > omap24xx platforms can use this driver without legacy mode > since we claim to support device tree for mach-omap2 based > systems. > > Although adding the minimal device tree support is not strictly > a fix, it does remove one of the last blockers for dropping a > bunch of legacy platform data for mach-omap2. > > Cc: Chris Ball <cjb@laptop.org> > Cc: linux-mmc@vger.kernel.org > Signed-off-by: Tony Lindgren <tony@atomide.com> Feel free to merge via your tree: Acked-by: Chris Ball <cjb@laptop.org> - Chris.
--- a/drivers/mmc/host/omap.c +++ b/drivers/mmc/host/omap.c @@ -22,6 +22,7 @@ #include <linux/delay.h> #include <linux/spinlock.h> #include <linux/timer.h> +#include <linux/of.h> #include <linux/omap-dma.h> #include <linux/mmc/host.h> #include <linux/mmc/card.h> @@ -1330,7 +1331,7 @@ static int mmc_omap_probe(struct platform_device *pdev) } if (pdata->nr_slots == 0) { dev_err(&pdev->dev, "no slots\n"); - return -ENXIO; + return -EPROBE_DEFER; } res = platform_get_resource(pdev, IORESOURCE_MEM, 0); @@ -1553,6 +1554,12 @@ static int mmc_omap_resume(struct platform_device *pdev) #define mmc_omap_resume NULL #endif +#if IS_BUILTIN(CONFIG_OF) +static const struct of_device_id mmc_omap_match[] = { + { .compatible = "ti,omap2420-mmc", }, + { }, +}; +#endif static struct platform_driver mmc_omap_driver = { .probe = mmc_omap_probe, .remove = mmc_omap_remove, @@ -1561,6 +1568,7 @@ static struct platform_driver mmc_omap_driver = { .driver = { .name = DRIVER_NAME, .owner = THIS_MODULE, + .of_match_table = of_match_ptr(mmc_omap_match), }, };