Skip to content

Commit 5152e1d

Browse files
mripardpopcornmix
authored andcommitted
drm/vc4: tests: Return the allocated output
Some tests will need to retrieve the output that was just allocated by vc4_mock_atomic_add_output(). Instead of making them look them up in the DRM device, we can simply make vc4_mock_atomic_add_output() return an error pointer that holds the allocated output instead of the error code. Signed-off-by: Maxime Ripard <maxime@cerno.tech>
1 parent 5e8ff13 commit 5152e1d

File tree

3 files changed

+30
-23
lines changed

3 files changed

+30
-23
lines changed

drivers/gpu/drm/vc4/tests/vc4_mock.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,10 @@ struct vc4_dummy_output *vc4_dummy_output(struct kunit *test,
5151
struct vc4_dev *vc4_mock_device(struct kunit *test);
5252
struct vc4_dev *vc5_mock_device(struct kunit *test);
5353

54-
int vc4_mock_atomic_add_output(struct kunit *test,
55-
struct drm_atomic_state *state,
56-
enum vc4_encoder_type type);
54+
struct vc4_dummy_output *
55+
vc4_mock_atomic_add_output(struct kunit *test,
56+
struct drm_atomic_state *state,
57+
enum vc4_encoder_type type);
5758
int vc4_mock_atomic_del_output(struct kunit *test,
5859
struct drm_atomic_state *state,
5960
enum vc4_encoder_type type);

drivers/gpu/drm/vc4/tests/vc4_mock_output.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,10 @@ static const struct drm_display_mode default_mode = {
6161
DRM_SIMPLE_MODE(640, 480, 64, 48)
6262
};
6363

64-
int vc4_mock_atomic_add_output(struct kunit *test,
65-
struct drm_atomic_state *state,
66-
enum vc4_encoder_type type)
64+
struct vc4_dummy_output *
65+
vc4_mock_atomic_add_output(struct kunit *test,
66+
struct drm_atomic_state *state,
67+
enum vc4_encoder_type type)
6768
{
6869
struct drm_device *drm = state->dev;
6970
struct drm_connector_state *conn_state;
@@ -96,7 +97,7 @@ int vc4_mock_atomic_add_output(struct kunit *test,
9697

9798
crtc_state->active = true;
9899

99-
return 0;
100+
return output;
100101
}
101102

102103
int vc4_mock_atomic_del_output(struct kunit *test,

drivers/gpu/drm/vc4/tests/vc4_test_pv_muxing.c

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -682,10 +682,11 @@ static void drm_vc4_test_pv_muxing(struct kunit *test)
682682
int ret;
683683

684684
for (i = 0; i < params->nencoders; i++) {
685+
struct vc4_dummy_output *output;
685686
enum vc4_encoder_type enc_type = params->encoders[i];
686687

687-
ret = vc4_mock_atomic_add_output(test, state, enc_type);
688-
KUNIT_ASSERT_EQ(test, ret, 0);
688+
output = vc4_mock_atomic_add_output(test, state, enc_type);
689+
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
689690
}
690691

691692
ret = drm_atomic_check_only(state);
@@ -711,10 +712,11 @@ static void drm_vc4_test_pv_muxing_invalid(struct kunit *test)
711712
int ret;
712713

713714
for (i = 0; i < params->nencoders; i++) {
715+
struct vc4_dummy_output *output;
714716
enum vc4_encoder_type enc_type = params->encoders[i];
715717

716-
ret = vc4_mock_atomic_add_output(test, state, enc_type);
717-
KUNIT_ASSERT_EQ(test, ret, 0);
718+
output = vc4_mock_atomic_add_output(test, state, enc_type);
719+
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
718720
}
719721

720722
ret = drm_atomic_check_only(state);
@@ -784,6 +786,7 @@ static void drm_test_vc5_pv_muxing_bugs_subsequent_crtc_enable(struct kunit *tes
784786
{
785787
struct drm_modeset_acquire_ctx *ctx;
786788
struct drm_atomic_state *state;
789+
struct vc4_dummy_output *output;
787790
struct vc4_crtc_state *new_vc4_crtc_state;
788791
struct vc4_hvs_state *new_hvs_state;
789792
unsigned int hdmi0_channel;
@@ -802,8 +805,8 @@ static void drm_test_vc5_pv_muxing_bugs_subsequent_crtc_enable(struct kunit *tes
802805
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
803806
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
804807

805-
ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
806-
KUNIT_ASSERT_EQ(test, ret, 0);
808+
output = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
809+
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
807810

808811
ret = drm_atomic_check_only(state);
809812
KUNIT_ASSERT_EQ(test, ret, 0);
@@ -825,8 +828,8 @@ static void drm_test_vc5_pv_muxing_bugs_subsequent_crtc_enable(struct kunit *tes
825828
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
826829
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
827830

828-
ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
829-
KUNIT_ASSERT_EQ(test, ret, 0);
831+
output = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
832+
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
830833

831834
ret = drm_atomic_check_only(state);
832835
KUNIT_ASSERT_EQ(test, ret, 0);
@@ -856,6 +859,7 @@ static void drm_test_vc5_pv_muxing_bugs_stable_fifo(struct kunit *test)
856859
{
857860
struct drm_modeset_acquire_ctx *ctx;
858861
struct drm_atomic_state *state;
862+
struct vc4_dummy_output *output;
859863
struct vc4_crtc_state *new_vc4_crtc_state;
860864
struct vc4_hvs_state *new_hvs_state;
861865
unsigned int old_hdmi0_channel;
@@ -874,11 +878,11 @@ static void drm_test_vc5_pv_muxing_bugs_stable_fifo(struct kunit *test)
874878
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
875879
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
876880

877-
ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
878-
KUNIT_ASSERT_EQ(test, ret, 0);
881+
output = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
882+
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
879883

880-
ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
881-
KUNIT_ASSERT_EQ(test, ret, 0);
884+
output = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
885+
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
882886

883887
ret = drm_atomic_check_only(state);
884888
KUNIT_ASSERT_EQ(test, ret, 0);
@@ -951,6 +955,7 @@ drm_test_vc5_pv_muxing_bugs_subsequent_crtc_enable_too_many_crtc_state(struct ku
951955
{
952956
struct drm_modeset_acquire_ctx *ctx;
953957
struct drm_atomic_state *state;
958+
struct vc4_dummy_output *output;
954959
struct vc4_crtc_state *new_vc4_crtc_state;
955960
struct drm_device *drm;
956961
struct vc4_dev *vc4;
@@ -966,8 +971,8 @@ drm_test_vc5_pv_muxing_bugs_subsequent_crtc_enable_too_many_crtc_state(struct ku
966971
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
967972
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
968973

969-
ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
970-
KUNIT_ASSERT_EQ(test, ret, 0);
974+
output = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
975+
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
971976

972977
ret = drm_atomic_check_only(state);
973978
KUNIT_ASSERT_EQ(test, ret, 0);
@@ -978,8 +983,8 @@ drm_test_vc5_pv_muxing_bugs_subsequent_crtc_enable_too_many_crtc_state(struct ku
978983
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
979984
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
980985

981-
ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
982-
KUNIT_ASSERT_EQ(test, ret, 0);
986+
output = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
987+
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
983988

984989
ret = drm_atomic_check_only(state);
985990
KUNIT_ASSERT_EQ(test, ret, 0);

0 commit comments

Comments
 (0)