summaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/ehci-tegra.c
diff options
context:
space:
mode:
authorStephen Warren <swarren@nvidia.com>2012-04-25 12:31:10 -0600
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-04-25 15:15:05 -0700
commitb08765749332c54c65c1a6515c01c6eb3fc1843e (patch)
tree26334c6b2527bd56af266802ce58ae3cabcf45a2 /drivers/usb/host/ehci-tegra.c
parentaf4e1ee04026908086d7ed252db2619a8ceaa333 (diff)
downloadblackbird-op-linux-b08765749332c54c65c1a6515c01c6eb3fc1843e.tar.gz
blackbird-op-linux-b08765749332c54c65c1a6515c01c6eb3fc1843e.zip
USB: ehci-tegra: remove PORT_RWC_BITS when setting USB_PORT_FEAT_ENABLE
In the SetPortFeature/USB_PORT_FEAT_ENABLE case, ehci_hub_control() would read from status_reg, modify the value, and write the result back to status_reg. This would clear any bits in PORT_RWC_BITS that were set in the register. Fix this by masking these bits off before the write. This is logically the same change as 6d5f89c "USB: EHCI: remove PORT_RWC_BITS when clearing USB_PORT_FEAT_ENABLE", but applied to the Tegra driver rather than the USB core. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/host/ehci-tegra.c')
-rw-r--r--drivers/usb/host/ehci-tegra.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/host/ehci-tegra.c b/drivers/usb/host/ehci-tegra.c
index 43bb0a9f1f73..4c1eb61bc2fc 100644
--- a/drivers/usb/host/ehci-tegra.c
+++ b/drivers/usb/host/ehci-tegra.c
@@ -164,7 +164,7 @@ static int tegra_ehci_hub_control(
goto done;
}
- temp &= ~PORT_WKCONN_E;
+ temp &= ~(PORT_RWC_BITS | PORT_WKCONN_E);
temp |= PORT_WKDISC_E | PORT_WKOC_E;
ehci_writel(ehci, temp | PORT_SUSPEND, status_reg);
OpenPOWER on IntegriCloud