Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3c519b846c4d5edf7c94d1eede42445a815bf65c Commit: 3c519b846c4d5edf7c94d1eede42445a815bf65c Parent: 6bc6cff52e0c4c4c876b1b8a5750041da61ad42b Author: Alan Stern <[EMAIL PROTECTED]> AuthorDate: Fri May 4 11:55:31 2007 -0400 Committer: Greg Kroah-Hartman <[EMAIL PROTECTED]> CommitDate: Thu Jul 12 16:29:47 2007 -0700
USB: EHCI: fix handover for designated full-speed ports This patch (as895) fixes up a loose end in the port-handover code for the USB-Persist facility. A special case occurs when a high-speed device is attached to a port which the user has designated to run at full-speed only; the port must be disabled before the handover can take place. Signed-off-by: Alan Stern <[EMAIL PROTECTED]> Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]> --- drivers/usb/host/ehci-hub.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c index 3e80de7..27291f5 100644 --- a/drivers/usb/host/ehci-hub.c +++ b/drivers/usb/host/ehci-hub.c @@ -60,11 +60,13 @@ static void ehci_handover_companion_ports(struct ehci_hcd *ehci) while (port--) { if (test_bit(port, &ehci->owned_ports)) { reg = &ehci->regs->port_status[port]; - status = ehci_readl(ehci, reg); + status = ehci_readl(ehci, reg) & ~PORT_RWC_BITS; /* Port already owned by companion? */ if (status & PORT_OWNER) clear_bit(port, &ehci->owned_ports); + else if (test_bit(port, &ehci->companion_ports)) + ehci_writel(ehci, status & ~PORT_PE, reg); else ehci_hub_control(hcd, SetPortFeature, USB_PORT_FEAT_RESET, port + 1, - To unsubscribe from this list: send the line "unsubscribe git-commits-head" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html