summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlec Berg <alecaberg@chromium.org>2014-05-22 15:18:42 -0700
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2014-05-23 04:53:29 +0000
commitd3d2c077f0df10d191a8d1fb11ab6f9469506d32 (patch)
tree108d2a4259126d39dc706291e7ac70894a0b82d7
parentb19bd8f4382cbb8cd2572d0f9f51a14c91192c1c (diff)
downloadchrome-ec-d3d2c077f0df10d191a8d1fb11ab6f9469506d32.tar.gz
pd: when PD sink request is rejected go back to discovery state
When sink receives a power request rejected packet, go back to discovery state in order to retry transmitting request. BUG=none BRANCH=none TEST=tested with zinger. when zinger has an over current fault, it rejects requests for power. made sure that when device gets rejected it goes back to discovery state. Change-Id: Id532b69f52bd533e5d7ac1171d8833bc993a0e9f Signed-off-by: Alec Berg <alecaberg@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/201157 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
-rw-r--r--common/usb_pd_protocol.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/common/usb_pd_protocol.c b/common/usb_pd_protocol.c
index 2727bdc05a..00f072e253 100644
--- a/common/usb_pd_protocol.c
+++ b/common/usb_pd_protocol.c
@@ -489,11 +489,12 @@ static void handle_ctrl_request(void *ctxt, uint16_t head, uint32_t *payload)
if (pd_role == PD_ROLE_SINK)
pd_task_state = PD_STATE_SNK_READY;
break;
+ case PD_CTRL_REJECT:
+ pd_task_state = PD_STATE_SNK_DISCOVERY;
+ break;
#endif /* CONFIG_USB_PD_DUAL_ROLE */
case PD_CTRL_ACCEPT:
break;
- case PD_CTRL_REJECT:
- break;
case PD_CTRL_PROTOCOL_ERR:
case PD_CTRL_SWAP:
case PD_CTRL_WAIT: