aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/typec
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/typec')
-rw-r--r--drivers/staging/typec/tcpm.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/staging/typec/tcpm.c b/drivers/staging/typec/tcpm.c
index ae832fb4db9a..9507f834d5da 100644
--- a/drivers/staging/typec/tcpm.c
+++ b/drivers/staging/typec/tcpm.c
@@ -2122,10 +2122,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
- return SNK_UNATTACHED;
+ }
+
+ return SNK_UNATTACHED;
}
static void tcpm_check_send_discover(struct tcpm_port *port)