summaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorLi Jun2015-10-16 07:53:20 +0200
committerPeter Chen2015-10-22 03:36:23 +0200
commit851ce932242d5a79bef8fe625fce37cc2f27033e (patch)
treeb292dc4aebbf13d4ffa0c5d69aad66e9c43110ff /drivers/usb
parentchipidea: ci_hdrc_pci: use PCI_VDEVICE() instead of PCI_DEVICE() (diff)
downloadkernel-qcow2-linux-851ce932242d5a79bef8fe625fce37cc2f27033e.tar.gz
kernel-qcow2-linux-851ce932242d5a79bef8fe625fce37cc2f27033e.tar.xz
kernel-qcow2-linux-851ce932242d5a79bef8fe625fce37cc2f27033e.zip
usb: chipidea: otg: don't wait vbus drops below BSV when starts host
Some HW design may use ID pin state to control vbus for otg port, so before host role start, the vbus is already turned on, in this case, we do not need wait vbus dropping below BSV. Signed-off-by: Li Jun <jun.li@freescale.com> Signed-off-by: Peter Chen <peter.chen@freescale.com>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/chipidea/otg.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/usb/chipidea/otg.c b/drivers/usb/chipidea/otg.c
index ab4bd0c2d4ef..45f86da1d6d3 100644
--- a/drivers/usb/chipidea/otg.c
+++ b/drivers/usb/chipidea/otg.c
@@ -114,9 +114,12 @@ static void ci_handle_id_switch(struct ci_hdrc *ci)
ci_role(ci)->name, ci->roles[role]->name);
ci_role_stop(ci);
- /* wait vbus lower than OTGSC_BSV */
- hw_wait_reg(ci, OP_OTGSC, OTGSC_BSV, 0,
- CI_VBUS_STABLE_TIMEOUT_MS);
+
+ if (role == CI_ROLE_GADGET)
+ /* wait vbus lower than OTGSC_BSV */
+ hw_wait_reg(ci, OP_OTGSC, OTGSC_BSV, 0,
+ CI_VBUS_STABLE_TIMEOUT_MS);
+
ci_role_start(ci, role);
}
}