summaryrefslogtreecommitdiff
path: root/common/usb_pd_protocol.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/usb_pd_protocol.c')
-rw-r--r--common/usb_pd_protocol.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/common/usb_pd_protocol.c b/common/usb_pd_protocol.c
index 3e1fd1bf75..45a5f9a1c5 100644
--- a/common/usb_pd_protocol.c
+++ b/common/usb_pd_protocol.c
@@ -671,7 +671,10 @@ static void handle_ctrl_request(int port, uint16_t head,
case PD_CTRL_GOTO_MIN:
break;
case PD_CTRL_PS_RDY:
- if (pd[port].role == PD_ROLE_SINK)
+ if (pd[port].task_state == PD_STATE_SNK_DISCOVERY)
+ /* Don't know what power source is ready. Reset. */
+ set_state(port, PD_STATE_HARD_RESET);
+ else if (pd[port].role == PD_ROLE_SINK)
set_state(port, PD_STATE_SNK_READY);
break;
case PD_CTRL_REJECT: