aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorPeter Ujfalusi <peter.ujfalusi@ti.com>2018-03-21 06:20:27 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2018-03-28 02:45:44 -0400
commit352f9a8419df87b925ccc7fc56f1a75aa2290e93 (patch)
treefebe7e235a59526abd36ceef0a55f8131464351a /drivers/gpu
parenta18301b9f556101b4b87cd83b050c553652e91e4 (diff)
drm/sti: Let core take care of normalizing the zpos
Instead of re-implementing the drm_atomic_helper_check() locally with just adding drm_atomic_normalize_zpos() into it, set the drm_mode_config->normalize_zpos. Note: the drm_atomic_helper_check() now includes if (state->legacy_cursor_update) state->async_update = !drm_atomic_helper_async_check(drm, state); which was added after the driver moved away from using it (38d868e41c4b9250d5a115c049dc2d48f4909581 drm: Don't force all planes to be added to the state due to zpos) Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> CC: Benjamin Gaignard <benjamin.gaignard@linaro.org> CC: Vincent Abriou <vincent.abriou@st.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Acked-by: Benjamin Gaignard <benjamin.gaignard@linaro.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180321102029.15248-5-peter.ujfalusi@ti.com
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/sti/sti_drv.c24
1 files changed, 3 insertions, 21 deletions
diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c
index 55b6967d27e1..90c46b49c931 100644
--- a/drivers/gpu/drm/sti/sti_drv.c
+++ b/drivers/gpu/drm/sti/sti_drv.c
@@ -119,30 +119,10 @@ err:
119 return ret; 119 return ret;
120} 120}
121 121
122static int sti_atomic_check(struct drm_device *dev,
123 struct drm_atomic_state *state)
124{
125 int ret;
126
127 ret = drm_atomic_helper_check_modeset(dev, state);
128 if (ret)
129 return ret;
130
131 ret = drm_atomic_normalize_zpos(dev, state);
132 if (ret)
133 return ret;
134
135 ret = drm_atomic_helper_check_planes(dev, state);
136 if (ret)
137 return ret;
138
139 return ret;
140}
141
142static const struct drm_mode_config_funcs sti_mode_config_funcs = { 122static const struct drm_mode_config_funcs sti_mode_config_funcs = {
143 .fb_create = drm_gem_fb_create, 123 .fb_create = drm_gem_fb_create,
144 .output_poll_changed = drm_fb_helper_output_poll_changed, 124 .output_poll_changed = drm_fb_helper_output_poll_changed,
145 .atomic_check = sti_atomic_check, 125 .atomic_check = drm_atomic_helper_check,
146 .atomic_commit = drm_atomic_helper_commit, 126 .atomic_commit = drm_atomic_helper_commit,
147}; 127};
148 128
@@ -160,6 +140,8 @@ static void sti_mode_config_init(struct drm_device *dev)
160 dev->mode_config.max_height = STI_MAX_FB_HEIGHT; 140 dev->mode_config.max_height = STI_MAX_FB_HEIGHT;
161 141
162 dev->mode_config.funcs = &sti_mode_config_funcs; 142 dev->mode_config.funcs = &sti_mode_config_funcs;
143
144 dev->mode_config.normalize_zpos = true;
163} 145}
164 146
165DEFINE_DRM_GEM_CMA_FOPS(sti_driver_fops); 147DEFINE_DRM_GEM_CMA_FOPS(sti_driver_fops);