diff options
author | Yilun Lin <yllin@chromium.org> | 2019-08-21 17:08:19 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-08-25 14:00:31 +0000 |
commit | c87d0feabb4060585758dc3179c5fabd727db008 (patch) | |
tree | 5e8f9efeb85090bcd1af4dece19fee1042c8e394 | |
parent | e52f9b778894f07d67e76f2516193fa4c8c995b2 (diff) | |
download | chrome-ec-c87d0feabb4060585758dc3179c5fabd727db008.tar.gz |
Revert "it83xx/intc:message id of pd packet repeat"
This reverts commit bd19b03b128db664dfb5e6582810bd177b635408.
With https://crrev.com/c/1757596/ merged, one doesn't need to
handle repeated MessageID in TCPC.
TEST=make buildall
BUG=b:134556286
BRANCH=none
Change-Id: I0f97e4e574b94ecbc23e5ee97ade7cc4da7f9020
Signed-off-by: Yilun Lin <yllin@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1763895
Reviewed-by: Jett Rink <jettrink@chromium.org>
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
-rw-r--r-- | chip/it83xx/intc.c | 48 | ||||
-rw-r--r-- | driver/tcpm/it83xx.c | 11 | ||||
-rw-r--r-- | driver/tcpm/it83xx_pd.h | 2 |
3 files changed, 1 insertions, 60 deletions
diff --git a/chip/it83xx/intc.c b/chip/it83xx/intc.c index 033a65d87b..8783a76983 100644 --- a/chip/it83xx/intc.c +++ b/chip/it83xx/intc.c @@ -11,51 +11,8 @@ #include "task.h" #include "tcpm.h" #include "usb_pd.h" -#include "console.h" - -#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args) #ifdef CONFIG_USB_PD_TCPM_ITE83XX -/* Store each port last message id of received packet */ -static uint8_t message_id_last[USBPD_PORT_COUNT]; - -/* Invalidate last received message id variable */ -void invalidate_last_message_id(int port) -{ - /* - * Message id starts from 0 to 7. If static global variable - * message_id_last is initialed 0, it will occur repetitive message id - * with first received packet, so we initial an invalid value 0xff. - */ - message_id_last[port] = 0xff; -} - -static int consume_repeat_message(int port) -{ - uint16_t msg_header = IT83XX_USBPD_RMH(port); - int msg_id = PD_HEADER_ID(msg_header); - /* pre-set not repeat */ - int ret = 0; - - /* - * Check does message id repeat? if yes don't respond subsequent - * messages, except softreset control request. - */ - if (PD_HEADER_TYPE(msg_header) == PD_CTRL_SOFT_RESET && - PD_HEADER_CNT(msg_header) == 0) - invalidate_last_message_id(port); - else if (message_id_last[port] != msg_id) - message_id_last[port] = msg_id; - else if (message_id_last[port] == msg_id) { - /* If clear this bit, USBPD receives next packet */ - IT83XX_USBPD_MRSR(port) = USBPD_REG_MASK_RX_MSG_VALID; - CPRINTS("receive repetitive msg id: p[%d] id=%d", port, msg_id); - ret = 1; - } - - return ret; -} - static void chip_pd_irq(enum usbpd_port port) { task_clear_pending_irq(usbpd_ctrl_regs[port].irq); @@ -64,14 +21,11 @@ static void chip_pd_irq(enum usbpd_port port) if (USBPD_IS_HARD_RESET_DETECT(port)) { /* clear interrupt */ IT83XX_USBPD_ISR(port) = USBPD_REG_MASK_HARD_RESET_DETECT; - /* Invalidate last received message id variable */ - invalidate_last_message_id(port); task_set_event(PD_PORT_TO_TASK_ID(port), PD_EVENT_TCPC_RESET, 0); } else { if (USBPD_IS_RX_DONE(port)) { - if (!consume_repeat_message(port)) - tcpm_enqueue_message(port); + tcpm_enqueue_message(port); /* clear RX done interrupt */ IT83XX_USBPD_ISR(port) = USBPD_REG_MASK_MSG_RX_DONE; } diff --git a/driver/tcpm/it83xx.c b/driver/tcpm/it83xx.c index 2e59be2f07..c805e445a2 100644 --- a/driver/tcpm/it83xx.c +++ b/driver/tcpm/it83xx.c @@ -214,10 +214,6 @@ static enum tcpc_transmit_complete it83xx_tx_data( if (r > PD_RETRY_COUNT) return TCPC_TX_COMPLETE_DISCARDED; - /* Transmit softreset, invalidate last received message id variable */ - if (PD_HEADER_TYPE(header) == PD_CTRL_SOFT_RESET && length == 0) - invalidate_last_message_id(port); - return TCPC_TX_COMPLETE_SUCCESS; } @@ -236,9 +232,6 @@ static enum tcpc_transmit_complete it83xx_send_hw_reset(enum usbpd_port port, if (IT83XX_USBPD_MTSR0(port) & USBPD_REG_MASK_SEND_HW_RESET) return TCPC_TX_COMPLETE_FAILED; - /* Transmit hardreset, invalidate last received message id variable */ - invalidate_last_message_id(port); - return TCPC_TX_COMPLETE_SUCCESS; } @@ -339,8 +332,6 @@ static void it83xx_set_data_role(enum usbpd_port port, int pd_role) static void it83xx_init(enum usbpd_port port, int role) { - /* Invalidate last received message id variable */ - invalidate_last_message_id(port); #ifdef IT83XX_USBPD_CC_PARAMETER_RELOAD /* bit7: Reload CC parameter setting. */ IT83XX_USBPD_CCPSR0(port) |= BIT(7); @@ -617,8 +608,6 @@ static int it83xx_tcpm_get_chip_info(int port, int live, static void it83xx_tcpm_sw_reset(void) { int port = TASK_ID_TO_PD_PORT(task_get_current()); - /* Invalidate last received message id variable */ - invalidate_last_message_id(port); #ifdef IT83XX_INTC_PLUG_IN_SUPPORT /* * Enable detect type-c plug in interrupt, since the pd task has diff --git a/driver/tcpm/it83xx_pd.h b/driver/tcpm/it83xx_pd.h index 3157909d83..9e8bff1342 100644 --- a/driver/tcpm/it83xx_pd.h +++ b/driver/tcpm/it83xx_pd.h @@ -105,7 +105,5 @@ extern const struct usbpd_ctrl_t usbpd_ctrl_regs[]; extern const struct tcpm_drv it83xx_tcpm_drv; /* Disable integrated pd module */ void it83xx_disable_pd_module(int port); -/* Invalidate last received message id variable */ -extern void invalidate_last_message_id(int port); #endif /* __CROS_EC_DRIVER_TCPM_IT83XX_H */ |