All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simona Vetter <simona.vetter@ffwll.ch>
To: Maxime Ripard <mripard@kernel.org>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 4/4] drm/tests: hdmi: Fix recursive locking
Date: Tue, 4 Feb 2025 12:17:42 +0100	[thread overview]
Message-ID: <Z6H3Vv872R9PARK6@phenom.ffwll.local> (raw)
In-Reply-To: <20250129-test-kunit-v2-4-fe59c43805d5@kernel.org>

On Wed, Jan 29, 2025 at 03:21:56PM +0100, Maxime Ripard wrote:
> The find_preferred_mode() functions takes the mode_config mutex, but due
> to the order most tests have, is called with the crtc_ww_class_mutex
> taken. This raises a warning for a circular dependency when running the
> tests with lockdep.
> 
> Reorder the tests to call find_preferred_mode before the acquire context
> has been created to avoid the issue.
> 
> Signed-off-by: Maxime Ripard <mripard@kernel.org>

On the last two patches: Reviewed-by: Simona Vetter <simona.vetter@ffwll.ch>

> ---
>  drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c | 114 ++++++++++-----------
>  1 file changed, 57 insertions(+), 57 deletions(-)
> 
> 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 c265d28631603f266ba606564e77b8f965b7f83b..037c19875daf8b9b13e7702c8640dde1547f817c 100644
> --- a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
> +++ b/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
> @@ -291,16 +291,16 @@ static void drm_test_check_broadcast_rgb_crtc_mode_changed(struct kunit *test)
>  
>  	drm = &priv->drm;
>  	crtc = priv->crtc;
>  	conn = &priv->connector;
>  
> -	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> -	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> -
>  	preferred = find_preferred_mode(conn);
>  	KUNIT_ASSERT_NOT_NULL(test, preferred);
>  
> +	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> +	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> +
>  	ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
>  	KUNIT_ASSERT_EQ(test, ret, 0);
>  
>  	state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
>  	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
> @@ -355,16 +355,16 @@ static void drm_test_check_broadcast_rgb_crtc_mode_not_changed(struct kunit *tes
>  
>  	drm = &priv->drm;
>  	crtc = priv->crtc;
>  	conn = &priv->connector;
>  
> -	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> -	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> -
>  	preferred = find_preferred_mode(conn);
>  	KUNIT_ASSERT_NOT_NULL(test, preferred);
>  
> +	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> +	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> +
>  	ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
>  	KUNIT_ASSERT_EQ(test, ret, 0);
>  
>  	state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
>  	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
> @@ -420,17 +420,17 @@ static void drm_test_check_broadcast_rgb_auto_cea_mode(struct kunit *test)
>  	drm = &priv->drm;
>  	crtc = priv->crtc;
>  	conn = &priv->connector;
>  	KUNIT_ASSERT_TRUE(test, conn->display_info.is_hdmi);
>  
> -	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> -	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> -
>  	preferred = find_preferred_mode(conn);
>  	KUNIT_ASSERT_NOT_NULL(test, preferred);
>  	KUNIT_ASSERT_NE(test, drm_match_cea_mode(preferred), 1);
>  
> +	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> +	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> +
>  	ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
>  	KUNIT_ASSERT_EQ(test, ret, 0);
>  
>  	state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
>  	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
> @@ -531,17 +531,17 @@ static void drm_test_check_broadcast_rgb_full_cea_mode(struct kunit *test)
>  	drm = &priv->drm;
>  	crtc = priv->crtc;
>  	conn = &priv->connector;
>  	KUNIT_ASSERT_TRUE(test, conn->display_info.is_hdmi);
>  
> -	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> -	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> -
>  	preferred = find_preferred_mode(conn);
>  	KUNIT_ASSERT_NOT_NULL(test, preferred);
>  	KUNIT_ASSERT_NE(test, drm_match_cea_mode(preferred), 1);
>  
> +	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> +	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> +
>  	ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
>  	KUNIT_ASSERT_EQ(test, ret, 0);
>  
>  	state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
>  	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
> @@ -646,17 +646,17 @@ static void drm_test_check_broadcast_rgb_limited_cea_mode(struct kunit *test)
>  	drm = &priv->drm;
>  	crtc = priv->crtc;
>  	conn = &priv->connector;
>  	KUNIT_ASSERT_TRUE(test, conn->display_info.is_hdmi);
>  
> -	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> -	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> -
>  	preferred = find_preferred_mode(conn);
>  	KUNIT_ASSERT_NOT_NULL(test, preferred);
>  	KUNIT_ASSERT_NE(test, drm_match_cea_mode(preferred), 1);
>  
> +	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> +	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> +
>  	ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
>  	KUNIT_ASSERT_EQ(test, ret, 0);
>  
>  	state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
>  	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
> @@ -766,16 +766,16 @@ static void drm_test_check_output_bpc_crtc_mode_changed(struct kunit *test)
>  	ret = set_connector_edid(test, conn,
>  				 test_edid_hdmi_1080p_rgb_yuv_dc_max_200mhz,
>  				 ARRAY_SIZE(test_edid_hdmi_1080p_rgb_yuv_dc_max_200mhz));
>  	KUNIT_ASSERT_GT(test, ret, 0);
>  
> -	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> -	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> -
>  	preferred = find_preferred_mode(conn);
>  	KUNIT_ASSERT_NOT_NULL(test, preferred);
>  
> +	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> +	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> +
>  	ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
>  	KUNIT_ASSERT_EQ(test, ret, 0);
>  
>  	state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
>  	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
> @@ -840,16 +840,16 @@ static void drm_test_check_output_bpc_crtc_mode_not_changed(struct kunit *test)
>  	ret = set_connector_edid(test, conn,
>  				 test_edid_hdmi_1080p_rgb_yuv_dc_max_200mhz,
>  				 ARRAY_SIZE(test_edid_hdmi_1080p_rgb_yuv_dc_max_200mhz));
>  	KUNIT_ASSERT_GT(test, ret, 0);
>  
> -	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> -	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> -
>  	preferred = find_preferred_mode(conn);
>  	KUNIT_ASSERT_NOT_NULL(test, preferred);
>  
> +	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> +	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> +
>  	ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
>  	KUNIT_ASSERT_EQ(test, ret, 0);
>  
>  	state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
>  	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
> @@ -914,16 +914,16 @@ static void drm_test_check_output_bpc_dvi(struct kunit *test)
>  	KUNIT_ASSERT_GT(test, ret, 0);
>  
>  	info = &conn->display_info;
>  	KUNIT_ASSERT_FALSE(test, info->is_hdmi);
>  
> -	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> -	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> -
>  	preferred = find_preferred_mode(conn);
>  	KUNIT_ASSERT_NOT_NULL(test, preferred);
>  
> +	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> +	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> +
>  	ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
>  	KUNIT_ASSERT_EQ(test, ret, 0);
>  
>  	conn_state = conn->state;
>  	KUNIT_ASSERT_NOT_NULL(test, conn_state);
> @@ -958,17 +958,17 @@ static void drm_test_check_tmds_char_rate_rgb_8bpc(struct kunit *test)
>  	ret = set_connector_edid(test, conn,
>  				 test_edid_hdmi_1080p_rgb_max_200mhz,
>  				 ARRAY_SIZE(test_edid_hdmi_1080p_rgb_max_200mhz));
>  	KUNIT_ASSERT_GT(test, ret, 0);
>  
> -	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> -	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> -
>  	preferred = find_preferred_mode(conn);
>  	KUNIT_ASSERT_NOT_NULL(test, preferred);
>  	KUNIT_ASSERT_FALSE(test, preferred->flags & DRM_MODE_FLAG_DBLCLK);
>  
> +	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> +	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> +
>  	ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
>  	KUNIT_ASSERT_EQ(test, ret, 0);
>  
>  	conn_state = conn->state;
>  	KUNIT_ASSERT_NOT_NULL(test, conn_state);
> @@ -1005,17 +1005,17 @@ static void drm_test_check_tmds_char_rate_rgb_10bpc(struct kunit *test)
>  	ret = set_connector_edid(test, conn,
>  				 test_edid_hdmi_1080p_rgb_yuv_dc_max_340mhz,
>  				 ARRAY_SIZE(test_edid_hdmi_1080p_rgb_yuv_dc_max_340mhz));
>  	KUNIT_ASSERT_GT(test, ret, 0);
>  
> -	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> -	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> -
>  	preferred = find_preferred_mode(conn);
>  	KUNIT_ASSERT_NOT_NULL(test, preferred);
>  	KUNIT_ASSERT_FALSE(test, preferred->flags & DRM_MODE_FLAG_DBLCLK);
>  
> +	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> +	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> +
>  	ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
>  	KUNIT_ASSERT_EQ(test, ret, 0);
>  
>  	conn_state = conn->state;
>  	KUNIT_ASSERT_NOT_NULL(test, conn_state);
> @@ -1052,17 +1052,17 @@ static void drm_test_check_tmds_char_rate_rgb_12bpc(struct kunit *test)
>  	ret = set_connector_edid(test, conn,
>  				 test_edid_hdmi_1080p_rgb_yuv_dc_max_340mhz,
>  				 ARRAY_SIZE(test_edid_hdmi_1080p_rgb_yuv_dc_max_340mhz));
>  	KUNIT_ASSERT_GT(test, ret, 0);
>  
> -	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> -	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> -
>  	preferred = find_preferred_mode(conn);
>  	KUNIT_ASSERT_NOT_NULL(test, preferred);
>  	KUNIT_ASSERT_FALSE(test, preferred->flags & DRM_MODE_FLAG_DBLCLK);
>  
> +	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> +	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> +
>  	ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
>  	KUNIT_ASSERT_EQ(test, ret, 0);
>  
>  	conn_state = conn->state;
>  	KUNIT_ASSERT_NOT_NULL(test, conn_state);
> @@ -1099,16 +1099,16 @@ static void drm_test_check_hdmi_funcs_reject_rate(struct kunit *test)
>  
>  	drm = &priv->drm;
>  	crtc = priv->crtc;
>  	conn = &priv->connector;
>  
> -	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> -	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> -
>  	preferred = find_preferred_mode(conn);
>  	KUNIT_ASSERT_NOT_NULL(test, preferred);
>  
> +	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> +	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> +
>  	ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
>  	KUNIT_ASSERT_EQ(test, ret, 0);
>  
>  	/* You shouldn't be doing that at home. */
>  	conn->hdmi.funcs = &reject_connector_hdmi_funcs;
> @@ -1164,23 +1164,23 @@ static void drm_test_check_max_tmds_rate_bpc_fallback(struct kunit *test)
>  
>  	info = &conn->display_info;
>  	KUNIT_ASSERT_TRUE(test, info->is_hdmi);
>  	KUNIT_ASSERT_GT(test, info->max_tmds_clock, 0);
>  
> -	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> -	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> -
>  	preferred = find_preferred_mode(conn);
>  	KUNIT_ASSERT_NOT_NULL(test, preferred);
>  	KUNIT_ASSERT_FALSE(test, preferred->flags & DRM_MODE_FLAG_DBLCLK);
>  
>  	rate = drm_hdmi_compute_mode_clock(preferred, 12, HDMI_COLORSPACE_RGB);
>  	KUNIT_ASSERT_GT(test, rate, info->max_tmds_clock * 1000);
>  
>  	rate = drm_hdmi_compute_mode_clock(preferred, 10, HDMI_COLORSPACE_RGB);
>  	KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000);
>  
> +	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> +	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> +
>  	ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
>  	KUNIT_EXPECT_EQ(test, ret, 0);
>  
>  	conn_state = conn->state;
>  	KUNIT_ASSERT_NOT_NULL(test, conn_state);
> @@ -1233,13 +1233,10 @@ static void drm_test_check_max_tmds_rate_format_fallback(struct kunit *test)
>  
>  	info = &conn->display_info;
>  	KUNIT_ASSERT_TRUE(test, info->is_hdmi);
>  	KUNIT_ASSERT_GT(test, info->max_tmds_clock, 0);
>  
> -	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> -	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> -
>  	preferred = find_preferred_mode(conn);
>  	KUNIT_ASSERT_NOT_NULL(test, preferred);
>  	KUNIT_ASSERT_FALSE(test, preferred->flags & DRM_MODE_FLAG_DBLCLK);
>  
>  	rate = drm_hdmi_compute_mode_clock(preferred, 10, HDMI_COLORSPACE_RGB);
> @@ -1249,10 +1246,13 @@ static void drm_test_check_max_tmds_rate_format_fallback(struct kunit *test)
>  	KUNIT_ASSERT_GT(test, rate, info->max_tmds_clock * 1000);
>  
>  	rate = drm_hdmi_compute_mode_clock(preferred, 12, HDMI_COLORSPACE_YUV422);
>  	KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000);
>  
> +	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> +	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> +
>  	ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
>  	KUNIT_EXPECT_EQ(test, ret, 0);
>  
>  	conn_state = conn->state;
>  	KUNIT_ASSERT_NOT_NULL(test, conn_state);
> @@ -1295,13 +1295,10 @@ static void drm_test_check_output_bpc_format_vic_1(struct kunit *test)
>  
>  	info = &conn->display_info;
>  	KUNIT_ASSERT_TRUE(test, info->is_hdmi);
>  	KUNIT_ASSERT_GT(test, info->max_tmds_clock, 0);
>  
> -	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> -	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> -
>  	mode = drm_kunit_display_mode_from_cea_vic(test, drm, 1);
>  	KUNIT_ASSERT_NOT_NULL(test, mode);
>  
>  	/*
>  	 * NOTE: We can't use drm_hdmi_compute_mode_clock()
> @@ -1311,10 +1308,13 @@ static void drm_test_check_output_bpc_format_vic_1(struct kunit *test)
>  	 * Thus, we have to calculate the rate by hand.
>  	 */
>  	rate = mode->clock * 1500;
>  	KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000);
>  
> +	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> +	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> +
>  	crtc = priv->crtc;
>  	ret = light_up_connector(test, drm, crtc, conn, mode, ctx);
>  	KUNIT_EXPECT_EQ(test, ret, 0);
>  
>  	conn_state = conn->state;
> @@ -1356,13 +1356,10 @@ static void drm_test_check_output_bpc_format_driver_rgb_only(struct kunit *test)
>  
>  	info = &conn->display_info;
>  	KUNIT_ASSERT_TRUE(test, info->is_hdmi);
>  	KUNIT_ASSERT_GT(test, info->max_tmds_clock, 0);
>  
> -	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> -	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> -
>  	preferred = find_preferred_mode(conn);
>  	KUNIT_ASSERT_NOT_NULL(test, preferred);
>  
>  	/*
>  	 * We're making sure that YUV422 would be the preferred option
> @@ -1377,10 +1374,13 @@ static void drm_test_check_output_bpc_format_driver_rgb_only(struct kunit *test)
>  	KUNIT_ASSERT_GT(test, rate, info->max_tmds_clock * 1000);
>  
>  	rate = drm_hdmi_compute_mode_clock(preferred, 12, HDMI_COLORSPACE_YUV422);
>  	KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000);
>  
> +	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> +	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> +
>  	ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
>  	KUNIT_EXPECT_EQ(test, ret, 0);
>  
>  	conn_state = conn->state;
>  	KUNIT_ASSERT_NOT_NULL(test, conn_state);
> @@ -1423,13 +1423,10 @@ static void drm_test_check_output_bpc_format_display_rgb_only(struct kunit *test
>  
>  	info = &conn->display_info;
>  	KUNIT_ASSERT_TRUE(test, info->is_hdmi);
>  	KUNIT_ASSERT_GT(test, info->max_tmds_clock, 0);
>  
> -	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> -	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> -
>  	preferred = find_preferred_mode(conn);
>  	KUNIT_ASSERT_NOT_NULL(test, preferred);
>  
>  	/*
>  	 * We're making sure that YUV422 would be the preferred option
> @@ -1444,10 +1441,13 @@ static void drm_test_check_output_bpc_format_display_rgb_only(struct kunit *test
>  	KUNIT_ASSERT_GT(test, rate, info->max_tmds_clock * 1000);
>  
>  	rate = drm_hdmi_compute_mode_clock(preferred, 12, HDMI_COLORSPACE_YUV422);
>  	KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000);
>  
> +	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> +	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> +
>  	ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
>  	KUNIT_EXPECT_EQ(test, ret, 0);
>  
>  	conn_state = conn->state;
>  	KUNIT_ASSERT_NOT_NULL(test, conn_state);
> @@ -1489,23 +1489,23 @@ static void drm_test_check_output_bpc_format_driver_8bpc_only(struct kunit *test
>  
>  	info = &conn->display_info;
>  	KUNIT_ASSERT_TRUE(test, info->is_hdmi);
>  	KUNIT_ASSERT_GT(test, info->max_tmds_clock, 0);
>  
> -	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> -	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> -
>  	preferred = find_preferred_mode(conn);
>  	KUNIT_ASSERT_NOT_NULL(test, preferred);
>  
>  	/*
>  	 * We're making sure that we have headroom on the TMDS character
>  	 * clock to actually use 12bpc.
>  	 */
>  	rate = drm_hdmi_compute_mode_clock(preferred, 12, HDMI_COLORSPACE_RGB);
>  	KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000);
>  
> +	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> +	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> +
>  	ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
>  	KUNIT_EXPECT_EQ(test, ret, 0);
>  
>  	conn_state = conn->state;
>  	KUNIT_ASSERT_NOT_NULL(test, conn_state);
> @@ -1549,23 +1549,23 @@ static void drm_test_check_output_bpc_format_display_8bpc_only(struct kunit *tes
>  
>  	info = &conn->display_info;
>  	KUNIT_ASSERT_TRUE(test, info->is_hdmi);
>  	KUNIT_ASSERT_GT(test, info->max_tmds_clock, 0);
>  
> -	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> -	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> -
>  	preferred = find_preferred_mode(conn);
>  	KUNIT_ASSERT_NOT_NULL(test, preferred);
>  
>  	/*
>  	 * We're making sure that we have headroom on the TMDS character
>  	 * clock to actually use 12bpc.
>  	 */
>  	rate = drm_hdmi_compute_mode_clock(preferred, 12, HDMI_COLORSPACE_RGB);
>  	KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000);
>  
> +	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
> +	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
> +
>  	ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
>  	KUNIT_EXPECT_EQ(test, ret, 0);
>  
>  	conn_state = conn->state;
>  	KUNIT_ASSERT_NOT_NULL(test, conn_state);
> 
> -- 
> 2.47.1
> 

-- 
Simona Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

  reply	other threads:[~2025-02-04 11:17 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-29 14:21 [PATCH v2 0/4] drm/tests: Fix locking issues (kind of) Maxime Ripard
2025-01-29 14:21 ` [PATCH v2 1/4] drm/tests: hdmi: Fix WW_MUTEX_SLOWPATH failures Maxime Ripard
2025-02-04 11:01   ` Simona Vetter
2025-01-29 14:21 ` [PATCH v2 2/4] drm/tests: hdmi: Remove redundant assignments Maxime Ripard
2025-02-04 11:15   ` Simona Vetter
2025-01-29 14:21 ` [PATCH v2 3/4] drm/tests: hdmi: Reorder DRM entities variables assignment Maxime Ripard
2025-01-29 14:21 ` [PATCH v2 4/4] drm/tests: hdmi: Fix recursive locking Maxime Ripard
2025-02-04 11:17   ` Simona Vetter [this message]
2025-02-04 11:00 ` [PATCH v2 0/4] drm/tests: Fix locking issues (kind of) Simona Vetter
2025-02-06 13:10 ` Maxime Ripard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Z6H3Vv872R9PARK6@phenom.ffwll.local \
    --to=simona.vetter@ffwll.ch \
    --cc=airlied@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mripard@kernel.org \
    --cc=simona@ffwll.ch \
    --cc=tzimmermann@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.