USB: OTG: msm: Avoid resetting PHY 2 times during initialization

The PHY is reset in B_IDLE state before entering into low power mode.
When B_IDLE is reached via B_PERIPHERAL or A_HOST states, it is fine.
But this is redundant if B_IDLE is reached via UNDEFINED state, which
happens only once during initialization as PHY is already reset in
UNDEFINED state.  Hence enter B_IDLE state only when cable is connected
during initialization.  Otherwise enter low power mode directly from
UNDEFINED state.

Change-Id: I0692dd52ad69093f1a10cb5c87ec713d46d9c7dd
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
diff --git a/drivers/usb/otg/msm_otg.c b/drivers/usb/otg/msm_otg.c
index 2466246..550bdb0 100644
--- a/drivers/usb/otg/msm_otg.c
+++ b/drivers/usb/otg/msm_otg.c
@@ -1653,6 +1653,12 @@
 		msm_otg_reset(otg);
 		msm_otg_init_sm(motg);
 		otg->state = OTG_STATE_B_IDLE;
+		if (!test_bit(B_SESS_VLD, &motg->inputs) &&
+				test_bit(ID, &motg->inputs)) {
+			pm_runtime_put_noidle(otg->dev);
+			pm_runtime_suspend(otg->dev);
+			break;
+		}
 		/* FALL THROUGH */
 	case OTG_STATE_B_IDLE:
 		dev_dbg(otg->dev, "OTG_STATE_B_IDLE state\n");