mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 00:22:00 +02:00
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: Badhri Jagan Sridharan <Badhri@google.com> [groeck: Reworded description; minor formatting changes] Signed-off-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
c749d4d0e4
commit
b46a9c9095
|
|
@ -332,12 +332,17 @@ struct pd_rx_event {
|
|||
|
||||
static enum tcpm_state tcpm_default_state(struct tcpm_port *port)
|
||||
{
|
||||
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)
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user