diff options
author | Tom Cherry <tcherry@nvidia.com> | 2012-05-29 15:54:57 -0700 |
---|---|---|
committer | Thomas Cherry <tcherry@nvidia.com> | 2012-05-29 19:52:08 -0700 |
commit | d92da78335899834f8f667eb7c865aaf47bdff48 (patch) | |
tree | bf2d3f6297e48650384ed5ba1e0d96d688565667 | |
parent | a168c03bd97fd9761218779623db0cec09fa8f4a (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.c | 9 |
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); |