Loading Documentation/devicetree/bindings/usb/dwc3.txt +1 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ Optional properties: - snps,num-gsi-evt-buffs: If present, specifies number of GSI based hardware accelerated event buffers. 1 event buffer is needed per h/w accelerated endpoint. - xhci-imod-value: Interrupt moderation interval for host mode (in increments of 250nsec). - usb-core-id: Differentiates between different controllers present on a device. This is usually a subnode to DWC3 glue to which it is connected. Loading drivers/usb/core/hcd.c +10 −0 Original line number Diff line number Diff line Loading @@ -2264,6 +2264,16 @@ usb_hcd_get_xfer_ring_dma_addr(struct usb_device *udev, return hcd->driver->get_xfer_ring_dma_addr(hcd, udev, ep); } int usb_hcd_get_controller_id(struct usb_device *udev) { struct usb_hcd *hcd = bus_to_hcd(udev->bus); if (!HCD_RH_RUNNING(hcd)) return -EINVAL; return hcd->driver->get_core_id(hcd); } #ifdef CONFIG_PM int hcd_bus_suspend(struct usb_device *rhdev, pm_message_t msg) Loading drivers/usb/core/usb.c +9 −0 Original line number Diff line number Diff line Loading @@ -717,6 +717,15 @@ dma_addr_t usb_get_xfer_ring_dma_addr(struct usb_device *dev, } EXPORT_SYMBOL(usb_get_xfer_ring_dma_addr); int usb_get_controller_id(struct usb_device *dev) { if (dev->state == USB_STATE_NOTATTACHED) return -EINVAL; return usb_hcd_get_controller_id(dev); } EXPORT_SYMBOL(usb_get_controller_id); /*-------------------------------------------------------------------*/ /* * __usb_get_extra_descriptor() finds a descriptor of specific type in the Loading drivers/usb/host/xhci-plat.c +4 −0 Original line number Diff line number Diff line Loading @@ -233,6 +233,10 @@ static int xhci_plat_probe(struct platform_device *pdev) hcd_to_bus(xhci->shared_hcd)->skip_resume = true; if (device_property_read_u32(pdev->dev.parent, "usb-core-id", &xhci->core_id)) xhci->core_id = -EINVAL; hcd->usb_phy = devm_usb_get_phy_by_phandle(&pdev->dev, "usb-phy", 0); if (IS_ERR(hcd->usb_phy)) { ret = PTR_ERR(hcd->usb_phy); Loading drivers/usb/host/xhci.h +2 −0 Original line number Diff line number Diff line Loading @@ -1519,6 +1519,8 @@ struct xhci_hcd { /* secondary interrupter */ struct xhci_intr_reg __iomem **sec_ir_set; int core_id; /* Cached register copies of read-only HC data */ __u32 hcs_params1; __u32 hcs_params2; Loading Loading
Documentation/devicetree/bindings/usb/dwc3.txt +1 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ Optional properties: - snps,num-gsi-evt-buffs: If present, specifies number of GSI based hardware accelerated event buffers. 1 event buffer is needed per h/w accelerated endpoint. - xhci-imod-value: Interrupt moderation interval for host mode (in increments of 250nsec). - usb-core-id: Differentiates between different controllers present on a device. This is usually a subnode to DWC3 glue to which it is connected. Loading
drivers/usb/core/hcd.c +10 −0 Original line number Diff line number Diff line Loading @@ -2264,6 +2264,16 @@ usb_hcd_get_xfer_ring_dma_addr(struct usb_device *udev, return hcd->driver->get_xfer_ring_dma_addr(hcd, udev, ep); } int usb_hcd_get_controller_id(struct usb_device *udev) { struct usb_hcd *hcd = bus_to_hcd(udev->bus); if (!HCD_RH_RUNNING(hcd)) return -EINVAL; return hcd->driver->get_core_id(hcd); } #ifdef CONFIG_PM int hcd_bus_suspend(struct usb_device *rhdev, pm_message_t msg) Loading
drivers/usb/core/usb.c +9 −0 Original line number Diff line number Diff line Loading @@ -717,6 +717,15 @@ dma_addr_t usb_get_xfer_ring_dma_addr(struct usb_device *dev, } EXPORT_SYMBOL(usb_get_xfer_ring_dma_addr); int usb_get_controller_id(struct usb_device *dev) { if (dev->state == USB_STATE_NOTATTACHED) return -EINVAL; return usb_hcd_get_controller_id(dev); } EXPORT_SYMBOL(usb_get_controller_id); /*-------------------------------------------------------------------*/ /* * __usb_get_extra_descriptor() finds a descriptor of specific type in the Loading
drivers/usb/host/xhci-plat.c +4 −0 Original line number Diff line number Diff line Loading @@ -233,6 +233,10 @@ static int xhci_plat_probe(struct platform_device *pdev) hcd_to_bus(xhci->shared_hcd)->skip_resume = true; if (device_property_read_u32(pdev->dev.parent, "usb-core-id", &xhci->core_id)) xhci->core_id = -EINVAL; hcd->usb_phy = devm_usb_get_phy_by_phandle(&pdev->dev, "usb-phy", 0); if (IS_ERR(hcd->usb_phy)) { ret = PTR_ERR(hcd->usb_phy); Loading
drivers/usb/host/xhci.h +2 −0 Original line number Diff line number Diff line Loading @@ -1519,6 +1519,8 @@ struct xhci_hcd { /* secondary interrupter */ struct xhci_intr_reg __iomem **sec_ir_set; int core_id; /* Cached register copies of read-only HC data */ __u32 hcs_params1; __u32 hcs_params2; Loading