summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Barnaś <mb@semihalf.com>2021-07-02 13:33:46 +0200
committerCommit Bot <commit-bot@chromium.org>2021-07-19 11:36:07 +0000
commit4c21b57eb9619cc3dc86d11226917d25f62f1bc8 (patch)
tree9b1f3574ce8eddcaa450bbb0e95a73c15b181f5f
parenteb9d4b02eaaf0dad3b3ca0b10fcd0734ed3cf524 (diff)
downloadchrome-ec-4c21b57eb9619cc3dc86d11226917d25f62f1bc8.tar.gz
pd: Fix missing polarity_rm_dts in some conditions
Some ifs check for CC polarity not taking DTS enums into account. This can cause that POLARITY_CC1_DTS will be treated as POLARITY_CC2. BUG=b:192652859 BRANCH=main TEST=Build firmware for servo_v4p1 and lazor to check if modified files compile correctly Change-Id: I230fafbf751c7f28545860c648655630150f7597 Signed-off-by: Michał Barnaś <mb@semihalf.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3001273 Reviewed-by: Brian Nemec <bnemec@chromium.org> Reviewed-by: Diana Z <dzigterman@chromium.org>
-rw-r--r--common/usb_pd_protocol.c2
-rw-r--r--common/usbc/usb_tc_drp_acc_trysrc_sm.c4
2 files changed, 3 insertions, 3 deletions
diff --git a/common/usb_pd_protocol.c b/common/usb_pd_protocol.c
index 6a72d8e62a..510f0447b4 100644
--- a/common/usb_pd_protocol.c
+++ b/common/usb_pd_protocol.c
@@ -4824,7 +4824,7 @@ void pd_task(void *u)
if (pd[port].power_role == PD_ROLE_SOURCE) {
/* Source: detect disconnect by monitoring CC */
tcpm_get_cc(port, &cc1, &cc2);
- if (pd[port].polarity)
+ if (polarity_rm_dts(pd[port].polarity))
cc1 = cc2;
if (cc1 == TYPEC_CC_VOLT_OPEN) {
set_state(port, PD_STATE_SRC_DISCONNECTED);
diff --git a/common/usbc/usb_tc_drp_acc_trysrc_sm.c b/common/usbc/usb_tc_drp_acc_trysrc_sm.c
index 0c9fde99a6..5478630243 100644
--- a/common/usbc/usb_tc_drp_acc_trysrc_sm.c
+++ b/common/usbc/usb_tc_drp_acc_trysrc_sm.c
@@ -2036,7 +2036,7 @@ static void sink_power_sub_states(int port)
tcpm_get_cc(port, &cc1, &cc2);
- cc = tc[port].polarity ? cc2 : cc1;
+ cc = polarity_rm_dts(tc[port].polarity) ? cc2 : cc1;
if (cc == TYPEC_CC_VOLT_RP_DEF)
new_cc_voltage = TYPEC_CC_VOLT_RP_DEF;
@@ -3095,7 +3095,7 @@ static void tc_attached_src_run(const int port)
/* Check for connection */
tcpm_get_cc(port, &cc1, &cc2);
- if (tc[port].polarity)
+ if (polarity_rm_dts(tc[port].polarity))
cc1 = cc2;
if (cc1 == TYPEC_CC_VOLT_OPEN)