diff options
author | Jett Rink <jettrink@chromium.org> | 2019-10-21 09:39:10 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-10-23 21:14:54 +0000 |
commit | 5a11fee99739db6905984f7609dfeb37b6fe79c8 (patch) | |
tree | 40477df29afc6e3e2b9ac91d56c69b5c8db6a85f /driver | |
parent | 2746de7e7ed8e8657d1135359ba1d9d1ea1c23f7 (diff) | |
download | chrome-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.c | 10 |
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)); |