Commit efa25fd3 authored by Felipe Balbi's avatar Felipe Balbi Committed by Chris Ball

mmc: omap_hsmmc: make it behave well as a module

If we put probe() on __init section, that will never work for multiple
module insertions/removals.

In order to make it work properly, move probe to __devinit section and
use platform_driver_register() instead of platform_driver_probe().
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
Signed-off-by: default avatarVenkatraman S <svenkatr@ti.com>
Signed-off-by: default avatarChris Ball <cjb@laptop.org>
parent 927ce944
...@@ -1785,7 +1785,7 @@ static inline struct omap_mmc_platform_data ...@@ -1785,7 +1785,7 @@ static inline struct omap_mmc_platform_data
} }
#endif #endif
static int __init omap_hsmmc_probe(struct platform_device *pdev) static int __devinit omap_hsmmc_probe(struct platform_device *pdev)
{ {
struct omap_mmc_platform_data *pdata = pdev->dev.platform_data; struct omap_mmc_platform_data *pdata = pdev->dev.platform_data;
struct mmc_host *mmc; struct mmc_host *mmc;
...@@ -2036,7 +2036,7 @@ static int __init omap_hsmmc_probe(struct platform_device *pdev) ...@@ -2036,7 +2036,7 @@ static int __init omap_hsmmc_probe(struct platform_device *pdev)
return ret; return ret;
} }
static int omap_hsmmc_remove(struct platform_device *pdev) static int __devexit omap_hsmmc_remove(struct platform_device *pdev)
{ {
struct omap_hsmmc_host *host = platform_get_drvdata(pdev); struct omap_hsmmc_host *host = platform_get_drvdata(pdev);
struct resource *res; struct resource *res;
...@@ -2194,7 +2194,8 @@ static struct dev_pm_ops omap_hsmmc_dev_pm_ops = { ...@@ -2194,7 +2194,8 @@ static struct dev_pm_ops omap_hsmmc_dev_pm_ops = {
}; };
static struct platform_driver omap_hsmmc_driver = { static struct platform_driver omap_hsmmc_driver = {
.remove = omap_hsmmc_remove, .probe = omap_hsmmc_probe,
.remove = __devexit_p(omap_hsmmc_remove),
.driver = { .driver = {
.name = DRIVER_NAME, .name = DRIVER_NAME,
.owner = THIS_MODULE, .owner = THIS_MODULE,
...@@ -2206,7 +2207,7 @@ static struct platform_driver omap_hsmmc_driver = { ...@@ -2206,7 +2207,7 @@ static struct platform_driver omap_hsmmc_driver = {
static int __init omap_hsmmc_init(void) static int __init omap_hsmmc_init(void)
{ {
/* Register the MMC driver */ /* Register the MMC driver */
return platform_driver_probe(&omap_hsmmc_driver, omap_hsmmc_probe); return platform_driver_register(&omap_hsmmc_driver);
} }
static void __exit omap_hsmmc_cleanup(void) static void __exit omap_hsmmc_cleanup(void)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment