diff options
-rw-r--r-- | common/usb_pd_tcpc.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/common/usb_pd_tcpc.c b/common/usb_pd_tcpc.c index c899065b42..d7314b1a53 100644 --- a/common/usb_pd_tcpc.c +++ b/common/usb_pd_tcpc.c @@ -1002,8 +1002,12 @@ int tcpc_set_msg_header(int port, int power_role, int data_role) int tcpc_get_message(int port, uint32_t *payload, int *head) { - memcpy(payload, pd[port].rx_payload, sizeof(pd[port].rx_payload)); - *head = pd[port].rx_head[pd[port].rx_buf_tail]; + /* Get message at tail of RX buffer */ + int idx = pd[port].rx_buf_tail; + + memcpy(payload, pd[port].rx_payload[idx], + sizeof(pd[port].rx_payload[idx])); + *head = pd[port].rx_head[idx]; return EC_SUCCESS; } |