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 <robert.dobrowolski@xxxxxxxxx> > --- > 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 <stern@xxxxxxxxxxxxxxxxxxx> -- 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