summaryrefslogtreecommitdiff
path: root/drivers/usb
diff options
context:
space:
mode:
authorPeter Chen <peter.chen@freescale.com>2015-06-03 19:30:59 +0800
committerNitin Garg <nitin.garg@freescale.com>2015-09-17 09:23:25 -0500
commita6daa12e14635c1321892087cbcd8f8cdf6216f2 (patch)
treee7940d7d6a2aefd0d064479ac5670e63d9f922b1 /drivers/usb
parentb5e005266c6d2ac43fa060258e3c90c8e2d65ef9 (diff)
MLK-10994-4 usb: ehci: Keep portsc unchanging when power off port
If PORT_RWC_BITS is set, it will still be cleared by writing 1. portsc.ptw can only be changed when PHY clock is off and portsc.phcd is set, if not, the PHY will be error, so we keep portsc.ptw unchanging in this patch. Signed-off-by: Peter Chen <peter.chen@freescale.com>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/host/ehci-hcd.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index d28387f17162..e0967068c5af 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -331,7 +331,8 @@ static void ehci_turn_off_all_ports(struct ehci_hcd *ehci)
int port = HCS_N_PORTS(ehci->hcs_params);
while (port--) {
- ehci_writel(ehci, PORT_RWC_BITS,
+ u32 portsc = ehci_readl(ehci, &ehci->regs->port_status[port]);
+ ehci_writel(ehci, portsc,
&ehci->regs->port_status[port]);
spin_unlock_irq(&ehci->lock);
ehci_port_power(ehci, port, false);