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.dobrowol...@intel.com>
> ---
>  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 <st...@rowland.harvard.edu>

--
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

Reply via email to