summaryrefslogtreecommitdiff
path: root/common/usbc/usb_prl_sm.c
diff options
context:
space:
mode:
authorJett Rink <jettrink@chromium.org>2019-10-17 09:33:31 -0600
committerCommit Bot <commit-bot@chromium.org>2019-10-24 18:01:17 +0000
commite248f208ab8a55667bfe60ce48a188fc1a4620cc (patch)
tree2b3955afb2a53432c09467998e930407a47f02c1 /common/usbc/usb_prl_sm.c
parent39f7d5d0e5c3ae72b9837a676fac401dfe51e745 (diff)
downloadchrome-ec-e248f208ab8a55667bfe60ce48a188fc1a4620cc.tar.gz
cleanup: clean up reference to power role vs cable plug
The PD header specifies the power role for SOP packets and cable plug for SOP' and SOP" packets. Refactor code to make this more obvious. BRANCH=none BUG=none TEST=builds and new stack runs on hatch Change-Id: I6cdb1561082d2142214ac65703ff42586b16d70b Signed-off-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1865986 Reviewed-by: Denis Brockus <dbrockus@chromium.org>
Diffstat (limited to 'common/usbc/usb_prl_sm.c')
-rw-r--r--common/usbc/usb_prl_sm.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/common/usbc/usb_prl_sm.c b/common/usbc/usb_prl_sm.c
index 1c4761e5f4..e95f2a3c9e 100644
--- a/common/usbc/usb_prl_sm.c
+++ b/common/usbc/usb_prl_sm.c
@@ -612,13 +612,18 @@ static void prl_tx_layer_reset_for_transmit_run(const int port)
static uint32_t get_sop_star_header(const int port)
{
+ const int is_sop_packet = pdmsg[port].xmit_type == TCPC_TX_SOP;
+
+ /* SOP vs SOP'/SOP" headers are different. Replace fields as needed */
return PD_HEADER(
pdmsg[port].msg_type,
- tc_get_power_role(port),
- tc_get_data_role(port),
+ is_sop_packet ?
+ tc_get_power_role(port) : tc_get_cable_plug(port),
+ is_sop_packet ?
+ tc_get_data_role(port) : 0,
prl_tx[port].msg_id_counter[pdmsg[port].xmit_type],
pdmsg[port].data_objs,
- (pdmsg[port].xmit_type == TCPC_TX_SOP) ?
+ is_sop_packet ?
pdmsg[port].rev : pdmsg[port].cable_rev,
pdmsg[port].ext);
}
@@ -1518,7 +1523,7 @@ static void prl_rx_wait_for_phy_message(const int port, int evt)
if (!IS_ENABLED(CONFIG_USB_TYPEC_CTVPD) &&
!IS_ENABLED(CONFIG_USB_TYPEC_VPD) &&
PD_HEADER_GET_SOP(header) != PD_MSG_SOP &&
- PD_HEADER_PROLE(header) == PD_PLUG_DFP_UFP)
+ PD_HEADER_PROLE(header) == PD_PLUG_FROM_DFP_UFP)
return;
if (cnt == 0 && type == PD_CTRL_SOFT_RESET) {