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: Felipe Balbi <balbi@ti.com> Signed-off-by: Venkatraman S <svenkatr@ti.com> Signed-off-by: Chris Ball <cjb@laptop.org>
This commit is contained in:
parent
927ce944ae
commit
efa25fd3a3
1 changed files with 5 additions and 4 deletions
|
@ -1785,7 +1785,7 @@ static inline struct omap_mmc_platform_data
|
|||
}
|
||||
#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 mmc_host *mmc;
|
||||
|
@ -2036,7 +2036,7 @@ static int __init omap_hsmmc_probe(struct platform_device *pdev)
|
|||
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 resource *res;
|
||||
|
@ -2194,7 +2194,8 @@ static struct dev_pm_ops omap_hsmmc_dev_pm_ops = {
|
|||
};
|
||||
|
||||
static struct platform_driver omap_hsmmc_driver = {
|
||||
.remove = omap_hsmmc_remove,
|
||||
.probe = omap_hsmmc_probe,
|
||||
.remove = __devexit_p(omap_hsmmc_remove),
|
||||
.driver = {
|
||||
.name = DRIVER_NAME,
|
||||
.owner = THIS_MODULE,
|
||||
|
@ -2206,7 +2207,7 @@ static struct platform_driver omap_hsmmc_driver = {
|
|||
static int __init omap_hsmmc_init(void)
|
||||
{
|
||||
/* 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)
|
||||
|
|
Loading…
Reference in a new issue