Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 63624a41 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "usb: core: Add helper function to return controller id"

parents e648f8c7 c611d784
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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.

+10 −0
Original line number Diff line number Diff line
@@ -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)
+9 −0
Original line number Diff line number Diff line
@@ -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
+4 −0
Original line number Diff line number Diff line
@@ -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);
+2 −0
Original line number Diff line number Diff line
@@ -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