[PATCH] Add logic module bus_type probe/remove methods
authorRussell King <rmk@arm.linux.org.uk>
Thu, 5 Jan 2006 14:33:35 +0000 (14:33 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 13 Jan 2006 19:26:05 +0000 (11:26 -0800)
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/arm/mach-integrator/lm.c

index 5b41e3a724e1d34f35aacd1a94372781a2c4710a..622cdc4212dd6f096ca7880f85d42334f0581da1 100644 (file)
@@ -22,20 +22,6 @@ static int lm_match(struct device *dev, struct device_driver *drv)
        return 1;
 }
 
-static struct bus_type lm_bustype = {
-       .name           = "logicmodule",
-       .match          = lm_match,
-//     .suspend        = lm_suspend,
-//     .resume         = lm_resume,
-};
-
-static int __init lm_init(void)
-{
-       return bus_register(&lm_bustype);
-}
-
-postcore_initcall(lm_init);
-
 static int lm_bus_probe(struct device *dev)
 {
        struct lm_device *lmdev = to_lm_device(dev);
@@ -49,16 +35,30 @@ static int lm_bus_remove(struct device *dev)
        struct lm_device *lmdev = to_lm_device(dev);
        struct lm_driver *lmdrv = to_lm_driver(dev->driver);
 
-       lmdrv->remove(lmdev);
+       if (lmdrv->remove)
+               lmdrv->remove(lmdev);
        return 0;
 }
 
+static struct bus_type lm_bustype = {
+       .name           = "logicmodule",
+       .match          = lm_match,
+       .probe          = lm_bus_probe,
+       .remove         = lm_bus_remove,
+//     .suspend        = lm_bus_suspend,
+//     .resume         = lm_bus_resume,
+};
+
+static int __init lm_init(void)
+{
+       return bus_register(&lm_bustype);
+}
+
+postcore_initcall(lm_init);
+
 int lm_driver_register(struct lm_driver *drv)
 {
        drv->drv.bus = &lm_bustype;
-       drv->drv.probe = lm_bus_probe;
-       drv->drv.remove = lm_bus_remove;
-
        return driver_register(&drv->drv);
 }