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

Reply via email to