diff options
-rw-r--r-- | common/usbc/usb_pe_drp_sm.c | 5 | ||||
-rw-r--r-- | test/usb_pe_drp.c | 28 |
2 files changed, 18 insertions, 15 deletions
diff --git a/common/usbc/usb_pe_drp_sm.c b/common/usbc/usb_pe_drp_sm.c index 226205b4ad..ab481bffe5 100644 --- a/common/usbc/usb_pe_drp_sm.c +++ b/common/usbc/usb_pe_drp_sm.c @@ -915,6 +915,7 @@ void pe_message_received(int port) assert(port == TASK_ID_TO_PD_PORT(task_get_current())); PE_SET_FLAG(port, PE_FLAGS_MSG_RECEIVED); + task_wake(PD_PORT_TO_TASK_ID(port)); } void pe_hard_reset_sent(int port) @@ -954,7 +955,7 @@ void pe_got_hard_reset(int port) void pd_got_frs_signal(int port) { PE_SET_FLAG(port, PE_FLAGS_FAST_ROLE_SWAP_SIGNALED); - task_set_event(PD_PORT_TO_TASK_ID(port), TASK_EVENT_WAKE, 0); + task_wake(PD_PORT_TO_TASK_ID(port)); } /* @@ -1170,6 +1171,7 @@ void pe_report_error(int port, enum pe_error e, enum tcpm_transmit_type type) get_state_pe(port) == PE_VCS_SEND_PS_RDY_SWAP) ) { PE_SET_FLAG(port, PE_FLAGS_PROTOCOL_ERROR); + task_wake(PD_PORT_TO_TASK_ID(port)); return; } @@ -1287,6 +1289,7 @@ void pe_message_sent(int port) assert(port == TASK_ID_TO_PD_PORT(task_get_current())); PE_SET_FLAG(port, PE_FLAGS_TX_COMPLETE); + task_wake(PD_PORT_TO_TASK_ID(port)); } void pd_send_vdm(int port, uint32_t vid, int cmd, const uint32_t *data, diff --git a/test/usb_pe_drp.c b/test/usb_pe_drp.c index 5d6b9b1302..9f2b8b267d 100644 --- a/test/usb_pe_drp.c +++ b/test/usb_pe_drp.c @@ -87,7 +87,7 @@ test_static int finish_src_discovery(void) /* Expect GET_SOURCE_CAP, reply NOT_SUPPORTED. */ TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPC_TX_SOP, - PD_CTRL_GET_SOURCE_CAP, 0, 20 * MSEC), + PD_CTRL_GET_SOURCE_CAP, 0, 10 * MSEC), EC_SUCCESS, "%d"); mock_prl_message_sent(PORT0); task_wait_event(10 * MSEC); @@ -99,7 +99,7 @@ test_static int finish_src_discovery(void) * must support this message. */ TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPC_TX_SOP, - PD_CTRL_GET_SINK_CAP, 0, 20 * MSEC), + PD_CTRL_GET_SINK_CAP, 0, 10 * MSEC), EC_SUCCESS, "%d"); mock_prl_message_sent(PORT0); task_wait_event(10 * MSEC); @@ -121,7 +121,7 @@ test_static int finish_src_discovery(void) /* Expect VENDOR_DEF for partner identity, reply NOT_SUPPORTED. */ TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPC_TX_SOP, - 0, PD_DATA_VENDOR_DEF, 20 * MSEC), + 0, PD_DATA_VENDOR_DEF, 10 * MSEC), EC_SUCCESS, "%d"); mock_prl_message_sent(PORT0); task_wait_event(10 * MSEC); @@ -142,7 +142,7 @@ test_static int test_send_caps_error_before_connected(void) mock_tc_port[PORT0].pd_enable = 1; mock_tc_port[PORT0].vconn_src = true; TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPC_TX_SOP, - 0, PD_DATA_SOURCE_CAP, 20 * MSEC), + 0, PD_DATA_SOURCE_CAP, 10 * MSEC), EC_SUCCESS, "%d"); /* @@ -157,7 +157,7 @@ test_static int test_send_caps_error_before_connected(void) * VENDOR_DEF for cable identity, simulate no cable. */ TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPC_TX_SOP_PRIME, - 0, PD_DATA_VENDOR_DEF, 20 * MSEC), + 0, PD_DATA_VENDOR_DEF, 10 * MSEC), EC_SUCCESS, "%d"); mock_prl_report_error(PORT0, ERR_TCH_XMIT, TCPC_TX_SOP_PRIME); @@ -166,7 +166,7 @@ test_static int test_send_caps_error_before_connected(void) * got ERR_TCH_XMIT. Now simulate success (ie GoodCRC). */ TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPC_TX_SOP, - 0, PD_DATA_SOURCE_CAP, 120 * MSEC), + 0, PD_DATA_SOURCE_CAP, 110 * MSEC), EC_SUCCESS, "%d"); mock_prl_message_sent(PORT0); task_wait_event(10 * MSEC); @@ -183,11 +183,11 @@ test_static int test_send_caps_error_before_connected(void) rx_message(PD_MSG_SOP, 0, PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP, RDO_FIXED(1, 500, 500, 0)); TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPC_TX_SOP, - PD_CTRL_ACCEPT, 0, 20 * MSEC), + PD_CTRL_ACCEPT, 0, 10 * MSEC), EC_SUCCESS, "%d"); mock_prl_message_sent(PORT0); TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPC_TX_SOP, - PD_CTRL_PS_RDY, 0, 20 * MSEC), + PD_CTRL_PS_RDY, 0, 10 * MSEC), EC_SUCCESS, "%d"); mock_prl_message_sent(PORT0); @@ -209,7 +209,7 @@ test_static int test_send_caps_error_when_connected(void) mock_tc_port[PORT0].pd_enable = 1; mock_tc_port[PORT0].vconn_src = true; TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPC_TX_SOP, - 0, PD_DATA_SOURCE_CAP, 20 * MSEC), + 0, PD_DATA_SOURCE_CAP, 10 * MSEC), EC_SUCCESS, "%d"); mock_prl_message_sent(PORT0); task_wait_event(10 * MSEC); @@ -218,11 +218,11 @@ test_static int test_send_caps_error_when_connected(void) rx_message(PD_MSG_SOP, 0, PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP, RDO_FIXED(1, 500, 500, 0)); TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPC_TX_SOP, - PD_CTRL_ACCEPT, 0, 20 * MSEC), + PD_CTRL_ACCEPT, 0, 10 * MSEC), EC_SUCCESS, "%d"); mock_prl_message_sent(PORT0); TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPC_TX_SOP, - PD_CTRL_PS_RDY, 0, 20 * MSEC), + PD_CTRL_PS_RDY, 0, 10 * MSEC), EC_SUCCESS, "%d"); mock_prl_message_sent(PORT0); @@ -235,7 +235,7 @@ test_static int test_send_caps_error_when_connected(void) * thing). */ TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPC_TX_SOP_PRIME, - 0, PD_DATA_VENDOR_DEF, 20 * MSEC), + 0, PD_DATA_VENDOR_DEF, 10 * MSEC), EC_SUCCESS, "%d"); mock_prl_report_error(PORT0, ERR_TCH_XMIT, TCPC_TX_SOP_PRIME); @@ -250,7 +250,7 @@ test_static int test_send_caps_error_when_connected(void) rx_message(PD_MSG_SOP, PD_CTRL_GET_SOURCE_CAP, 0, PD_ROLE_SINK, PD_ROLE_UFP, 0); TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPC_TX_SOP, - 0, PD_DATA_SOURCE_CAP, 20 * MSEC), + 0, PD_DATA_SOURCE_CAP, 10 * MSEC), EC_SUCCESS, "%d"); /* Simulate error sending SOURCE_CAP. */ @@ -264,7 +264,7 @@ test_static int test_send_caps_error_when_connected(void) * when ... A Message has not been sent after retries to the Sink" */ TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPC_TX_SOP, - PD_CTRL_SOFT_RESET, 0, 20 * MSEC), + PD_CTRL_SOFT_RESET, 0, 10 * MSEC), EC_SUCCESS, "%d"); mock_prl_message_sent(PORT0); |