From rmk+greg=kroah.com@arm.linux.org.uk Thu Jan 5 06:31:53 2006 From: Russell King CC: Greg K-H Subject: [CFT 3/29] Add ecard_bus_type probe/remove/shutdown methods Date: Thu, 05 Jan 2006 14:30:57 +0000 Message-ID: <20060105142951.13.03@flint.arm.linux.org.uk> Signed-off-by: Russell King Signed-off-by: Greg Kroah-Hartman --- arch/arm/kernel/ecard.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) --- gregkh-2.6.orig/arch/arm/kernel/ecard.c +++ gregkh-2.6/arch/arm/kernel/ecard.c @@ -1147,9 +1147,11 @@ static void ecard_drv_shutdown(struct de struct ecard_driver *drv = ECARD_DRV(dev->driver); struct ecard_request req; - if (drv->shutdown) - drv->shutdown(ec); - ecard_release(ec); + if (dev->driver) { + if (drv->shutdown) + drv->shutdown(ec); + ecard_release(ec); + } /* * If this card has a loader, call the reset handler. @@ -1164,9 +1166,6 @@ static void ecard_drv_shutdown(struct de int ecard_register_driver(struct ecard_driver *drv) { drv->drv.bus = &ecard_bus_type; - drv->drv.probe = ecard_drv_probe; - drv->drv.remove = ecard_drv_remove; - drv->drv.shutdown = ecard_drv_shutdown; return driver_register(&drv->drv); } @@ -1195,6 +1194,9 @@ struct bus_type ecard_bus_type = { .name = "ecard", .dev_attrs = ecard_dev_attrs, .match = ecard_match, + .probe = ecard_drv_probe, + .remove = ecard_drv_remove, + .shutdown = ecard_drv_shutdown, }; static int ecard_bus_init(void)