bcm27xx: update 6.1 patches to latest version
[openwrt/openwrt.git] / target / linux / bcm27xx / patches-6.1 / 950-0982-drm-vc4-tests-Use-custom-plane-state-for-mock.patch
1 From 14fe42ff341741d60ba338c401855dee7fb68754 Mon Sep 17 00:00:00 2001
2 From: Maxime Ripard <maxime@cerno.tech>
3 Date: Fri, 14 Apr 2023 11:24:37 +0200
4 Subject: [PATCH] drm/vc4: tests: Use custom plane state for mock
5
6 The current mock planes were just using the regular drm_plane_state,
7 while the driver expect struct vc4_plane_state that subclasses
8 drm_plane_state.
9
10 Hook the proper implementations of reset, duplicate_state, destroy and
11 atomic_check to create vc4_plane_state.
12
13 Signed-off-by: Maxime Ripard <maxime@cerno.tech>
14 ---
15 drivers/gpu/drm/vc4/tests/vc4_mock_plane.c | 7 ++++---
16 drivers/gpu/drm/vc4/vc4_drv.h | 6 ++++++
17 drivers/gpu/drm/vc4/vc4_plane.c | 12 ++++++------
18 3 files changed, 16 insertions(+), 9 deletions(-)
19
20 --- a/drivers/gpu/drm/vc4/tests/vc4_mock_plane.c
21 +++ b/drivers/gpu/drm/vc4/tests/vc4_mock_plane.c
22 @@ -10,12 +10,13 @@
23 #include "vc4_mock.h"
24
25 static const struct drm_plane_helper_funcs vc4_dummy_plane_helper_funcs = {
26 + .atomic_check = vc4_plane_atomic_check,
27 };
28
29 static const struct drm_plane_funcs vc4_dummy_plane_funcs = {
30 - .atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
31 - .atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
32 - .reset = drm_atomic_helper_plane_reset,
33 + .atomic_destroy_state = vc4_plane_destroy_state,
34 + .atomic_duplicate_state = vc4_plane_duplicate_state,
35 + .reset = vc4_plane_reset,
36 };
37
38 static const uint32_t vc4_dummy_plane_formats[] = {
39 --- a/drivers/gpu/drm/vc4/vc4_drv.h
40 +++ b/drivers/gpu/drm/vc4/vc4_drv.h
41 @@ -1145,6 +1145,12 @@ int vc4_kms_load(struct drm_device *dev)
42 struct drm_plane *vc4_plane_init(struct drm_device *dev,
43 enum drm_plane_type type,
44 uint32_t possible_crtcs);
45 +void vc4_plane_reset(struct drm_plane *plane);
46 +void vc4_plane_destroy_state(struct drm_plane *plane,
47 + struct drm_plane_state *state);
48 +struct drm_plane_state *vc4_plane_duplicate_state(struct drm_plane *plane);
49 +int vc4_plane_atomic_check(struct drm_plane *plane,
50 + struct drm_atomic_state *state);
51 int vc4_plane_create_additional_planes(struct drm_device *dev);
52 u32 vc4_plane_write_dlist(struct drm_plane *plane, u32 __iomem *dlist);
53 u32 vc4_plane_dlist_size(const struct drm_plane_state *state);
54 --- a/drivers/gpu/drm/vc4/vc4_plane.c
55 +++ b/drivers/gpu/drm/vc4/vc4_plane.c
56 @@ -276,7 +276,7 @@ static bool plane_enabled(struct drm_pla
57 return state->fb && !WARN_ON(!state->crtc);
58 }
59
60 -static struct drm_plane_state *vc4_plane_duplicate_state(struct drm_plane *plane)
61 +struct drm_plane_state *vc4_plane_duplicate_state(struct drm_plane *plane)
62 {
63 struct vc4_plane_state *vc4_state;
64 unsigned int i;
65 @@ -312,8 +312,8 @@ static struct drm_plane_state *vc4_plane
66 return &vc4_state->base;
67 }
68
69 -static void vc4_plane_destroy_state(struct drm_plane *plane,
70 - struct drm_plane_state *state)
71 +void vc4_plane_destroy_state(struct drm_plane *plane,
72 + struct drm_plane_state *state)
73 {
74 struct vc4_dev *vc4 = to_vc4_dev(plane->dev);
75 struct vc4_hvs *hvs = vc4->hvs;
76 @@ -348,7 +348,7 @@ static void vc4_plane_destroy_state(stru
77 }
78
79 /* Called during init to allocate the plane's atomic state. */
80 -static void vc4_plane_reset(struct drm_plane *plane)
81 +void vc4_plane_reset(struct drm_plane *plane)
82 {
83 struct vc4_plane_state *vc4_state;
84
85 @@ -2000,8 +2000,8 @@ static int vc6_plane_mode_set(struct drm
86 * compute the dlist here and have all active plane dlists get updated
87 * in the CRTC's flush.
88 */
89 -static int vc4_plane_atomic_check(struct drm_plane *plane,
90 - struct drm_atomic_state *state)
91 +int vc4_plane_atomic_check(struct drm_plane *plane,
92 + struct drm_atomic_state *state)
93 {
94 struct vc4_dev *vc4 = to_vc4_dev(plane->dev);
95 struct drm_plane_state *new_plane_state = drm_atomic_get_new_plane_state(state,