summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/usb/otg/tegra-otg.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/usb/otg/tegra-otg.c b/drivers/usb/otg/tegra-otg.c
index 35dea5a8ca3c..ecb88acf8d24 100644
--- a/drivers/usb/otg/tegra-otg.c
+++ b/drivers/usb/otg/tegra-otg.c
@@ -545,10 +545,13 @@ static int tegra_otg_suspend(struct device *dev)
struct tegra_otg_data *tegra_otg = platform_get_drvdata(pdev);
struct otg_transceiver *otg = &tegra_otg->otg;
enum usb_otg_state from = otg->state;
+ unsigned int val;
+
/* store the interupt enable for cable ID and VBUS */
clk_enable(tegra_otg->clk);
tegra_otg->intr_reg_data = readl(tegra_otg->regs + USB_PHY_WAKEUP);
- writel(0, (tegra_otg->regs + USB_PHY_WAKEUP));
+ val = tegra_otg->intr_reg_data & ~(USB_ID_INT_EN | USB_VBUS_INT_EN);
+ writel(val, (tegra_otg->regs + USB_PHY_WAKEUP));
clk_disable(tegra_otg->clk);
if (from == OTG_STATE_B_PERIPHERAL && otg->gadget) {