summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Cherry <tcherry@nvidia.com>2012-05-29 15:54:57 -0700
committerThomas Cherry <tcherry@nvidia.com>2012-05-29 19:52:08 -0700
commitd92da78335899834f8f667eb7c865aaf47bdff48 (patch)
treebf2d3f6297e48650384ed5ba1e0d96d688565667
parenta168c03bd97fd9761218779623db0cec09fa8f4a (diff)
usb: otg: tegra: change logic for 'from' in irq_work
Change-Id: I8e23c1d1afd67e5b7456d63b0aa2db254c6434cf Signed-off-by: Tom Cherry <tcherry@nvidia.com> Reviewed-on: http://git-master/r/105211
-rw-r--r--drivers/usb/otg/tegra-otg.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/usb/otg/tegra-otg.c b/drivers/usb/otg/tegra-otg.c
index d95d238fd9d6..f72e2225e7c7 100644
--- a/drivers/usb/otg/tegra-otg.c
+++ b/drivers/usb/otg/tegra-otg.c
@@ -288,6 +288,15 @@ static void irq_work(struct work_struct *work)
else
to = OTG_STATE_A_SUSPEND;
+ if (from != OTG_STATE_A_HOST) {
+ if (tegra->int_status & USB_VBUS_INT_STATUS) {
+ if (status & USB_VBUS_STATUS)
+ to = OTG_STATE_B_PERIPHERAL;
+ else
+ to = OTG_STATE_A_SUSPEND;
+ }
+ }
+
spin_unlock_irqrestore(&tegra->lock, flags);
tegra_change_otg_state(tegra, to);
clk_disable(tegra->clk);