mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-08-27 05:36:11 +00:00
drm/tests: Drop drm_kunit_helper_acquire_ctx_alloc()
lockdep complains when a lock is released in a separate thread the lock is taken in, and it turns out that kunit does run its actions in a separate thread than the test ran in. This means that drm_kunit_helper_acquire_ctx_alloc() just cannot work as it's supposed to, so let's just get rid of it. Suggested-by: Simona Vetter <simona.vetter@ffwll.ch> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Link: https://patchwork.freedesktop.org/patch/msgid/20250220132537.2834168-1-mripard@kernel.org Signed-off-by: Maxime Ripard <mripard@kernel.org>
This commit is contained in:
parent
db505ff68c
commit
30188df0c3
@ -189,7 +189,7 @@ static int set_up_atomic_state(struct kunit *test,
|
||||
static void drm_test_check_connector_changed_modeset(struct kunit *test)
|
||||
{
|
||||
struct drm_atomic_test_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_connector *old_conn, *new_conn;
|
||||
struct drm_atomic_state *state;
|
||||
struct drm_device *drm;
|
||||
@ -203,14 +203,13 @@ static void drm_test_check_connector_changed_modeset(struct kunit *test)
|
||||
old_conn = &priv->connectors[0];
|
||||
new_conn = &priv->connectors[1];
|
||||
|
||||
ctx = drm_kunit_helper_acquire_ctx_alloc(test);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
// first modeset to enable
|
||||
ret = set_up_atomic_state(test, priv, old_conn, ctx);
|
||||
ret = set_up_atomic_state(test, priv, old_conn, &ctx);
|
||||
KUNIT_ASSERT_EQ(test, ret, 0);
|
||||
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
|
||||
|
||||
new_conn_state = drm_atomic_get_connector_state(state, new_conn);
|
||||
@ -231,6 +230,9 @@ static void drm_test_check_connector_changed_modeset(struct kunit *test)
|
||||
ret = drm_atomic_commit(state);
|
||||
KUNIT_ASSERT_EQ(test, ret, 0);
|
||||
KUNIT_ASSERT_EQ(test, modeset_counter, initial_modeset_count + 1);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -263,7 +265,7 @@ static void drm_test_check_valid_clones(struct kunit *test)
|
||||
int ret;
|
||||
const struct drm_clone_mode_test *param = test->param_value;
|
||||
struct drm_atomic_test_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_device *drm;
|
||||
struct drm_atomic_state *state;
|
||||
struct drm_crtc_state *crtc_state;
|
||||
@ -273,13 +275,12 @@ static void drm_test_check_valid_clones(struct kunit *test)
|
||||
|
||||
drm = &priv->drm;
|
||||
|
||||
ctx = drm_kunit_helper_acquire_ctx_alloc(test);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
ret = set_up_atomic_state(test, priv, NULL, ctx);
|
||||
ret = set_up_atomic_state(test, priv, NULL, &ctx);
|
||||
KUNIT_ASSERT_EQ(test, ret, 0);
|
||||
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
|
||||
|
||||
crtc_state = drm_atomic_get_crtc_state(state, priv->crtc);
|
||||
@ -292,6 +293,9 @@ static void drm_test_check_valid_clones(struct kunit *test)
|
||||
|
||||
ret = drm_atomic_helper_check_modeset(drm, state);
|
||||
KUNIT_ASSERT_EQ(test, ret, param->expected_result);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
static void drm_check_in_clone_mode_desc(const struct drm_clone_mode_test *t,
|
||||
|
@ -273,7 +273,7 @@ drm_kunit_helper_connector_hdmi_init(struct kunit *test,
|
||||
static void drm_test_check_broadcast_rgb_crtc_mode_changed(struct kunit *test)
|
||||
{
|
||||
struct drm_atomic_helper_connector_hdmi_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_connector_state *old_conn_state;
|
||||
struct drm_connector_state *new_conn_state;
|
||||
struct drm_crtc_state *crtc_state;
|
||||
@ -296,13 +296,12 @@ static void drm_test_check_broadcast_rgb_crtc_mode_changed(struct kunit *test)
|
||||
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);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, 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);
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
|
||||
|
||||
new_conn_state = drm_atomic_get_connector_state(state, conn);
|
||||
@ -327,6 +326,9 @@ static void drm_test_check_broadcast_rgb_crtc_mode_changed(struct kunit *test)
|
||||
crtc_state = drm_atomic_get_new_crtc_state(state, crtc);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, crtc_state);
|
||||
KUNIT_EXPECT_TRUE(test, crtc_state->mode_changed);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -337,7 +339,7 @@ static void drm_test_check_broadcast_rgb_crtc_mode_changed(struct kunit *test)
|
||||
static void drm_test_check_broadcast_rgb_crtc_mode_not_changed(struct kunit *test)
|
||||
{
|
||||
struct drm_atomic_helper_connector_hdmi_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_connector_state *old_conn_state;
|
||||
struct drm_connector_state *new_conn_state;
|
||||
struct drm_crtc_state *crtc_state;
|
||||
@ -360,13 +362,12 @@ static void drm_test_check_broadcast_rgb_crtc_mode_not_changed(struct kunit *tes
|
||||
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);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, 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);
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
|
||||
|
||||
new_conn_state = drm_atomic_get_connector_state(state, conn);
|
||||
@ -393,6 +394,9 @@ static void drm_test_check_broadcast_rgb_crtc_mode_not_changed(struct kunit *tes
|
||||
crtc_state = drm_atomic_get_new_crtc_state(state, crtc);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, crtc_state);
|
||||
KUNIT_EXPECT_FALSE(test, crtc_state->mode_changed);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -403,7 +407,7 @@ static void drm_test_check_broadcast_rgb_crtc_mode_not_changed(struct kunit *tes
|
||||
static void drm_test_check_broadcast_rgb_auto_cea_mode(struct kunit *test)
|
||||
{
|
||||
struct drm_atomic_helper_connector_hdmi_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_connector_state *conn_state;
|
||||
struct drm_atomic_state *state;
|
||||
struct drm_display_mode *preferred;
|
||||
@ -426,13 +430,12 @@ static void drm_test_check_broadcast_rgb_auto_cea_mode(struct kunit *test)
|
||||
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);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, 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);
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
|
||||
|
||||
conn_state = drm_atomic_get_connector_state(state, conn);
|
||||
@ -449,6 +452,9 @@ static void drm_test_check_broadcast_rgb_auto_cea_mode(struct kunit *test)
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state);
|
||||
|
||||
KUNIT_EXPECT_TRUE(test, conn_state->hdmi.is_limited_range);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -459,7 +465,7 @@ static void drm_test_check_broadcast_rgb_auto_cea_mode(struct kunit *test)
|
||||
static void drm_test_check_broadcast_rgb_auto_cea_mode_vic_1(struct kunit *test)
|
||||
{
|
||||
struct drm_atomic_helper_connector_hdmi_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_connector_state *conn_state;
|
||||
struct drm_atomic_state *state;
|
||||
struct drm_display_mode *mode;
|
||||
@ -477,17 +483,16 @@ static void drm_test_check_broadcast_rgb_auto_cea_mode_vic_1(struct kunit *test)
|
||||
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);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
mode = drm_kunit_display_mode_from_cea_vic(test, drm, 1);
|
||||
KUNIT_ASSERT_NOT_NULL(test, mode);
|
||||
|
||||
crtc = priv->crtc;
|
||||
ret = light_up_connector(test, drm, crtc, conn, mode, ctx);
|
||||
ret = light_up_connector(test, drm, crtc, conn, mode, &ctx);
|
||||
KUNIT_ASSERT_EQ(test, ret, 0);
|
||||
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
|
||||
|
||||
conn_state = drm_atomic_get_connector_state(state, conn);
|
||||
@ -504,6 +509,9 @@ static void drm_test_check_broadcast_rgb_auto_cea_mode_vic_1(struct kunit *test)
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state);
|
||||
|
||||
KUNIT_EXPECT_FALSE(test, conn_state->hdmi.is_limited_range);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -514,7 +522,7 @@ static void drm_test_check_broadcast_rgb_auto_cea_mode_vic_1(struct kunit *test)
|
||||
static void drm_test_check_broadcast_rgb_full_cea_mode(struct kunit *test)
|
||||
{
|
||||
struct drm_atomic_helper_connector_hdmi_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_connector_state *conn_state;
|
||||
struct drm_atomic_state *state;
|
||||
struct drm_display_mode *preferred;
|
||||
@ -537,13 +545,12 @@ static void drm_test_check_broadcast_rgb_full_cea_mode(struct kunit *test)
|
||||
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);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, 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);
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
|
||||
|
||||
conn_state = drm_atomic_get_connector_state(state, conn);
|
||||
@ -562,6 +569,9 @@ static void drm_test_check_broadcast_rgb_full_cea_mode(struct kunit *test)
|
||||
DRM_HDMI_BROADCAST_RGB_FULL);
|
||||
|
||||
KUNIT_EXPECT_FALSE(test, conn_state->hdmi.is_limited_range);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -572,7 +582,7 @@ static void drm_test_check_broadcast_rgb_full_cea_mode(struct kunit *test)
|
||||
static void drm_test_check_broadcast_rgb_full_cea_mode_vic_1(struct kunit *test)
|
||||
{
|
||||
struct drm_atomic_helper_connector_hdmi_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_connector_state *conn_state;
|
||||
struct drm_atomic_state *state;
|
||||
struct drm_display_mode *mode;
|
||||
@ -590,17 +600,16 @@ static void drm_test_check_broadcast_rgb_full_cea_mode_vic_1(struct kunit *test)
|
||||
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);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
mode = drm_kunit_display_mode_from_cea_vic(test, drm, 1);
|
||||
KUNIT_ASSERT_NOT_NULL(test, mode);
|
||||
|
||||
crtc = priv->crtc;
|
||||
ret = light_up_connector(test, drm, crtc, conn, mode, ctx);
|
||||
ret = light_up_connector(test, drm, crtc, conn, mode, &ctx);
|
||||
KUNIT_ASSERT_EQ(test, ret, 0);
|
||||
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
|
||||
|
||||
conn_state = drm_atomic_get_connector_state(state, conn);
|
||||
@ -619,6 +628,9 @@ static void drm_test_check_broadcast_rgb_full_cea_mode_vic_1(struct kunit *test)
|
||||
DRM_HDMI_BROADCAST_RGB_FULL);
|
||||
|
||||
KUNIT_EXPECT_FALSE(test, conn_state->hdmi.is_limited_range);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -629,7 +641,7 @@ static void drm_test_check_broadcast_rgb_full_cea_mode_vic_1(struct kunit *test)
|
||||
static void drm_test_check_broadcast_rgb_limited_cea_mode(struct kunit *test)
|
||||
{
|
||||
struct drm_atomic_helper_connector_hdmi_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_connector_state *conn_state;
|
||||
struct drm_atomic_state *state;
|
||||
struct drm_display_mode *preferred;
|
||||
@ -652,13 +664,12 @@ static void drm_test_check_broadcast_rgb_limited_cea_mode(struct kunit *test)
|
||||
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);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, 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);
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
|
||||
|
||||
conn_state = drm_atomic_get_connector_state(state, conn);
|
||||
@ -677,6 +688,9 @@ static void drm_test_check_broadcast_rgb_limited_cea_mode(struct kunit *test)
|
||||
DRM_HDMI_BROADCAST_RGB_LIMITED);
|
||||
|
||||
KUNIT_EXPECT_TRUE(test, conn_state->hdmi.is_limited_range);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -687,7 +701,7 @@ static void drm_test_check_broadcast_rgb_limited_cea_mode(struct kunit *test)
|
||||
static void drm_test_check_broadcast_rgb_limited_cea_mode_vic_1(struct kunit *test)
|
||||
{
|
||||
struct drm_atomic_helper_connector_hdmi_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_connector_state *conn_state;
|
||||
struct drm_atomic_state *state;
|
||||
struct drm_display_mode *mode;
|
||||
@ -705,17 +719,16 @@ static void drm_test_check_broadcast_rgb_limited_cea_mode_vic_1(struct kunit *te
|
||||
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);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
mode = drm_kunit_display_mode_from_cea_vic(test, drm, 1);
|
||||
KUNIT_ASSERT_NOT_NULL(test, mode);
|
||||
|
||||
crtc = priv->crtc;
|
||||
ret = light_up_connector(test, drm, crtc, conn, mode, ctx);
|
||||
ret = light_up_connector(test, drm, crtc, conn, mode, &ctx);
|
||||
KUNIT_ASSERT_EQ(test, ret, 0);
|
||||
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
|
||||
|
||||
conn_state = drm_atomic_get_connector_state(state, conn);
|
||||
@ -734,6 +747,9 @@ static void drm_test_check_broadcast_rgb_limited_cea_mode_vic_1(struct kunit *te
|
||||
DRM_HDMI_BROADCAST_RGB_LIMITED);
|
||||
|
||||
KUNIT_EXPECT_TRUE(test, conn_state->hdmi.is_limited_range);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -744,7 +760,7 @@ static void drm_test_check_broadcast_rgb_limited_cea_mode_vic_1(struct kunit *te
|
||||
static void drm_test_check_output_bpc_crtc_mode_changed(struct kunit *test)
|
||||
{
|
||||
struct drm_atomic_helper_connector_hdmi_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_connector_state *old_conn_state;
|
||||
struct drm_connector_state *new_conn_state;
|
||||
struct drm_crtc_state *crtc_state;
|
||||
@ -771,13 +787,12 @@ static void drm_test_check_output_bpc_crtc_mode_changed(struct kunit *test)
|
||||
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);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, 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);
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
|
||||
|
||||
new_conn_state = drm_atomic_get_connector_state(state, conn);
|
||||
@ -808,6 +823,9 @@ static void drm_test_check_output_bpc_crtc_mode_changed(struct kunit *test)
|
||||
crtc_state = drm_atomic_get_new_crtc_state(state, crtc);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, crtc_state);
|
||||
KUNIT_EXPECT_TRUE(test, crtc_state->mode_changed);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -818,7 +836,7 @@ static void drm_test_check_output_bpc_crtc_mode_changed(struct kunit *test)
|
||||
static void drm_test_check_output_bpc_crtc_mode_not_changed(struct kunit *test)
|
||||
{
|
||||
struct drm_atomic_helper_connector_hdmi_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_connector_state *old_conn_state;
|
||||
struct drm_connector_state *new_conn_state;
|
||||
struct drm_crtc_state *crtc_state;
|
||||
@ -845,13 +863,12 @@ static void drm_test_check_output_bpc_crtc_mode_not_changed(struct kunit *test)
|
||||
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);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, 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);
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
|
||||
|
||||
new_conn_state = drm_atomic_get_connector_state(state, conn);
|
||||
@ -880,6 +897,9 @@ static void drm_test_check_output_bpc_crtc_mode_not_changed(struct kunit *test)
|
||||
crtc_state = drm_atomic_get_new_crtc_state(state, crtc);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, crtc_state);
|
||||
KUNIT_EXPECT_FALSE(test, crtc_state->mode_changed);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -889,7 +909,7 @@ static void drm_test_check_output_bpc_crtc_mode_not_changed(struct kunit *test)
|
||||
static void drm_test_check_output_bpc_dvi(struct kunit *test)
|
||||
{
|
||||
struct drm_atomic_helper_connector_hdmi_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_connector_state *conn_state;
|
||||
struct drm_display_info *info;
|
||||
struct drm_display_mode *preferred;
|
||||
@ -919,10 +939,9 @@ static void drm_test_check_output_bpc_dvi(struct kunit *test)
|
||||
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);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx);
|
||||
KUNIT_ASSERT_EQ(test, ret, 0);
|
||||
|
||||
conn_state = conn->state;
|
||||
@ -930,6 +949,9 @@ static void drm_test_check_output_bpc_dvi(struct kunit *test)
|
||||
|
||||
KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_bpc, 8);
|
||||
KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_format, HDMI_COLORSPACE_RGB);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -939,7 +961,7 @@ static void drm_test_check_output_bpc_dvi(struct kunit *test)
|
||||
static void drm_test_check_tmds_char_rate_rgb_8bpc(struct kunit *test)
|
||||
{
|
||||
struct drm_atomic_helper_connector_hdmi_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_connector_state *conn_state;
|
||||
struct drm_display_mode *preferred;
|
||||
struct drm_connector *conn;
|
||||
@ -964,10 +986,9 @@ static void drm_test_check_tmds_char_rate_rgb_8bpc(struct kunit *test)
|
||||
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);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx);
|
||||
KUNIT_ASSERT_EQ(test, ret, 0);
|
||||
|
||||
conn_state = conn->state;
|
||||
@ -976,6 +997,9 @@ static void drm_test_check_tmds_char_rate_rgb_8bpc(struct kunit *test)
|
||||
KUNIT_ASSERT_EQ(test, conn_state->hdmi.output_bpc, 8);
|
||||
KUNIT_ASSERT_EQ(test, conn_state->hdmi.output_format, HDMI_COLORSPACE_RGB);
|
||||
KUNIT_EXPECT_EQ(test, conn_state->hdmi.tmds_char_rate, preferred->clock * 1000);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -986,7 +1010,7 @@ static void drm_test_check_tmds_char_rate_rgb_8bpc(struct kunit *test)
|
||||
static void drm_test_check_tmds_char_rate_rgb_10bpc(struct kunit *test)
|
||||
{
|
||||
struct drm_atomic_helper_connector_hdmi_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_connector_state *conn_state;
|
||||
struct drm_display_mode *preferred;
|
||||
struct drm_connector *conn;
|
||||
@ -1011,10 +1035,9 @@ static void drm_test_check_tmds_char_rate_rgb_10bpc(struct kunit *test)
|
||||
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);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx);
|
||||
KUNIT_ASSERT_EQ(test, ret, 0);
|
||||
|
||||
conn_state = conn->state;
|
||||
@ -1023,6 +1046,9 @@ static void drm_test_check_tmds_char_rate_rgb_10bpc(struct kunit *test)
|
||||
KUNIT_ASSERT_EQ(test, conn_state->hdmi.output_bpc, 10);
|
||||
KUNIT_ASSERT_EQ(test, conn_state->hdmi.output_format, HDMI_COLORSPACE_RGB);
|
||||
KUNIT_EXPECT_EQ(test, conn_state->hdmi.tmds_char_rate, preferred->clock * 1250);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1033,7 +1059,7 @@ static void drm_test_check_tmds_char_rate_rgb_10bpc(struct kunit *test)
|
||||
static void drm_test_check_tmds_char_rate_rgb_12bpc(struct kunit *test)
|
||||
{
|
||||
struct drm_atomic_helper_connector_hdmi_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_connector_state *conn_state;
|
||||
struct drm_display_mode *preferred;
|
||||
struct drm_connector *conn;
|
||||
@ -1058,10 +1084,9 @@ static void drm_test_check_tmds_char_rate_rgb_12bpc(struct kunit *test)
|
||||
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);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx);
|
||||
KUNIT_ASSERT_EQ(test, ret, 0);
|
||||
|
||||
conn_state = conn->state;
|
||||
@ -1070,6 +1095,9 @@ static void drm_test_check_tmds_char_rate_rgb_12bpc(struct kunit *test)
|
||||
KUNIT_ASSERT_EQ(test, conn_state->hdmi.output_bpc, 12);
|
||||
KUNIT_ASSERT_EQ(test, conn_state->hdmi.output_format, HDMI_COLORSPACE_RGB);
|
||||
KUNIT_EXPECT_EQ(test, conn_state->hdmi.tmds_char_rate, preferred->clock * 1500);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1083,7 +1111,7 @@ static void drm_test_check_tmds_char_rate_rgb_12bpc(struct kunit *test)
|
||||
static void drm_test_check_hdmi_funcs_reject_rate(struct kunit *test)
|
||||
{
|
||||
struct drm_atomic_helper_connector_hdmi_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_atomic_state *state;
|
||||
struct drm_display_mode *preferred;
|
||||
struct drm_crtc_state *crtc_state;
|
||||
@ -1104,16 +1132,15 @@ static void drm_test_check_hdmi_funcs_reject_rate(struct kunit *test)
|
||||
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);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, 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;
|
||||
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
|
||||
|
||||
crtc_state = drm_atomic_get_crtc_state(state, crtc);
|
||||
@ -1123,6 +1150,9 @@ static void drm_test_check_hdmi_funcs_reject_rate(struct kunit *test)
|
||||
|
||||
ret = drm_atomic_check_only(state);
|
||||
KUNIT_EXPECT_LT(test, ret, 0);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1139,7 +1169,7 @@ static void drm_test_check_hdmi_funcs_reject_rate(struct kunit *test)
|
||||
static void drm_test_check_max_tmds_rate_bpc_fallback(struct kunit *test)
|
||||
{
|
||||
struct drm_atomic_helper_connector_hdmi_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_connector_state *conn_state;
|
||||
struct drm_display_info *info;
|
||||
struct drm_display_mode *preferred;
|
||||
@ -1176,10 +1206,9 @@ static void drm_test_check_max_tmds_rate_bpc_fallback(struct kunit *test)
|
||||
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);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx);
|
||||
KUNIT_EXPECT_EQ(test, ret, 0);
|
||||
|
||||
conn_state = conn->state;
|
||||
@ -1188,6 +1217,9 @@ static void drm_test_check_max_tmds_rate_bpc_fallback(struct kunit *test)
|
||||
KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_bpc, 10);
|
||||
KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_format, HDMI_COLORSPACE_RGB);
|
||||
KUNIT_EXPECT_EQ(test, conn_state->hdmi.tmds_char_rate, preferred->clock * 1250);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1206,7 +1238,7 @@ static void drm_test_check_max_tmds_rate_bpc_fallback(struct kunit *test)
|
||||
static void drm_test_check_max_tmds_rate_format_fallback(struct kunit *test)
|
||||
{
|
||||
struct drm_atomic_helper_connector_hdmi_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_connector_state *conn_state;
|
||||
struct drm_display_info *info;
|
||||
struct drm_display_mode *preferred;
|
||||
@ -1248,10 +1280,9 @@ static void drm_test_check_max_tmds_rate_format_fallback(struct kunit *test)
|
||||
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);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx);
|
||||
KUNIT_EXPECT_EQ(test, ret, 0);
|
||||
|
||||
conn_state = conn->state;
|
||||
@ -1259,6 +1290,9 @@ static void drm_test_check_max_tmds_rate_format_fallback(struct kunit *test)
|
||||
|
||||
KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_bpc, 10);
|
||||
KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_format, HDMI_COLORSPACE_RGB);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1269,7 +1303,7 @@ static void drm_test_check_max_tmds_rate_format_fallback(struct kunit *test)
|
||||
static void drm_test_check_output_bpc_format_vic_1(struct kunit *test)
|
||||
{
|
||||
struct drm_atomic_helper_connector_hdmi_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_connector_state *conn_state;
|
||||
struct drm_display_info *info;
|
||||
struct drm_display_mode *mode;
|
||||
@ -1310,11 +1344,10 @@ static void drm_test_check_output_bpc_format_vic_1(struct kunit *test)
|
||||
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);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
crtc = priv->crtc;
|
||||
ret = light_up_connector(test, drm, crtc, conn, mode, ctx);
|
||||
ret = light_up_connector(test, drm, crtc, conn, mode, &ctx);
|
||||
KUNIT_EXPECT_EQ(test, ret, 0);
|
||||
|
||||
conn_state = conn->state;
|
||||
@ -1322,6 +1355,9 @@ static void drm_test_check_output_bpc_format_vic_1(struct kunit *test)
|
||||
|
||||
KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_bpc, 8);
|
||||
KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_format, HDMI_COLORSPACE_RGB);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1331,7 +1367,7 @@ static void drm_test_check_output_bpc_format_vic_1(struct kunit *test)
|
||||
static void drm_test_check_output_bpc_format_driver_rgb_only(struct kunit *test)
|
||||
{
|
||||
struct drm_atomic_helper_connector_hdmi_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_connector_state *conn_state;
|
||||
struct drm_display_info *info;
|
||||
struct drm_display_mode *preferred;
|
||||
@ -1376,10 +1412,9 @@ static void drm_test_check_output_bpc_format_driver_rgb_only(struct kunit *test)
|
||||
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);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx);
|
||||
KUNIT_EXPECT_EQ(test, ret, 0);
|
||||
|
||||
conn_state = conn->state;
|
||||
@ -1387,6 +1422,9 @@ static void drm_test_check_output_bpc_format_driver_rgb_only(struct kunit *test)
|
||||
|
||||
KUNIT_EXPECT_LT(test, conn_state->hdmi.output_bpc, 12);
|
||||
KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_format, HDMI_COLORSPACE_RGB);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1396,7 +1434,7 @@ static void drm_test_check_output_bpc_format_driver_rgb_only(struct kunit *test)
|
||||
static void drm_test_check_output_bpc_format_display_rgb_only(struct kunit *test)
|
||||
{
|
||||
struct drm_atomic_helper_connector_hdmi_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_connector_state *conn_state;
|
||||
struct drm_display_info *info;
|
||||
struct drm_display_mode *preferred;
|
||||
@ -1443,10 +1481,9 @@ static void drm_test_check_output_bpc_format_display_rgb_only(struct kunit *test
|
||||
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);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx);
|
||||
KUNIT_EXPECT_EQ(test, ret, 0);
|
||||
|
||||
conn_state = conn->state;
|
||||
@ -1454,6 +1491,9 @@ static void drm_test_check_output_bpc_format_display_rgb_only(struct kunit *test
|
||||
|
||||
KUNIT_EXPECT_LT(test, conn_state->hdmi.output_bpc, 12);
|
||||
KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_format, HDMI_COLORSPACE_RGB);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1464,7 +1504,7 @@ static void drm_test_check_output_bpc_format_display_rgb_only(struct kunit *test
|
||||
static void drm_test_check_output_bpc_format_driver_8bpc_only(struct kunit *test)
|
||||
{
|
||||
struct drm_atomic_helper_connector_hdmi_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_connector_state *conn_state;
|
||||
struct drm_display_info *info;
|
||||
struct drm_display_mode *preferred;
|
||||
@ -1501,10 +1541,9 @@ static void drm_test_check_output_bpc_format_driver_8bpc_only(struct kunit *test
|
||||
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);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx);
|
||||
KUNIT_EXPECT_EQ(test, ret, 0);
|
||||
|
||||
conn_state = conn->state;
|
||||
@ -1512,6 +1551,9 @@ static void drm_test_check_output_bpc_format_driver_8bpc_only(struct kunit *test
|
||||
|
||||
KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_bpc, 8);
|
||||
KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_format, HDMI_COLORSPACE_RGB);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1522,7 +1564,7 @@ static void drm_test_check_output_bpc_format_driver_8bpc_only(struct kunit *test
|
||||
static void drm_test_check_output_bpc_format_display_8bpc_only(struct kunit *test)
|
||||
{
|
||||
struct drm_atomic_helper_connector_hdmi_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_connector_state *conn_state;
|
||||
struct drm_display_info *info;
|
||||
struct drm_display_mode *preferred;
|
||||
@ -1561,10 +1603,9 @@ static void drm_test_check_output_bpc_format_display_8bpc_only(struct kunit *tes
|
||||
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);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, ctx);
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx);
|
||||
KUNIT_EXPECT_EQ(test, ret, 0);
|
||||
|
||||
conn_state = conn->state;
|
||||
@ -1572,13 +1613,16 @@ static void drm_test_check_output_bpc_format_display_8bpc_only(struct kunit *tes
|
||||
|
||||
KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_bpc, 8);
|
||||
KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_format, HDMI_COLORSPACE_RGB);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/* Test that atomic check succeeds when disabling a connector. */
|
||||
static void drm_test_check_disable_connector(struct kunit *test)
|
||||
{
|
||||
struct drm_atomic_helper_connector_hdmi_priv *priv;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_connector_state *conn_state;
|
||||
struct drm_crtc_state *crtc_state;
|
||||
struct drm_atomic_state *state;
|
||||
@ -1593,8 +1637,7 @@ static void drm_test_check_disable_connector(struct kunit *test)
|
||||
8);
|
||||
KUNIT_ASSERT_NOT_NULL(test, priv);
|
||||
|
||||
ctx = drm_kunit_helper_acquire_ctx_alloc(test);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
conn = &priv->connector;
|
||||
preferred = find_preferred_mode(conn);
|
||||
@ -1602,10 +1645,10 @@ static void drm_test_check_disable_connector(struct kunit *test)
|
||||
|
||||
drm = &priv->drm;
|
||||
crtc = priv->crtc;
|
||||
ret = light_up_connector(test, drm, crtc, conn, preferred, 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);
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
|
||||
|
||||
crtc_state = drm_atomic_get_crtc_state(state, crtc);
|
||||
@ -1623,6 +1666,9 @@ static void drm_test_check_disable_connector(struct kunit *test)
|
||||
|
||||
ret = drm_atomic_check_only(state);
|
||||
KUNIT_ASSERT_EQ(test, ret, 0);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
static struct kunit_case drm_atomic_helper_connector_hdmi_check_tests[] = {
|
||||
|
@ -80,47 +80,6 @@ __drm_kunit_helper_alloc_drm_device_with_driver(struct kunit *test,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(__drm_kunit_helper_alloc_drm_device_with_driver);
|
||||
|
||||
static void action_drm_release_context(void *ptr)
|
||||
{
|
||||
struct drm_modeset_acquire_ctx *ctx = ptr;
|
||||
|
||||
drm_modeset_drop_locks(ctx);
|
||||
drm_modeset_acquire_fini(ctx);
|
||||
}
|
||||
|
||||
/**
|
||||
* drm_kunit_helper_acquire_ctx_alloc - Allocates an acquire context
|
||||
* @test: The test context object
|
||||
*
|
||||
* Allocates and initializes a modeset acquire context.
|
||||
*
|
||||
* The context is tied to the kunit test context, so we must not call
|
||||
* drm_modeset_acquire_fini() on it, it will be done so automatically.
|
||||
*
|
||||
* Returns:
|
||||
* An ERR_PTR on error, a pointer to the newly allocated context otherwise
|
||||
*/
|
||||
struct drm_modeset_acquire_ctx *
|
||||
drm_kunit_helper_acquire_ctx_alloc(struct kunit *test)
|
||||
{
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
int ret;
|
||||
|
||||
ctx = kunit_kzalloc(test, sizeof(*ctx), GFP_KERNEL);
|
||||
KUNIT_ASSERT_NOT_NULL(test, ctx);
|
||||
|
||||
drm_modeset_acquire_init(ctx, 0);
|
||||
|
||||
ret = kunit_add_action_or_reset(test,
|
||||
action_drm_release_context,
|
||||
ctx);
|
||||
if (ret)
|
||||
return ERR_PTR(ret);
|
||||
|
||||
return ctx;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(drm_kunit_helper_acquire_ctx_alloc);
|
||||
|
||||
static void kunit_action_drm_atomic_state_put(void *ptr)
|
||||
{
|
||||
struct drm_atomic_state *state = ptr;
|
||||
|
@ -724,7 +724,7 @@ static void drm_vc4_test_pv_muxing_invalid(struct kunit *test)
|
||||
static int vc4_pv_muxing_test_init(struct kunit *test)
|
||||
{
|
||||
const struct pv_muxing_param *params = test->param_value;
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct pv_muxing_priv *priv;
|
||||
struct drm_device *drm;
|
||||
struct vc4_dev *vc4;
|
||||
@ -737,13 +737,15 @@ static int vc4_pv_muxing_test_init(struct kunit *test)
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, vc4);
|
||||
priv->vc4 = vc4;
|
||||
|
||||
ctx = drm_kunit_helper_acquire_ctx_alloc(test);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
drm = &vc4->base;
|
||||
priv->state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
|
||||
priv->state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, priv->state);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -782,7 +784,7 @@ static struct kunit_suite vc5_pv_muxing_test_suite = {
|
||||
*/
|
||||
static void drm_test_vc5_pv_muxing_bugs_subsequent_crtc_enable(struct kunit *test)
|
||||
{
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_atomic_state *state;
|
||||
struct vc4_crtc_state *new_vc4_crtc_state;
|
||||
struct vc4_hvs_state *new_hvs_state;
|
||||
@ -795,11 +797,10 @@ static void drm_test_vc5_pv_muxing_bugs_subsequent_crtc_enable(struct kunit *tes
|
||||
vc4 = vc5_mock_device(test);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, vc4);
|
||||
|
||||
ctx = drm_kunit_helper_acquire_ctx_alloc(test);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
drm = &vc4->base;
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
|
||||
|
||||
ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
|
||||
@ -822,7 +823,7 @@ static void drm_test_vc5_pv_muxing_bugs_subsequent_crtc_enable(struct kunit *tes
|
||||
ret = drm_atomic_helper_swap_state(state, false);
|
||||
KUNIT_ASSERT_EQ(test, ret, 0);
|
||||
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
|
||||
|
||||
ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
|
||||
@ -843,6 +844,9 @@ static void drm_test_vc5_pv_muxing_bugs_subsequent_crtc_enable(struct kunit *tes
|
||||
KUNIT_ASSERT_TRUE(test, new_hvs_state->fifo_state[hdmi1_channel].in_use);
|
||||
|
||||
KUNIT_EXPECT_NE(test, hdmi0_channel, hdmi1_channel);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -854,7 +858,7 @@ static void drm_test_vc5_pv_muxing_bugs_subsequent_crtc_enable(struct kunit *tes
|
||||
*/
|
||||
static void drm_test_vc5_pv_muxing_bugs_stable_fifo(struct kunit *test)
|
||||
{
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_atomic_state *state;
|
||||
struct vc4_crtc_state *new_vc4_crtc_state;
|
||||
struct vc4_hvs_state *new_hvs_state;
|
||||
@ -867,11 +871,10 @@ static void drm_test_vc5_pv_muxing_bugs_stable_fifo(struct kunit *test)
|
||||
vc4 = vc5_mock_device(test);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, vc4);
|
||||
|
||||
ctx = drm_kunit_helper_acquire_ctx_alloc(test);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
drm = &vc4->base;
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
|
||||
|
||||
ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
|
||||
@ -905,7 +908,7 @@ static void drm_test_vc5_pv_muxing_bugs_stable_fifo(struct kunit *test)
|
||||
ret = drm_atomic_helper_swap_state(state, false);
|
||||
KUNIT_ASSERT_EQ(test, ret, 0);
|
||||
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
|
||||
|
||||
ret = vc4_mock_atomic_del_output(test, state, VC4_ENCODER_TYPE_HDMI0);
|
||||
@ -929,6 +932,9 @@ static void drm_test_vc5_pv_muxing_bugs_stable_fifo(struct kunit *test)
|
||||
|
||||
KUNIT_EXPECT_EQ(test, old_hdmi1_channel, hdmi1_channel);
|
||||
}
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -949,7 +955,7 @@ static void drm_test_vc5_pv_muxing_bugs_stable_fifo(struct kunit *test)
|
||||
static void
|
||||
drm_test_vc5_pv_muxing_bugs_subsequent_crtc_enable_too_many_crtc_state(struct kunit *test)
|
||||
{
|
||||
struct drm_modeset_acquire_ctx *ctx;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
struct drm_atomic_state *state;
|
||||
struct vc4_crtc_state *new_vc4_crtc_state;
|
||||
struct drm_device *drm;
|
||||
@ -959,11 +965,10 @@ drm_test_vc5_pv_muxing_bugs_subsequent_crtc_enable_too_many_crtc_state(struct ku
|
||||
vc4 = vc5_mock_device(test);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, vc4);
|
||||
|
||||
ctx = drm_kunit_helper_acquire_ctx_alloc(test);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
|
||||
drm_modeset_acquire_init(&ctx, 0);
|
||||
|
||||
drm = &vc4->base;
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
|
||||
|
||||
ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
|
||||
@ -975,7 +980,7 @@ drm_test_vc5_pv_muxing_bugs_subsequent_crtc_enable_too_many_crtc_state(struct ku
|
||||
ret = drm_atomic_helper_swap_state(state, false);
|
||||
KUNIT_ASSERT_EQ(test, ret, 0);
|
||||
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
|
||||
state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
|
||||
|
||||
ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
|
||||
@ -987,6 +992,9 @@ drm_test_vc5_pv_muxing_bugs_subsequent_crtc_enable_too_many_crtc_state(struct ku
|
||||
new_vc4_crtc_state = get_vc4_crtc_state_for_encoder(test, state,
|
||||
VC4_ENCODER_TYPE_HDMI0);
|
||||
KUNIT_EXPECT_NULL(test, new_vc4_crtc_state);
|
||||
|
||||
drm_modeset_drop_locks(&ctx);
|
||||
drm_modeset_acquire_fini(&ctx);
|
||||
}
|
||||
|
||||
static struct kunit_case vc5_pv_muxing_bugs_tests[] = {
|
||||
|
@ -95,8 +95,6 @@ __drm_kunit_helper_alloc_drm_device(struct kunit *test,
|
||||
sizeof(_type), \
|
||||
offsetof(_type, _member), \
|
||||
_feat))
|
||||
struct drm_modeset_acquire_ctx *
|
||||
drm_kunit_helper_acquire_ctx_alloc(struct kunit *test);
|
||||
|
||||
struct drm_atomic_state *
|
||||
drm_kunit_helper_atomic_state_alloc(struct kunit *test,
|
||||
|
Loading…
Reference in New Issue
Block a user