UPSTREAM: usb: typec: tcpm: avoid sink goto SNK_UNATTACHED state if not received source capability message
Since commit (122968f8ddusb: typec: tcpm: avoid resets for missing source capability messages), state will change from SNK_WAIT_CAPABILITIES to SNK_WAIT_CAPABILITIES_TIMEOUT. We need to change SNK_WAIT_CAPABILITIES -> SNK_READY path to SNK_WAIT_CAPABILITIES_TIMEOUT -> SNK_READY accordingly. Otherwise, the sink port will never change to SNK_READY state if the source does't have PD capability. [ 503.547183] pending state change SNK_WAIT_CAPABILITIES -> SNK_WAIT_CAPABILITIES_TIMEOUT @ 310 ms [rev3 NONE_AMS] [ 503.857239] state change SNK_WAIT_CAPABILITIES -> SNK_WAIT_CAPABILITIES_TIMEOUT [delayed 310 ms] [ 503.857254] PD TX, header: 0x87 [ 503.862440] PD TX complete, status: 2 [ 503.862484] state change SNK_WAIT_CAPABILITIES_TIMEOUT -> SNK_UNATTACHED [rev3 NONE_AMS] Fixes:122968f8dd("usb: typec: tcpm: avoid resets for missing source capability messages") Cc: stable@vger.kernel.org Signed-off-by: Xu Yang <xu.yang_2@nxp.com> Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com> Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Reviewed-by: Badhri Jagan Sridharan <badhri@google.com> Link: https://lore.kernel.org/r/20240802064156.1846768-1-xu.yang_2@nxp.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Test: adb works, TH Bug: 361711314 Change-Id: I91e5628e51f295b82e7a2bb1036beccd7e98c5a6 (cherry picked from commitbecac61a77) Signed-off-by: André Draszik <draszik@google.com>
This commit is contained in:
committed by
Treehugger Robot
parent
bc34ee0181
commit
648df50489
@@ -4515,7 +4515,7 @@ static inline enum tcpm_state hard_reset_state(struct tcpm_port *port)
|
||||
return ERROR_RECOVERY;
|
||||
if (port->pwr_role == TYPEC_SOURCE)
|
||||
return SRC_UNATTACHED;
|
||||
if (port->state == SNK_WAIT_CAPABILITIES)
|
||||
if (port->state == SNK_WAIT_CAPABILITIES_TIMEOUT)
|
||||
return SNK_READY;
|
||||
return SNK_UNATTACHED;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user