Re: [RFC PATCH 0/1] Intel xhci: rework EHCI/xHCI port switching

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

 



On Wed, Jun 12, 2013 at 07:11:22PM +0300, Mathias Nyman wrote:
> Hi
> 
> This is a proposal for simplifying the EHCI/xHCI portswitching
> 
> It's a lot simpler than before. There's now only one funtion for enabling xhci ports,
> and we only once walk through pci devices to find Intel EHCI and xHCI controllers
> 
> In pci-quirks we set a flag if both intel xHCI and EHCI controllers are found,
> and then call the usb_enable_intel_xhci_ports() function.
> EHCI and xHCI resume functions call the same usb_enable_intel_xhci_ports(), without
> walking the pci devices.
> 
> On the downside this uses global variables, one xhci pointer and one boolean flag.
> The xhci pointer is set only once in pci-quirk and it's assumed that xHCI device is not removed,
> so there's a possibility this pointer can go stale. 
> Also we can only handle one Intel xHCI host in the system.
> 
> I'll gladly rework this to remove the global varaibles, but I could use some input on what would be
> the right way to do it. I can only come up with two options:
> 
> 1. walk the pci devices every time in ECHI and xHCI resume functions and search for a "companion"
> controller.
> 
> or
> 
> 2. Save a pointer to a "companion" xHCI controller somewhere in EHCI structures, and vice versa.
> (or somehow re-use the hs_companion pointer in struct usb_bus). 
> Those pointers can only be set after hcd's are initialized, so we need to walk the pci devices once in
> pci-quirks, and once later when creating the hcd's to set the pointers

I think this approach is better, but I want Alan's opinion on it.  Alan?

Sarah Sharp

> 
> Mathias Nyman (1):
>   Intel xhci: refactor EHCI/xHCI port switching
> 
>  drivers/usb/host/ehci-pci.c   |   15 +----------
>  drivers/usb/host/pci-quirks.c |   55 ++++++++++++++++++----------------------
>  drivers/usb/host/pci-quirks.h |    3 +-
>  drivers/usb/host/xhci-pci.c   |    5 ++-
>  4 files changed, 30 insertions(+), 48 deletions(-)
> 
> -- 
> 1.7.4.1
> 
--
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




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux