From: Ville Syrjälä <ville.syrj...@linux.intel.com>

Use drm_mode_get_hv_timing() to fill out the plane clip rectangle.

No functional changes as the code already uses crtc_state->mode
to populate the clip, which is also what drm_mode_get_hv_timing()
uses.

Once everyone agrees on this we can move the clip handling into
drm_atomic_helper_check_plane_state().

Cc: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
Cc: Ben Skeggs <bske...@redhat.com>
Cc: nouv...@lists.freedesktop.org
Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com>
---
 drivers/gpu/drm/nouveau/nv50_display.c | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nv50_display.c 
b/drivers/gpu/drm/nouveau/nv50_display.c
index 65336948e807..7d8307ec442c 100644
--- a/drivers/gpu/drm/nouveau/nv50_display.c
+++ b/drivers/gpu/drm/nouveau/nv50_display.c
@@ -228,8 +228,6 @@ struct nv50_wndw_atom {
        struct drm_plane_state state;
        u8 interval;
 
-       struct drm_rect clip;
-
        struct {
                u32  handle;
                u16  offset:12;
@@ -840,10 +838,6 @@ nv50_wndw_atomic_check_acquire(struct nv50_wndw *wndw,
        int ret;
 
        NV_ATOMIC(drm, "%s acquire\n", wndw->plane.name);
-       asyw->clip.x1 = 0;
-       asyw->clip.y1 = 0;
-       asyw->clip.x2 = asyh->state.mode.hdisplay;
-       asyw->clip.y2 = asyh->state.mode.vdisplay;
 
        asyw->image.w = fb->base.width;
        asyw->image.h = fb->base.height;
@@ -1141,10 +1135,15 @@ static int
 nv50_curs_acquire(struct nv50_wndw *wndw, struct nv50_wndw_atom *asyw,
                  struct nv50_head_atom *asyh)
 {
+       struct drm_rect clip = {};
        int ret;
 
+       if (asyh->state.enable)
+               drm_mode_get_hv_timing(&asyh->state.mode,
+                                      &clip.x2, &clip.y2);
+
        ret = drm_atomic_helper_check_plane_state(&asyw->state, &asyh->state,
-                                                 &asyw->clip,
+                                                 &clip,
                                                  DRM_PLANE_HELPER_NO_SCALING,
                                                  DRM_PLANE_HELPER_NO_SCALING,
                                                  true, true);
@@ -1428,13 +1427,18 @@ nv50_base_acquire(struct nv50_wndw *wndw, struct 
nv50_wndw_atom *asyw,
                  struct nv50_head_atom *asyh)
 {
        const struct drm_framebuffer *fb = asyw->state.fb;
+       struct drm_rect clip = {};
        int ret;
 
        if (!fb->format->depth)
                return -EINVAL;
 
+       if (asyh->state.enable)
+               drm_mode_get_hv_timing(&asyh->state.mode,
+                                      &clip.x2, &clip.y2);
+
        ret = drm_atomic_helper_check_plane_state(&asyw->state, &asyh->state,
-                                                 &asyw->clip,
+                                                 &clip,
                                                  DRM_PLANE_HELPER_NO_SCALING,
                                                  DRM_PLANE_HELPER_NO_SCALING,
                                                  false, true);
-- 
2.13.6

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to