From: Geert Uytterhoeven Date: Mon, 12 Feb 2007 08:55:15 +0000 (-0800) Subject: [PATCH] ps3: add shutdown to virtual uart port driver framework X-Git-Tag: v3.12-rc1~31520^2~33 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5b8e8ee6c65a34d8aafaeb8e2eaa97e496c2567c;p=kernel%2Fkernel-generic.git [PATCH] ps3: add shutdown to virtual uart port driver framework PS3: Add a shutdown method to the PS3's virtual uart port driver framework Signed-off-by: Geert Uytterhoeven Signed-off-by: Geoff Levand Cc: James Simmons Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/drivers/ps3/vuart.c b/drivers/ps3/vuart.c index a72da8f..ef8fd4c 100644 --- a/drivers/ps3/vuart.c +++ b/drivers/ps3/vuart.c @@ -867,6 +867,22 @@ static int ps3_vuart_remove(struct device *_dev) return 0; } +static void ps3_vuart_shutdown(struct device *_dev) +{ + struct ps3_vuart_port_device *dev = to_ps3_vuart_port_device(_dev); + struct ps3_vuart_port_driver *drv = + to_ps3_vuart_port_driver(_dev->driver); + + dev_dbg(&dev->core, "%s:%d: %s\n", __func__, __LINE__, + dev->core.bus_id); + + if (drv->shutdown) + drv->shutdown(dev); + else + dev_dbg(&dev->core, "%s:%d: %s no shutdown method\n", __func__, + __LINE__, dev->core.bus_id); +} + /** * ps3_vuart - The vuart instance. * @@ -878,6 +894,7 @@ struct bus_type ps3_vuart = { .match = ps3_vuart_match, .probe = ps3_vuart_probe, .remove = ps3_vuart_remove, + .shutdown = ps3_vuart_shutdown, }; int __init ps3_vuart_init(void) diff --git a/drivers/ps3/vuart.h b/drivers/ps3/vuart.h index 11c421c..2cbf728 100644 --- a/drivers/ps3/vuart.h +++ b/drivers/ps3/vuart.h @@ -30,6 +30,7 @@ struct ps3_vuart_port_driver { struct device_driver core; int (*probe)(struct ps3_vuart_port_device *); int (*remove)(struct ps3_vuart_port_device *); + void (*shutdown)(struct ps3_vuart_port_device *); int (*tx_event)(struct ps3_vuart_port_device *dev); int (*rx_event)(struct ps3_vuart_port_device *dev); int (*disconnect_event)(struct ps3_vuart_port_device *dev);