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

Commit a9e32705 authored by Vijayavardhan Vennapusa's avatar Vijayavardhan Vennapusa
Browse files

USB: pd: Send PS_RDY within tNewSrc after PS_RDY received



USBPD spec mentions max time within which device that transitions
from sink power role to source needs to send PS_RDY message after
PS_RDY received from other device as part of PR_SWAP. Currently
USB PD driver is taking time around 380msec i.e greater than tNewSrc
(275msec) and resulting in USB PD complaince test "2.2.3.1.2
Procedure/Checks for Tester (Source) Originated Swap" failure. Fix it
by waiting only till VBUS voltage reaches VSafe5Vmin.

Change-Id: I3138e6d31ba964507230fe5f914aaaf2e261647d
Signed-off-by: default avatarVijayavardhan Vennapusa <vvreddy@codeaurora.org>
parent e4fab30e
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -1929,6 +1929,22 @@ static int enable_vbus(struct usbpd *pd)
	else
		pd->vbus_enabled = true;

	count = 10;
	/*
	 * Check to make sure VBUS voltage reaches above Vsafe5Vmin (4.75v)
	 * before proceeding.
	 */
	while (count--) {
		ret = power_supply_get_property(pd->usb_psy,
				POWER_SUPPLY_PROP_VOLTAGE_NOW, &val);
		if (ret || val.intval >= 4750000) /*vsafe5Vmin*/
			break;
		usleep_range(10000, 12000); /* Delay between two reads */
	}

	if (ret)
		msleep(100); /* Delay to wait for VBUS ramp up if read fails */

	return ret;
}

@@ -2838,7 +2854,6 @@ static void usbpd_sm(struct work_struct *w)

	case PE_PRS_SNK_SRC_SOURCE_ON:
		enable_vbus(pd);
		msleep(200); /* allow time VBUS ramp-up, must be < tNewSrc */

		ret = pd_send_msg(pd, MSG_PS_RDY, NULL, 0, SOP_MSG);
		if (ret) {