aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2018-01-23 12:08:54 -0500
committerVille Syrjälä <ville.syrjala@linux.intel.com>2018-02-02 09:52:24 -0500
commitbc4fde30e5906a047848339a8eddcc4e7277abc3 (patch)
tree03b85c672f0c82c298bed62de687a0e58a5cfa43
parentb46a24bcc2b4c4e8b3cbd8c804ecd987a1354d03 (diff)
drm/sun4i: Use drm_mode_get_hv_timing() to populate plane clip rectangle
Use drm_mode_get_hv_timing() to fill out the plane clip rectangle. Note that this replaces crtc_state->adjusted_mode usage with crtc_state->mode. The latter is the correct choice since that's the mode the user provided and it matches the plane crtc coordinates the user also provided. Once everyone agrees on this we can move the clip handling into drm_atomic_helper_check_plane_state(). Cc: Maxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180123170857.13818-2-ville.syrjala@linux.intel.com Reviewed-by: Maxime Ripard <maxime.ripard@free-electrons.com> #irc
-rw-r--r--drivers/gpu/drm/sun4i/sun8i_ui_layer.c9
-rw-r--r--drivers/gpu/drm/sun4i/sun8i_vi_layer.c9
2 files changed, 8 insertions, 10 deletions
diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c
index 28d7c48d50fe..2f0ccd50b54d 100644
--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c
+++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c
@@ -211,7 +211,7 @@ static int sun8i_ui_layer_atomic_check(struct drm_plane *plane,
211 struct drm_crtc *crtc = state->crtc; 211 struct drm_crtc *crtc = state->crtc;
212 struct drm_crtc_state *crtc_state; 212 struct drm_crtc_state *crtc_state;
213 int min_scale, max_scale; 213 int min_scale, max_scale;
214 struct drm_rect clip; 214 struct drm_rect clip = {};
215 215
216 if (!crtc) 216 if (!crtc)
217 return 0; 217 return 0;
@@ -220,10 +220,9 @@ static int sun8i_ui_layer_atomic_check(struct drm_plane *plane,
220 if (WARN_ON(!crtc_state)) 220 if (WARN_ON(!crtc_state))
221 return -EINVAL; 221 return -EINVAL;
222 222
223 clip.x1 = 0; 223 if (crtc_state->enable)
224 clip.y1 = 0; 224 drm_mode_get_hv_timing(&crtc_state->mode,
225 clip.x2 = crtc_state->adjusted_mode.hdisplay; 225 &clip.x2, &clip.y2);
226 clip.y2 = crtc_state->adjusted_mode.vdisplay;
227 226
228 min_scale = DRM_PLANE_HELPER_NO_SCALING; 227 min_scale = DRM_PLANE_HELPER_NO_SCALING;
229 max_scale = DRM_PLANE_HELPER_NO_SCALING; 228 max_scale = DRM_PLANE_HELPER_NO_SCALING;
diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c
index 40c3b303068a..eb3bf2d7291a 100644
--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c
+++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c
@@ -239,7 +239,7 @@ static int sun8i_vi_layer_atomic_check(struct drm_plane *plane,
239 struct drm_crtc *crtc = state->crtc; 239 struct drm_crtc *crtc = state->crtc;
240 struct drm_crtc_state *crtc_state; 240 struct drm_crtc_state *crtc_state;
241 int min_scale, max_scale; 241 int min_scale, max_scale;
242 struct drm_rect clip; 242 struct drm_rect clip = {};
243 243
244 if (!crtc) 244 if (!crtc)
245 return 0; 245 return 0;
@@ -248,10 +248,9 @@ static int sun8i_vi_layer_atomic_check(struct drm_plane *plane,
248 if (WARN_ON(!crtc_state)) 248 if (WARN_ON(!crtc_state))
249 return -EINVAL; 249 return -EINVAL;
250 250
251 clip.x1 = 0; 251 if (crtc_state->enable)
252 clip.y1 = 0; 252 drm_mode_get_hv_timing(&crtc_state->mode,
253 clip.x2 = crtc_state->adjusted_mode.hdisplay; 253 &clip.x2, &clip.y2);
254 clip.y2 = crtc_state->adjusted_mode.vdisplay;
255 254
256 min_scale = DRM_PLANE_HELPER_NO_SCALING; 255 min_scale = DRM_PLANE_HELPER_NO_SCALING;
257 max_scale = DRM_PLANE_HELPER_NO_SCALING; 256 max_scale = DRM_PLANE_HELPER_NO_SCALING;