On Thu, 3 Mar 2016, Robert Dobrowolski wrote:
> On BXT platform Host Controller and Device Controller figure as
> same PCI device but with different device function. HCD should not
> pass data to Device Controller but only to Host Controllers.
> Checking if companion device is Host Controller, otherwise skip.
>
> Signed-off-by: Robert Dobrowolski
> ---
> drivers/usb/core/hcd-pci.c | 9 +
> 1 file changed, 9 insertions(+)
>
> diff --git a/drivers/usb/core/hcd-pci.c b/drivers/usb/core/hcd-pci.c
> index 9eb1cff..b8b580e 100644
> --- a/drivers/usb/core/hcd-pci.c
> +++ b/drivers/usb/core/hcd-pci.c
> @@ -74,6 +74,15 @@ static void for_each_companion(struct pci_dev *pdev,
> struct usb_hcd *hcd,
> if (companion->bus != pdev->bus ||
> PCI_SLOT(companion->devfn) != slot)
> continue;
> +
> + /*
> + * Companion device should be either UHCI,OHCI or EHCI host
> + * controller, otherwise skip.
> + */
> + if (companion->class != CL_UHCI && companion->class != CL_OHCI
> &&
> + companion->class != CL_EHCI)
> + continue;
> +
> companion_hcd = pci_get_drvdata(companion);
> if (!companion_hcd || !companion_hcd->self.root_hub)
> continue;
>
Acked-by: Alan Stern
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html