diff options
author | Michael Grzeschik <m.grzeschik@pengutronix.de> | 2010-08-04 11:59:13 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2010-08-06 19:17:32 +0200 |
commit | b0e989f618377454fd5e7e71f69a6f4adf1b2ed3 (patch) | |
tree | 9a78873339f20002c6eee69a545d902d3e0a7c7f /drivers | |
parent | ac8066ae5e430413f8b20ab792bb3574718eda61 (diff) | |
download | barebox-b0e989f618377454fd5e7e71f69a6f4adf1b2ed3.tar.gz barebox-b0e989f618377454fd5e7e71f69a6f4adf1b2ed3.tar.xz |
ehci: add remove function
and stop the ehci controller before the kernel is trying to restart it.
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/usb/host/ehci-hcd.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index 1c266f3002..802c548ecb 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c @@ -898,6 +898,7 @@ static int ehci_probe(struct device_d *dev) ehci = xmalloc(sizeof(struct ehci_priv)); host = &ehci->host; + dev->priv = ehci; if (pdata) { ehci->flags = pdata->flags; @@ -926,9 +927,16 @@ static int ehci_probe(struct device_d *dev) return 0; } +static void ehci_remove(struct device_d *dev) +{ + struct ehci_priv *ehci = dev->priv; + ehci_halt(ehci); +} + static struct driver_d ehci_driver = { .name = "ehci", .probe = ehci_probe, + .remove = ehci_remove, }; static int ehcil_init(void) |