bcm27xx: update 6.1 patches to latest version
[openwrt/staging/dangole.git] / target / linux / bcm27xx / patches-6.1 / 950-0978-drm-vc4-tests-Return-the-allocated-output.patch
1 From 14e97c5765579eaab3c8372701750ffa30e4c7da Mon Sep 17 00:00:00 2001
2 From: Maxime Ripard <maxime@cerno.tech>
3 Date: Fri, 24 Mar 2023 10:02:59 +0100
4 Subject: [PATCH] drm/vc4: tests: Return the allocated output
5
6 Some tests will need to retrieve the output that was just allocated by
7 vc4_mock_atomic_add_output().
8
9 Instead of making them look them up in the DRM device, we can simply
10 make vc4_mock_atomic_add_output() return an error pointer that holds the
11 allocated output instead of the error code.
12
13 Signed-off-by: Maxime Ripard <maxime@cerno.tech>
14 ---
15 drivers/gpu/drm/vc4/tests/vc4_mock.h | 7 ++--
16 drivers/gpu/drm/vc4/tests/vc4_mock_output.c | 9 +++--
17 .../gpu/drm/vc4/tests/vc4_test_pv_muxing.c | 37 +++++++++++--------
18 3 files changed, 30 insertions(+), 23 deletions(-)
19
20 --- a/drivers/gpu/drm/vc4/tests/vc4_mock.h
21 +++ b/drivers/gpu/drm/vc4/tests/vc4_mock.h
22 @@ -53,9 +53,10 @@ struct vc4_dummy_output *vc4_dummy_outpu
23 struct vc4_dev *vc4_mock_device(struct kunit *test);
24 struct vc4_dev *vc5_mock_device(struct kunit *test);
25
26 -int vc4_mock_atomic_add_output(struct kunit *test,
27 - struct drm_atomic_state *state,
28 - enum vc4_encoder_type type);
29 +struct vc4_dummy_output *
30 +vc4_mock_atomic_add_output(struct kunit *test,
31 + struct drm_atomic_state *state,
32 + enum vc4_encoder_type type);
33 int vc4_mock_atomic_del_output(struct kunit *test,
34 struct drm_atomic_state *state,
35 enum vc4_encoder_type type);
36 --- a/drivers/gpu/drm/vc4/tests/vc4_mock_output.c
37 +++ b/drivers/gpu/drm/vc4/tests/vc4_mock_output.c
38 @@ -61,9 +61,10 @@ static const struct drm_display_mode def
39 DRM_SIMPLE_MODE(640, 480, 64, 48)
40 };
41
42 -int vc4_mock_atomic_add_output(struct kunit *test,
43 - struct drm_atomic_state *state,
44 - enum vc4_encoder_type type)
45 +struct vc4_dummy_output *
46 +vc4_mock_atomic_add_output(struct kunit *test,
47 + struct drm_atomic_state *state,
48 + enum vc4_encoder_type type)
49 {
50 struct drm_device *drm = state->dev;
51 struct drm_connector_state *conn_state;
52 @@ -96,7 +97,7 @@ int vc4_mock_atomic_add_output(struct ku
53
54 crtc_state->active = true;
55
56 - return 0;
57 + return output;
58 }
59
60 int vc4_mock_atomic_del_output(struct kunit *test,
61 --- a/drivers/gpu/drm/vc4/tests/vc4_test_pv_muxing.c
62 +++ b/drivers/gpu/drm/vc4/tests/vc4_test_pv_muxing.c
63 @@ -683,10 +683,11 @@ static void drm_vc4_test_pv_muxing(struc
64 int ret;
65
66 for (i = 0; i < params->nencoders; i++) {
67 + struct vc4_dummy_output *output;
68 enum vc4_encoder_type enc_type = params->encoders[i];
69
70 - ret = vc4_mock_atomic_add_output(test, state, enc_type);
71 - KUNIT_ASSERT_EQ(test, ret, 0);
72 + output = vc4_mock_atomic_add_output(test, state, enc_type);
73 + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
74 }
75
76 ret = drm_atomic_check_only(state);
77 @@ -712,10 +713,11 @@ static void drm_vc4_test_pv_muxing_inval
78 int ret;
79
80 for (i = 0; i < params->nencoders; i++) {
81 + struct vc4_dummy_output *output;
82 enum vc4_encoder_type enc_type = params->encoders[i];
83
84 - ret = vc4_mock_atomic_add_output(test, state, enc_type);
85 - KUNIT_ASSERT_EQ(test, ret, 0);
86 + output = vc4_mock_atomic_add_output(test, state, enc_type);
87 + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
88 }
89
90 ret = drm_atomic_check_only(state);
91 @@ -804,6 +806,7 @@ static void drm_test_vc5_pv_muxing_bugs_
92 {
93 struct drm_modeset_acquire_ctx ctx;
94 struct drm_atomic_state *state;
95 + struct vc4_dummy_output *output;
96 struct vc4_crtc_state *new_vc4_crtc_state;
97 struct vc4_hvs_state *new_hvs_state;
98 unsigned int hdmi0_channel;
99 @@ -823,8 +826,8 @@ static void drm_test_vc5_pv_muxing_bugs_
100
101 state->acquire_ctx = &ctx;
102
103 - ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
104 - KUNIT_ASSERT_EQ(test, ret, 0);
105 + output = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
106 + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
107
108 ret = drm_atomic_check_only(state);
109 KUNIT_ASSERT_EQ(test, ret, 0);
110 @@ -850,8 +853,8 @@ static void drm_test_vc5_pv_muxing_bugs_
111
112 state->acquire_ctx = &ctx;
113
114 - ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
115 - KUNIT_ASSERT_EQ(test, ret, 0);
116 + output = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
117 + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
118
119 ret = drm_atomic_check_only(state);
120 KUNIT_ASSERT_EQ(test, ret, 0);
121 @@ -880,6 +883,7 @@ static void drm_test_vc5_pv_muxing_bugs_
122 {
123 struct drm_modeset_acquire_ctx ctx;
124 struct drm_atomic_state *state;
125 + struct vc4_dummy_output *output;
126 struct vc4_crtc_state *new_vc4_crtc_state;
127 struct vc4_hvs_state *new_hvs_state;
128 unsigned int old_hdmi0_channel;
129 @@ -899,11 +903,11 @@ static void drm_test_vc5_pv_muxing_bugs_
130
131 state->acquire_ctx = &ctx;
132
133 - ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
134 - KUNIT_ASSERT_EQ(test, ret, 0);
135 + output = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
136 + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
137
138 - ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
139 - KUNIT_ASSERT_EQ(test, ret, 0);
140 + output = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
141 + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
142
143 ret = drm_atomic_check_only(state);
144 KUNIT_ASSERT_EQ(test, ret, 0);
145 @@ -971,6 +975,7 @@ drm_test_vc5_pv_muxing_bugs_subsequent_c
146 {
147 struct drm_modeset_acquire_ctx ctx;
148 struct drm_atomic_state *state;
149 + struct vc4_dummy_output *output;
150 struct vc4_crtc_state *new_vc4_crtc_state;
151 struct drm_device *drm;
152 struct vc4_dev *vc4;
153 @@ -987,8 +992,8 @@ drm_test_vc5_pv_muxing_bugs_subsequent_c
154
155 state->acquire_ctx = &ctx;
156
157 - ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
158 - KUNIT_ASSERT_EQ(test, ret, 0);
159 + output = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI0);
160 + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
161
162 ret = drm_atomic_check_only(state);
163 KUNIT_ASSERT_EQ(test, ret, 0);
164 @@ -1003,8 +1008,8 @@ drm_test_vc5_pv_muxing_bugs_subsequent_c
165
166 state->acquire_ctx = &ctx;
167
168 - ret = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
169 - KUNIT_ASSERT_EQ(test, ret, 0);
170 + output = vc4_mock_atomic_add_output(test, state, VC4_ENCODER_TYPE_HDMI1);
171 + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, output);
172
173 ret = drm_atomic_check_only(state);
174 KUNIT_ASSERT_EQ(test, ret, 0);