summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/usbc/usb_pe_drp_sm.c5
-rw-r--r--test/usb_pe_drp.c28
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);