Please hold off on reviewing this patch. Patch went wrong while rebasing. Thanks, Badhri On Thu, Aug 10, 2017 at 3:06 PM, Badhri Jagan Sridharan <badhri@xxxxxxxxxx> wrote: > While performing PORT_RESET, upon receiving the cc disconnect > signal from the underlaying tcpc device, TCPM transitions into > unattached state. Consider, the current type of port while determining > the unattached state. > > In the below logs, although the port_type was set to sink, TCPM > transitioned into SRC_UNATTACHED. > > [ 762.290654] state change SRC_READY -> PORT_RESET > [ 762.324531] Setting voltage/current limit 0 mV 0 mA > [ 762.327912] polarity 0 > [ 762.334864] cc:=0 > [ 762.347193] pending state change PORT_RESET -> PORT_RESET_WAIT_OFF @ 100 ms > [ 762.347200] VBUS off > [ 762.347203] CC1: 2 -> 0, CC2: 0 -> 0 [state PORT_RESET, polarity 0, disconnected] > [ 762.347206] state change PORT_RESET -> SRC_UNATTACHED > > Signed-off-by: Badhri Jagan Sridharan <Badhri@xxxxxxxxxx> > --- > drivers/staging/typec/tcpm.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/staging/typec/tcpm.c b/drivers/staging/typec/tcpm.c > index 20eb4ebcf8c3..4c526341d850 100644 > --- a/drivers/staging/typec/tcpm.c > +++ b/drivers/staging/typec/tcpm.c > @@ -2099,10 +2099,16 @@ static inline enum tcpm_state ready_state(struct tcpm_port *port) > > static inline enum tcpm_state unattached_state(struct tcpm_port *port) > { > - if (port->pwr_role == TYPEC_SOURCE) > + if (port->port_type == TYPEC_PORT_DRP) { > + if (port->pwr_role == TYPEC_SOURCE) > + return SRC_UNATTACHED; > + else > + return SNK_UNATTACHED; > + } else if (port->port_type == TYPEC_PORT_DFP) { > return SRC_UNATTACHED; > - else > + } else { > return SNK_UNATTACHED; > + } > } > > static void tcpm_check_send_discover(struct tcpm_port *port) > -- > 2.14.0.434.g98096fd7a8-goog > _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel