USB: EHCI: remove ehci_port_power() routine
This patch (as1623) removes the ehci_port_power() routine and all the places that call it. There's no reason for ehci-hcd to change the port power settings; the hub driver takes care of all that stuff. There is one exception: When the controller is resumed from hibernation or following a loss of power, the ports that are supposed to be handed over to a companion controller must be powered on first. Otherwise the handover won't work. This process is not visible to the hub driver, so it has to be handled in ehci-hcd. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
4968f95191
commit
c73cee717e
@@ -56,6 +56,19 @@ static void ehci_handover_companion_ports(struct ehci_hcd *ehci)
|
||||
if (!ehci->owned_ports)
|
||||
return;
|
||||
|
||||
/* Make sure the ports are powered */
|
||||
port = HCS_N_PORTS(ehci->hcs_params);
|
||||
while (port--) {
|
||||
if (test_bit(port, &ehci->owned_ports)) {
|
||||
reg = &ehci->regs->port_status[port];
|
||||
status = ehci_readl(ehci, reg) & ~PORT_RWC_BITS;
|
||||
if (!(status & PORT_POWER)) {
|
||||
status |= PORT_POWER;
|
||||
ehci_writel(ehci, status, reg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Give the connections some time to appear */
|
||||
msleep(20);
|
||||
|
||||
|
Reference in New Issue
Block a user