Loading drivers/usb/core/message.c +2 −0 Original line number Diff line number Diff line Loading @@ -1874,6 +1874,8 @@ free_interfaces: return ret; } usb_set_device_state(dev, USB_STATE_CONFIGURED); if (dev->parent && hcd->driver->udev_enum_done) hcd->driver->udev_enum_done(hcd); if (cp->string == NULL && !(dev->quirks & USB_QUIRK_CONFIG_INTF_STRINGS)) Loading drivers/usb/host/xhci-msm-hsic.c +13 −0 Original line number Diff line number Diff line Loading @@ -1009,6 +1009,18 @@ int mxhci_hsic_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, return ret; } void mxhci_hsic_udev_enum_done(struct usb_hcd *hcd) { struct mxhci_hsic_hcd *mxhci = hcd_to_hsic(hcd->primary_hcd); if (mxhci->host_ready) { /* after device enum lower host ready gpio */ gpio_direction_output(mxhci->host_ready, 0); xhci_dbg_log_event(&dbg_hsic, NULL, "host ready set low", gpio_get_value(mxhci->host_ready)); } } static struct hc_driver mxhci_hsic_hc_driver = { .description = "xhci-hcd", .product_desc = "Qualcomm xHCI Host Controller using HSIC", Loading Loading @@ -1060,6 +1072,7 @@ static struct hc_driver mxhci_hsic_hc_driver = { .log_urb = xhci_hsic_log_urb, .set_autosuspend_delay = mxhci_hsic_set_autosuspend_delay, .udev_enum_done = mxhci_hsic_udev_enum_done, }; static ssize_t config_imod_store(struct device *pdev, Loading include/linux/usb/hcd.h +1 −0 Original line number Diff line number Diff line Loading @@ -367,6 +367,7 @@ struct hc_driver { void (*set_autosuspend_delay)(struct usb_device *); void (*reset_sof_bug_handler)(struct usb_hcd *hcd, u32 val); void (*set_autosuspend)(struct usb_hcd *hcd, int enable_autosuspend); void (*udev_enum_done)(struct usb_hcd *hcd); }; extern int usb_hcd_link_urb_to_ep(struct usb_hcd *hcd, struct urb *urb); Loading Loading
drivers/usb/core/message.c +2 −0 Original line number Diff line number Diff line Loading @@ -1874,6 +1874,8 @@ free_interfaces: return ret; } usb_set_device_state(dev, USB_STATE_CONFIGURED); if (dev->parent && hcd->driver->udev_enum_done) hcd->driver->udev_enum_done(hcd); if (cp->string == NULL && !(dev->quirks & USB_QUIRK_CONFIG_INTF_STRINGS)) Loading
drivers/usb/host/xhci-msm-hsic.c +13 −0 Original line number Diff line number Diff line Loading @@ -1009,6 +1009,18 @@ int mxhci_hsic_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, return ret; } void mxhci_hsic_udev_enum_done(struct usb_hcd *hcd) { struct mxhci_hsic_hcd *mxhci = hcd_to_hsic(hcd->primary_hcd); if (mxhci->host_ready) { /* after device enum lower host ready gpio */ gpio_direction_output(mxhci->host_ready, 0); xhci_dbg_log_event(&dbg_hsic, NULL, "host ready set low", gpio_get_value(mxhci->host_ready)); } } static struct hc_driver mxhci_hsic_hc_driver = { .description = "xhci-hcd", .product_desc = "Qualcomm xHCI Host Controller using HSIC", Loading Loading @@ -1060,6 +1072,7 @@ static struct hc_driver mxhci_hsic_hc_driver = { .log_urb = xhci_hsic_log_urb, .set_autosuspend_delay = mxhci_hsic_set_autosuspend_delay, .udev_enum_done = mxhci_hsic_udev_enum_done, }; static ssize_t config_imod_store(struct device *pdev, Loading
include/linux/usb/hcd.h +1 −0 Original line number Diff line number Diff line Loading @@ -367,6 +367,7 @@ struct hc_driver { void (*set_autosuspend_delay)(struct usb_device *); void (*reset_sof_bug_handler)(struct usb_hcd *hcd, u32 val); void (*set_autosuspend)(struct usb_hcd *hcd, int enable_autosuspend); void (*udev_enum_done)(struct usb_hcd *hcd); }; extern int usb_hcd_link_urb_to_ep(struct usb_hcd *hcd, struct urb *urb); Loading