Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d2c65463 authored by Manu Gautam's avatar Manu Gautam
Browse files

usb: phy: qusb: Keep LDOs ON during disconnect if PMI voted for it



PMI software requests PHY driver to turn-ON LDOs before running
charger detection. This is needed to have USB data lines in hi-Z
state. If there is race between USB driver processing disconnect
and next rm_pulldown request, then there is a possibility of
PHY driver turning-off LDOs even if PMI voted for it. This can
cause charger detection to fail. To fix this add a check in PHY
driver to check PMI vote in disconnect handling.

Change-Id: I6e873207aeee60e8e933430fc4e755aef81ab447
CRs-fixed: 1097343
Signed-off-by: default avatarManu Gautam <mgautam@codeaurora.org>
parent ee40dcc9
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -1001,7 +1001,12 @@ static int qusb_phy_set_suspend(struct usb_phy *phy, int suspend)
			if (qphy->tcsr_phy_lvl_shift_keeper)
				writel_relaxed(0x0,
					qphy->tcsr_phy_lvl_shift_keeper);
			/* Do not disable power rails if there is vote for it */
			if (!qphy->rm_pulldown)
				qusb_phy_enable_power(qphy, false);
			else
				dev_dbg(phy->dev, "race with rm_pulldown. Keep ldo ON\n");

			/*
			 * Set put_into_high_z_state to true so next USB
			 * cable connect, DPF_DMF request performs PHY