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

Commit b46a9c90 authored by Badhri Jagan Sridharan's avatar Badhri Jagan Sridharan Committed by Greg Kroah-Hartman
Browse files

staging: typec: tcpm: Select default state based on port type



tcpm_default_state wasn't considering the port type when determining the
default role. This change makes tcpm_default_state to consider port type
as well.

tcpm_default_state would return the following based on the port type:
TYPEC_PORT_UFP - SNK_UNATTACHED
TYPEC_PORT_DFP - SRC_UNATTACHED
TYPEC_PORT_DRP - based on the preferred_role setting

Signed-off-by: default avatarBadhri Jagan Sridharan <Badhri@google.com>
[groeck: Reworded description; minor formatting changes]
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c749d4d0
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -332,12 +332,17 @@ struct pd_rx_event {

static enum tcpm_state tcpm_default_state(struct tcpm_port *port)
{
	if (port->typec_caps.type == TYPEC_PORT_DRP) {
		if (port->try_role == TYPEC_SINK)
			return SNK_UNATTACHED;
		else if (port->try_role == TYPEC_SOURCE)
			return SRC_UNATTACHED;
		else if (port->tcpc->config->default_role == TYPEC_SINK)
			return SNK_UNATTACHED;
		/* Fall through to return SRC_UNATTACHED */
	} else if (port->typec_caps.type == TYPEC_PORT_UFP) {
		return SNK_UNATTACHED;
	}
	return SRC_UNATTACHED;
}