drm/tests: hdmi: Fix WW_MUTEX_SLOWPATH failures
Subsystems (2)
Maxime Ripard
maintainerPATCH 1/1 drm/tests: hdmi: Fix WW_MUTEX_SLOWPATH failures
The light_up_connector helper function in the HDMI infrastructure unit tests uses drm_atomic_set_crtc_for_connector(), but fails when it returns an error.
This function can return EDEADLK though if the sequence needs to be restarted, and WW_MUTEX_SLOWPATH is meant to test that we handle it properly.
Let's handle EDEADLK and restart the sequence in our tests as well.
Fixes eb66d34d793e ("drm/tests: Add output bpc tests")
Closes https://lore.kernel.org/r/CAPM=9tzJ4-ERDxvuwrCyUPY0=+P44orhp1kLWVGL7MCfpQjMEQ@mail.gmail.com/ open here
Reported-by Dave Airlie <[email protected]>
Signed-off-by Maxime Ripard <[email protected]>
--- drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c | 7 +++++++ 1 file changed, 7 insertions(+)
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c +7 -0
@@ -68,14 +68,21 @@ static int light_up_connector(struct kunit *test,int ret; state =drm_kunit_helper_atomic_state_alloc (test, drm, ctx);KUNIT_ASSERT_NOT_ERR_OR_NULL (test, state); +retry: conn_state =drm_atomic_get_connector_state (state, connector);KUNIT_ASSERT_NOT_ERR_OR_NULL (test, conn_state); ret =drm_atomic_set_crtc_for_connector (conn_state, crtc); +if (ret == -EDEADLK ) { +drm_atomic_state_clear (state); + ret =drm_modeset_backoff (ctx); +if (!ret) + goto retry; + }KUNIT_EXPECT_EQ (test, ret,0 ); crtc_state =drm_atomic_get_crtc_state (state, crtc);KUNIT_ASSERT_NOT_ERR_OR_NULL (test, crtc_state);
Signature · 1 line
2.47.0