summaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-6.1/950-0978-drm-vc4-tests-Return-the-allocated-output.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/bcm27xx/patches-6.1/950-0978-drm-vc4-tests-Return-the-allocated-output.patch')
-rw-r--r--target/linux/bcm27xx/patches-6.1/950-0978-drm-vc4-tests-Return-the-allocated-output.patch174
1 files changed, 174 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-6.1/950-0978-drm-vc4-tests-Return-the-allocated-output.patch b/target/linux/bcm27xx/patches-6.1/950-0978-drm-vc4-tests-Return-the-allocated-output.patch
new file mode 100644
index 0000000000..6f49d52f32
--- /dev/null
+++ b/target/linux/bcm27xx/patches-6.1/950-0978-drm-vc4-tests-Return-the-allocated-output.patch
@@ -0,0 +1,174 @@
+From 14e97c5765579eaab3c8372701750ffa30e4c7da Mon Sep 17 00:00:00 2001
+From: Maxime Ripard <maxime@cerno.tech>
+Date: Fri, 24 Mar 2023 10:02:59 +0100
+Subject: [PATCH] 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>
+---
+ drivers/gpu/drm/vc4/tests/vc4_mock.h | 7 ++--
+ drivers/gpu/drm/vc4/tests/vc4_mock_output.c | 9 +++--
+ .../gpu/drm/vc4/tests/vc4_test_pv_muxing.c | 37 +++++++++++--------
+ 3 files changed, 30 insertions(+), 23 deletions(-)
+
+--- a/drivers/gpu/drm/vc4/tests/vc4_mock.h
++++ b/drivers/gpu/drm/vc4/tests/vc4_mock.h
+@@ -53,9 +53,10 @@ struct vc4_dummy_output *vc4_dummy_outpu
+ struct vc4_dev *vc4_mock_device(struct kunit *test);
+ struct vc4_dev *vc5_mock_device(struct kunit *test);
+
+-int vc4_mock_atomic_add_output(struct kunit *test,
+- struct drm_atomic_state *state,
+- enum vc4_encoder_type type);
++struct vc4_dummy_output *
++vc4_mock_atomic_add_output(struct kunit *test,
++ struct drm_atomic_state *state,
++ enum vc4_encoder_type type);
+ int vc4_mock_atomic_del_output(struct kunit *test,
+ struct drm_atomic_state *state,
+ enum vc4_encoder_type type);
+--- a/drivers/gpu/drm/vc4/tests/vc4_mock_output.c
++++ b/drivers/gpu/drm/vc4/tests/vc4_mock_output.c
+@@ -61,9 +61,10 @@ static const struct drm_display_mode def
+ DRM_SIMPLE_MODE(640, 480, 64, 48)
+ };
+
+-int vc4_mock_atomic_add_output(struct kunit *test,
+- struct drm_atomic_state *state,
+- enum vc4_encoder_type type)
++struct vc4_dummy_output *
++vc4_mock_atomic_add_output(struct kunit *test,
++ struct drm_atomic_state *state,
++ enum vc4_encoder_type type)
+ {
+ struct drm_device *drm = state->dev;
+ struct drm_connector_state *conn_state;
+@@ -96,7 +97,7 @@ int vc4_mock_atomic_add_output(struct ku
+
+ crtc_state->active = true;
+
+- return 0;
++ return output;
+ }
+
+ int vc4_mock_atomic_del_output(struct kunit *test,
+--- a/drivers/gpu/drm/vc4/tests/vc4_test_pv_muxing.c
++++ b/drivers/gpu/drm/vc4/tests/vc4_test_pv_muxing.c
+@@ -683,10 +683,11 @@ static void drm_vc4_test_pv_muxing(struc
+ int ret;
+
+ for (i = 0; i < params->nencoders; i++) {
++ struct vc4_dummy_output *output;
+ enum vc4_encoder_type enc_type = params->encoders[i];
+
+- ret = vc4_mock_atomic_add_output(test, state, enc_type);
+- KUNIT_ASSERT_EQ(test, ret, 0);
++ output = vc4_mock_atomic_add_output(test, state, enc_type);
++ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
+ }
+
+ ret = drm_atomic_check_only(state);
+@@ -712,10 +713,11 @@ static void drm_vc4_test_pv_muxing_inval
+ int ret;
+
+ for (i = 0; i < params->nencoders; i++) {
++ struct vc4_dummy_output *output;
+ enum vc4_encoder_type enc_type = params->encoders[i];
+
+- ret = vc4_mock_atomic_add_output(test, state, enc_type);
+- KUNIT_ASSERT_EQ(test, ret, 0);
++ output = vc4_mock_atomic_add_output(test, state, enc_type);
++ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
+ }
+
+ ret = drm_atomic_check_only(state);
+@@ -804,6 +806,7 @@ static void drm_test_vc5_pv_muxing_bugs_
+ {
+ struct drm_modeset_acquire_ctx ctx;
+ struct drm_atomic_state *state;
++ struct vc4_dummy_output *output;
+ struct vc4_crtc_state *new_vc4_crtc_state;
+ struct vc4_hvs_state *new_hvs_state;
+ unsigned int hdmi0_channel;
+@@ -823,8 +826,8 @@ static void drm_test_vc5_pv_muxing_bugs_
+
+ state->acquire_ctx = &ctx;
+
+- ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
+- KUNIT_ASSERT_EQ(test, ret, 0);
++ output = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
++ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
+
+ ret = drm_atomic_check_only(state);
+ KUNIT_ASSERT_EQ(test, ret, 0);
+@@ -850,8 +853,8 @@ static void drm_test_vc5_pv_muxing_bugs_
+
+ state->acquire_ctx = &ctx;
+
+- ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
+- KUNIT_ASSERT_EQ(test, ret, 0);
++ output = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
++ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
+
+ ret = drm_atomic_check_only(state);
+ KUNIT_ASSERT_EQ(test, ret, 0);
+@@ -880,6 +883,7 @@ static void drm_test_vc5_pv_muxing_bugs_
+ {
+ struct drm_modeset_acquire_ctx ctx;
+ struct drm_atomic_state *state;
++ struct vc4_dummy_output *output;
+ struct vc4_crtc_state *new_vc4_crtc_state;
+ struct vc4_hvs_state *new_hvs_state;
+ unsigned int old_hdmi0_channel;
+@@ -899,11 +903,11 @@ static void drm_test_vc5_pv_muxing_bugs_
+
+ state->acquire_ctx = &ctx;
+
+- ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
+- KUNIT_ASSERT_EQ(test, ret, 0);
++ output = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
++ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
+
+- ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
+- KUNIT_ASSERT_EQ(test, ret, 0);
++ output = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
++ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
+
+ ret = drm_atomic_check_only(state);
+ KUNIT_ASSERT_EQ(test, ret, 0);
+@@ -971,6 +975,7 @@ drm_test_vc5_pv_muxing_bugs_subsequent_c
+ {
+ struct drm_modeset_acquire_ctx ctx;
+ struct drm_atomic_state *state;
++ struct vc4_dummy_output *output;
+ struct vc4_crtc_state *new_vc4_crtc_state;
+ struct drm_device *drm;
+ struct vc4_dev *vc4;
+@@ -987,8 +992,8 @@ drm_test_vc5_pv_muxing_bugs_subsequent_c
+
+ state->acquire_ctx = &ctx;
+
+- ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
+- KUNIT_ASSERT_EQ(test, ret, 0);
++ output = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
++ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
+
+ ret = drm_atomic_check_only(state);
+ KUNIT_ASSERT_EQ(test, ret, 0);
+@@ -1003,8 +1008,8 @@ drm_test_vc5_pv_muxing_bugs_subsequent_c
+
+ state->acquire_ctx = &ctx;
+
+- ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
+- KUNIT_ASSERT_EQ(test, ret, 0);
++ output = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
++ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
+
+ ret = drm_atomic_check_only(state);
+ KUNIT_ASSERT_EQ(test, ret, 0);