mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-29 08:12:41 -04:00
staging: typec: tcpm: Check cc status before entering SRC_TRY_DEBOUCE
[ 130.893355] state change SNK_DEBOUNCED -> SRC_TRY [ 130.893363] cc:=3 [ 130.893490] pending state change SRC_TRY -> SNK_TRYWAIT @ 100 ms [ 130.895602] CC1: 3 -> 0, CC2: 0 -> 0 [state SRC_TRY, polarity 0, disconnected] [ 130.895613] state change SRC_TRY -> SRC_TRY_DEBOUNCE [ 130.895621] pending state change SRC_TRY_DEBOUNCE -> SRC_ATTACHED @ 20 ms [ 130.916843] state change SRC_TRY_DEBOUNCE -> SRC_ATTACHED [delayed 20 ms] Although the CC state was changing to TYPEC_CC_OPEN, the port entered SRC_TRY_DEBOUNCE from SRC_TRY. The port must enter SRC_TRY_DEBOUNCE only if the CC state is TYPEC_CC_RD. Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com> [groeck: Wording] Signed-off-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
b17dd57118
commit
c79d92bda8
@@ -2897,7 +2897,8 @@ static void _tcpm_cc_change(struct tcpm_port *port, enum typec_cc_status cc1,
|
||||
break;
|
||||
|
||||
case SRC_TRY:
|
||||
tcpm_set_state(port, SRC_TRY_DEBOUNCE, 0);
|
||||
if (tcpm_port_is_source(port))
|
||||
tcpm_set_state(port, SRC_TRY_DEBOUNCE, 0);
|
||||
break;
|
||||
case SRC_TRY_DEBOUNCE:
|
||||
tcpm_set_state(port, SRC_TRY, 0);
|
||||
|
||||
Reference in New Issue
Block a user