>> >> 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. > >Well was this patch accepted yet? Is it in a tree somewhere? Yes, both langwell_otg (Intel Langwell OTG Transceiver driver) and langwell_udc (Intel Langwell Device controller driver) are accepted. > >> >> Signed-off-by: Jacob Pan <jacob.jun.pan@xxxxxxxxx> >> Signed-off-by: Alek Du <alek.du@xxxxxxxxx> >> Signed-off-by: Alan Cox <alan@xxxxxxxxxxxxxxx> >> Signed-off-by: Hao Wu <hao.wu@xxxxxxxxx> >> --- >> drivers/usb/core/hub.c | 10 ++ >> drivers/usb/core/usb.h | 1 - >> drivers/usb/host/ehci-hcd.c | 19 ++++ >> drivers/usb/host/ehci-hub.c | 13 ++- >> drivers/usb/host/ehci-langwell-pci.c | 195 >++++++++++++++++++++++++++++++++++ >> drivers/usb/host/ehci-pci.c | 15 +++ >> drivers/usb/host/ehci.h | 6 + >> include/linux/usb/hcd.h | 6 + >> 8 files changed, 262 insertions(+), 3 deletions(-) >> create mode 100644 drivers/usb/host/ehci-langwell-pci.c >> >> diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c >> index 27115b4..4e14c00 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). >> */ >> device_del(&udev->dev); >> + 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; > >Why would we need to create a new callback for every device added and >removed? Why do you need this and why doesn't the existing functions to >do this type of thing work for you? It is needed to do notification for USB device connect/disconnect events to transceiver driver in OTG case. Those events are important for OTG state machine maintained in transceiver driver. > >> diff --git a/drivers/usb/core/usb.h b/drivers/usb/core/usb.h >> index cd88220..1227650 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); >> - > >I really don't think you needed to make this change, so I'm guessing you >really didn't review this patch well. Not good. Will remove it. Thanks Hao -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html