On Fri, 2008-01-25 at 16:59 +1100, Michael Ellerman wrote: > Although of_platform_device's can have a shutdown routine, at the moment > the bus code doesn't actually call it. So add the required glue to > hook the shutdown routine. > > Signed-off-by: Michael Ellerman <michael@xxxxxxxxxxxxxx> Acked-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> > --- > drivers/of/platform.c | 10 ++++++++++ > 1 files changed, 10 insertions(+), 0 deletions(-) > > > CC various folks who've written/touched of_platform_drivers which already > have shutdown routines. These routines have never been called so they're > about to get their first testing. > > diff --git a/drivers/of/platform.c b/drivers/of/platform.c > index b47bb2d..ca09a63 100644 > --- a/drivers/of/platform.c > +++ b/drivers/of/platform.c > @@ -85,6 +85,15 @@ static int of_platform_device_resume(struct device * dev) > return error; > } > > +static void of_platform_device_shutdown(struct device *dev) > +{ > + struct of_device *of_dev = to_of_device(dev); > + struct of_platform_driver *drv = to_of_platform_driver(dev->driver); > + > + if (dev->driver && drv->shutdown) > + drv->shutdown(of_dev); > +} > + > int of_bus_type_init(struct bus_type *bus, const char *name) > { > bus->name = name; > @@ -93,6 +102,7 @@ int of_bus_type_init(struct bus_type *bus, const char *name) > bus->remove = of_platform_device_remove; > bus->suspend = of_platform_device_suspend; > bus->resume = of_platform_device_resume; > + bus->shutdown = of_platform_device_shutdown; > return bus_register(bus); > } > - To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html