[PATCH 04/21] usb: chipidea: Only read/write OTGSC from one place
From: Peter Chen <hidden>
Date: 2016-06-28 09:43:07
Also in:
linux-arm-msm, lkml
On Mon, Jun 27, 2016 at 12:07:54PM -0700, Stephen Boyd wrote:
Quoting Jun Li (2016-06-27 01:04:39)quoted
quoted
diff --git a/drivers/usb/chipidea/otg.c b/drivers/usb/chipidea/otg.c index03b6743461d1..763a8332b009 100644--- a/drivers/usb/chipidea/otg.c +++ b/drivers/usb/chipidea/otg.c@@ -104,7 +104,32 @@ void ci_handle_vbus_change(struct ci_hdrc *ci) usb_gadget_vbus_disconnect(&ci->gadget); } -#define CI_VBUS_STABLE_TIMEOUT_MS 5000 +/** + * Sometimes, it needs to wait register value before going on. + * Eg, when switch to device mode, the vbus value should be lower + * than OTGSC_BSV before connects to host.This should be updated since this API is dedicated for BSV now.Ok I've updated it to say: When we switch to device mode, the vbus value should be lower than OTGSC_BSV before connecting to host.quoted
quoted
+ * + * @ci: the controller + * + * This function returns an error code if timeout */ static int +hw_wait_otgsc_bsv(struct ci_hdrc *ci) { + unsigned long elapse = jiffies + msecs_to_jiffies(5000); + u32 mask = OTGSC_BSV; + + while (!hw_read_otgsc(ci, mask)) {Reverse logic, should be: while (hw_read_otgsc(ci, mask)) {Good catch! Thanks.
Besides above, please delete the declaration at ci.h. -- Best Regards, Peter Chen