diff options
author | David S. Miller <davem@davemloft.net> | 2011-08-20 19:39:12 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-08-20 19:39:12 +0200 |
commit | 823dcd2506fa369aeb8cbd26da5663efe2fda9a9 (patch) | |
tree | 853b3e3c05f0b9ee1b5df8464db19b7acc57150c /drivers/usb/host/ehci-hub.c | |
parent | tg3: Update version to 3.120 (diff) | |
parent | ipv6: Fix ipv6_getsockopt for IPV6_2292PKTOPTIONS (diff) | |
download | linux-823dcd2506fa369aeb8cbd26da5663efe2fda9a9.tar.xz linux-823dcd2506fa369aeb8cbd26da5663efe2fda9a9.zip |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net
Diffstat (limited to 'drivers/usb/host/ehci-hub.c')
-rw-r--r-- | drivers/usb/host/ehci-hub.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c index bf2c8f65e1ae..e051b30c1847 100644 --- a/drivers/usb/host/ehci-hub.c +++ b/drivers/usb/host/ehci-hub.c @@ -1046,7 +1046,19 @@ static int ehci_hub_control ( if (!selector || selector > 5) goto error; ehci_quiesce(ehci); + + /* Put all enabled ports into suspend */ + while (ports--) { + u32 __iomem *sreg = + &ehci->regs->port_status[ports]; + + temp = ehci_readl(ehci, sreg) & ~PORT_RWC_BITS; + if (temp & PORT_PE) + ehci_writel(ehci, temp | PORT_SUSPEND, + sreg); + } ehci_halt(ehci); + temp = ehci_readl(ehci, status_reg); temp |= selector << 16; ehci_writel(ehci, temp, status_reg); break; |