summaryrefslogtreecommitdiff
path: root/driver
diff options
context:
space:
mode:
authorJett Rink <jettrink@chromium.org>2019-10-21 09:39:10 -0600
committerCommit Bot <commit-bot@chromium.org>2019-10-23 21:14:54 +0000
commit5a11fee99739db6905984f7609dfeb37b6fe79c8 (patch)
tree40477df29afc6e3e2b9ac91d56c69b5c8db6a85f /driver
parent2746de7e7ed8e8657d1135359ba1d9d1ea1c23f7 (diff)
downloadchrome-ec-5a11fee99739db6905984f7609dfeb37b6fe79c8.tar.gz
tcpci: remove extra write when sending HARD_RST
Per the TCPCI spec, we don't need to try to write the header or byte count when sending a non SOP* packet. BRANCH=none BUG=none TEST=PS8751 can still send a hard reset Change-Id: I6cccbc52cf600f7930f0cbc3ac2aab578a81dc51 Signed-off-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1872603
Diffstat (limited to 'driver')
-rw-r--r--driver/tcpm/tcpci.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/driver/tcpm/tcpci.c b/driver/tcpm/tcpci.c
index cc4a0341eb..a07d4d848e 100644
--- a/driver/tcpm/tcpci.c
+++ b/driver/tcpm/tcpci.c
@@ -559,6 +559,16 @@ int tcpci_tcpm_transmit(int port, enum tcpm_transmit_type type,
int reg = TCPC_REG_TX_DATA;
int rv, cnt = 4*PD_HEADER_CNT(header);
+ /* If not SOP* transmission, just write to the transmit register */
+ if (type >= NUM_SOP_STAR_TYPES) {
+ /*
+ * Per TCPCI spec, do not specify retry (although the TCPC
+ * should ignore retry field for these 3 types).
+ */
+ return tcpc_write(port, TCPC_REG_TRANSMIT,
+ TCPC_REG_TRANSMIT_SET_WITHOUT_RETRY(type));
+ }
+
/* TX_BYTE_CNT includes extra bytes for message header */
rv = tcpc_write(port, TCPC_REG_TX_BYTE_CNT, cnt + sizeof(header));