Re: [PATCH] USB:xhci: fix port switching on PantherPoint

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Feb 03, 2012 at 12:22:43PM +0100, Oliver Neukum wrote:
> From be9bdcf88b2974cfe95c1afea327b46135b65391 Mon Sep 17 00:00:00 2001
> From: Oliver Neukum <oliver@xxxxxxxxxx>
> Date: Fri, 3 Feb 2012 12:01:12 +0100
> Subject: [PATCH] USB:xhci: fix port switching on PantherPoint
> 
> The quirks of XHCI were called to early so that the
> PCI device hadn't been enabled and the quirk handler bailed out.
> The fix is to call it later.

Are the PCI fixups called before any PCI probe function?  I think this
patch is fine, but if the moved function now runs after the EHCI probe,
the EHCI host may notice disconnects from the ports being switched over
to xHCI.

Sarah Sharp

> Signed-off-by: Oliver Neukum <oneukum@xxxxxxx>
> ---
>  drivers/usb/host/pci-quirks.c |    9 +++++++--
>  1 files changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c
> index caf8742..b49e3d0 100644
> --- a/drivers/usb/host/pci-quirks.c
> +++ b/drivers/usb/host/pci-quirks.c
> @@ -873,7 +873,12 @@ static void __devinit quirk_usb_early_handoff(struct pci_dev *pdev)
>  		quirk_usb_handoff_ohci(pdev);
>  	else if (pdev->class == PCI_CLASS_SERIAL_USB_EHCI)
>  		quirk_usb_disable_ehci(pdev);
> -	else if (pdev->class == PCI_CLASS_SERIAL_USB_XHCI)
> -		quirk_usb_handoff_xhci(pdev);
>  }
>  DECLARE_PCI_FIXUP_FINAL(PCI_ANY_ID, PCI_ANY_ID, quirk_usb_early_handoff);
> +
> +static void __devinit quirk_xhci_early_handoff(struct pci_dev *pdev)
> +{
> +	 if (pdev->class == PCI_CLASS_SERIAL_USB_XHCI)
> +                quirk_usb_handoff_xhci(pdev);
> +}
> +DECLARE_PCI_FIXUP_ENABLE(PCI_ANY_ID, PCI_ANY_ID, quirk_xhci_early_handoff);
> -- 
> 1.7.1
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux