path: root/drivers/usb/core
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
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')
2 files changed, 10 insertions, 1 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;
diff --git a/drivers/usb/core/usb.h b/drivers/usb/core/usb.h
index cd882203ad3..12276501064 100644
--- a/drivers/usb/core/usb.h
+++ b/drivers/usb/core/usb.h
@@ -147,4 +147,3 @@ extern void usb_notify_add_device(struct usb_device *udev);
extern void usb_notify_remove_device(struct usb_device *udev);
extern void usb_notify_add_bus(struct usb_bus *ubus);
extern void usb_notify_remove_bus(struct usb_bus *ubus);