staging: typec: tcpm: Switch to PORT_RESET instead of SNK_UNATTACHED
PATCH 11/11 staging: typec: tcpm: Switch to PORT_RESET instead of SNK_UNATTACHED
When VBUS is not discovered within PD_T_PS_SOURCE_ON although Rp is detected on CC, TCPM switches the port to SNK_UNATTACHED state. SNK_UNATTACHED, however does not force TYPEC_CC_OPEN which makes the partner(source) to think that it is connected.
To overcome this issue, force the port into PORT_RESET state to make sure the CC lines are open.
--- drivers/staging/typec/tcpm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/staging/typec/tcpm.c +1 -1
@@ -2380,7 +2380,7 @@ static void run_state_machine(struct tcpm_port *port) 0); else/* Wait for VBUS, but not forever */ -tcpm_set_state (port ,SNK_UNATTACHED ,PD_T_PS_SOURCE_ON ); +tcpm_set_state (port ,PORT_RESET ,PD_T_PS_SOURCE_ON );break ;case SRC_TRY :
Signature · 1 line
2.14.1.342.g6490525c54-goog
Quoted 9 lines · Badhri Jagan Sridharan
When VBUS is not discovered within
PD_T_PS_SOURCE_ONalthough Rp is detected on CC, TCPM switches the port toSNK_UNATTACHEDstate.SNK_UNATTACHED, however does not forceTYPEC_CC_OPENwhich makes the partner(source) to think that it is connected.To overcome this issue, force the port into
PORT_RESETstate to make sure the CC lines are open.Signed-off-by Badhri Jagan Sridharan <[email protected]>
Quoted 20 lines
--- drivers/staging/typec/tcpm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/staging/typec/tcpm.c +1
-1@@ -2380,7 +2380,7 @@ static void run_state_machine(struct tcpm_port *port) 0); else/* Wait for VBUS, but not forever */ -tcpm_set_state (port ,SNK_UNATTACHED ,PD_T_PS_SOURCE_ON ); +tcpm_set_state (port ,PORT_RESET ,PD_T_PS_SOURCE_ON );break ;case SRC_TRY :Signature · 1 line
2.14.1.342.g6490525c54-goog