staging: typec: tcpm: Switch to PORT_RESET instead of SNK_UNATTACHED
authorBadhri Jagan Sridharan <badhri@google.com>
Mon, 28 Aug 2017 17:23:22 +0000 (10:23 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 29 Aug 2017 06:21:11 +0000 (08:21 +0200)
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.

Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/typec/tcpm.c

index cbfb1a49344f7b1f173a0dddb13747014744389d..2ce02aba039ae16ca3acaab5cc76ad538ab6f6d1 100644 (file)
@@ -2385,7 +2385,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: