From bb20158f5c2c837a6e780672add4fd49bebb833c Mon Sep 17 00:00:00 2001 From: Jett Rink Date: Fri, 14 Aug 2020 12:23:20 -0600 Subject: usbc: wake task on every state transition Whenever we change state, we should continue to wake the USB statemachine task up until is settles into a steady state were it is waiting/polling on a timer or event. BRANCH=none BUG=b:163152687 TEST=Ran GRL PD3.0 test on Trembyle and did not see any regressions. It did make a few tests pass that were failing before due to timing issues. Signed-off-by: Jett Rink Change-Id: Idc3c1ae8d92a0f6a5cd4b82f9db6d7138d143f77 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2356954 Reviewed-by: Edward Hill Reviewed-by: Diana Z Commit-Queue: Diana Z --- test/usb_typec_ctvpd.c | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) (limited to 'test/usb_typec_ctvpd.c') diff --git a/test/usb_typec_ctvpd.c b/test/usb_typec_ctvpd.c index 1340c7a093..d46e68e40d 100644 --- a/test/usb_typec_ctvpd.c +++ b/test/usb_typec_ctvpd.c @@ -460,10 +460,10 @@ static int test_vpd_host_src_detection_vbus(void) host_connect_source(VBUS_0); - wait_for_state_change(port, 10 * MSEC); - - TEST_ASSERT(get_state_tc(port) == TC_UNATTACHED_SNK); - + /* + * The state changes from UNATTACHED_SNK to ATTACH_WAIT_SNK immediately + * if Rp is detected. + */ wait_for_state_change(port, 10 * MSEC); TEST_ASSERT(get_state_tc(port) == TC_ATTACH_WAIT_SNK); @@ -523,11 +523,12 @@ static int test_vpd_host_src_detection_vconn(void) * Host Port VCONN Removed */ + mock_set_host_cc_source_voltage(0); mock_set_vconn(VCONN_0); wait_for_state_change(port, 10 * MSEC); - TEST_ASSERT(get_state_tc(port) == TC_UNATTACHED_SNK); + TEST_EQ(get_state_tc(port), TC_UNATTACHED_SNK, "%d"); host_disconnect_source(); @@ -639,13 +640,12 @@ static int test_vpd_host_src_detection_message_reception(void) * Host Port VBUS Removed */ - host_connect_source(VBUS_0); + host_disconnect_source(); wait_for_state_change(port, 100 * MSEC); TEST_EQ(get_state_tc(port), TC_UNATTACHED_SNK, "%d"); - host_disconnect_source(); return EC_SUCCESS; } @@ -760,32 +760,28 @@ static int test_ctvpd_behavior_case1(void) TEST_ASSERT(ct_connect_source(CC2, VBUS_0)); wait_for_state_change(port, 40 * MSEC); - TEST_ASSERT(get_state_tc(port) == TC_CT_ATTACH_WAIT_VPD); + TEST_EQ(get_state_tc(port), TC_CT_ATTACH_WAIT_VPD, "%d"); /* Remove Power Source */ TEST_ASSERT(ct_disconnect_source()); wait_for_state_change(port, 40 * MSEC); - TEST_ASSERT(get_state_tc(port) == TC_CT_UNATTACHED_VPD); + TEST_EQ(get_state_tc(port), TC_CT_UNATTACHED_VPD, "%d"); /* Attach Sink */ TEST_ASSERT(ct_connect_sink(CC1, SRC_CON_DEF)); - wait_for_state_change(port, PD_T_DRP_SNK); - - TEST_ASSERT(get_state_tc(port) == TC_CT_UNATTACHED_UNSUPPORTED); - wait_for_state_change(port, 40 * MSEC); - TEST_ASSERT(get_state_tc(port) == TC_CT_ATTACH_WAIT_UNSUPPORTED); + TEST_EQ(get_state_tc(port), TC_CT_ATTACH_WAIT_UNSUPPORTED, "%d"); /* Remove VCONN (Host detach) */ mock_set_vconn(VCONN_0); wait_for_state_change(port, 40 * MSEC); - TEST_ASSERT(get_state_tc(port) == TC_UNATTACHED_SNK); + TEST_EQ(get_state_tc(port), TC_UNATTACHED_SNK, "%d"); return EC_SUCCESS; } -- cgit v1.2.1