path: root/drivers/usb/core/hub.c
diff options
authorAlek Du <alek.du@intel.com>2010-12-09 10:37:41 +0000
committerAlan Cox <alan@linux.intel.com>2010-12-09 10:37:41 +0000
commit6be72e9b54479e7a2c473bc6cc778319e5f925e3 (patch)
tree00735e849a556a9b840059df654de80af040db97 /drivers/usb/core/hub.c
parent313db3b6702f31eed174bff7104c6126c518f51e (diff)
ehci: Support for Intel Moorestown MPH and OTG host
The Intel Moorestown platform has EHCI MPH and EHCI OTG host. This patch adds PCI probe part for them. The HNP part and SRAM part will be added in another patch. This patch depends on the OTG transceive and OTG client patch from Hang Yuan that should be accepted already. Signed-off-by: Jacob Pan <jacob.jun.pan@intel.com> Signed-off-by: Alek Du <alek.du@intel.com> Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Hao Wu <hao.wu@intel.com>
Diffstat (limited to 'drivers/usb/core/hub.c')
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 27115b45edc..4e14c00c6f6 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -1549,6 +1549,14 @@ static void hub_free_dev(struct usb_device *udev)
hcd->driver->free_dev(hcd, udev);
+static void otg_notify(struct usb_device *udev, unsigned action)
+ struct usb_hcd *hcd = bus_to_hcd(udev->bus);
+ if (hcd->otg_notify)
+ hcd->otg_notify(udev, action);
* usb_disconnect - disconnect a device (usbcore-internal)
* @pdev: pointer to device being disconnected
@@ -1606,6 +1614,7 @@ void usb_disconnect(struct usb_device **pdev)
* notifier chain (used by usbfs and possibly others).
+ otg_notify(udev, USB_DEVICE_REMOVE);
/* Free the device number and delete the parent's children[]
* (or root_hub) pointer.
@@ -1829,6 +1838,7 @@ int usb_new_device(struct usb_device *udev)
dev_err(&udev->dev, "can't device_add, error %d\n", err);
goto fail;
+ otg_notify(udev, USB_DEVICE_ADD);
(void) usb_create_ep_devs(&udev->dev, &udev->ep0, udev);
return err;