[PATCH v4 14/23] drm/tests: hdmi: Add macro to support EDEADLK handling

From: Cristian Ciocaltea
Date: Fri Apr 25 2025 - 06:31:43 EST


In preparation to improve error handling throughout all test cases,
introduce a macro to check for EDEADLK and automate the restart of the
atomic sequence.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@xxxxxxxxxxxxx>
---
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c b/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
index c8969ee6518954ab4496d3a4398f428bf4104a36..c8bb131d63ea6d0c9e166c8d9ba5e403118cd9f1 100644
--- a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
+++ b/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
@@ -224,6 +224,16 @@ drm_kunit_helper_connector_hdmi_init(struct kunit *test,
test_edid_hdmi_1080p_rgb_max_200mhz);
}

+#define drm_kunit_atomic_restart_on_deadlock(ret, state, ctx, start) do { \
+ if (ret == -EDEADLK) { \
+ if (state) \
+ drm_atomic_state_clear(state); \
+ ret = drm_modeset_backoff(ctx); \
+ if (!ret) \
+ goto start; \
+ } \
+} while (0)
+
/*
* Test that if we change the RGB quantization property to a different
* value, we trigger a mode change on the connector's CRTC, which will

--
2.49.0