It programs Plane's calculated x, y, offset to Plane SF register.
It does the calculation of x and y offsets using
skl_calc_main_surface_offset().

v3: Update commit message

Cc: Gwan-gyeong Mun <gwan-gyeong....@intel.com>
Cc: Ville Syrjälä <ville.syrj...@linux.intel.com>
Signed-off-by: José Roberto de Souza <jose.so...@intel.com>
Reviewed-by: Gwan-gyeong Mun <gwan-gyeong....@intel.com>
Tested-by: Gwan-gyeong Mun <gwan-gyeong....@intel.com>
---
 drivers/gpu/drm/i915/display/intel_psr.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_psr.c 
b/drivers/gpu/drm/i915/display/intel_psr.c
index d9a395c486d3..463654e2c1c7 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -1186,7 +1186,8 @@ void intel_psr2_program_plane_sel_fetch(struct 
intel_plane *plane,
        struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
        enum pipe pipe = plane->pipe;
        const struct drm_rect *clip;
-       u32 val;
+       u32 val, offset;
+       int ret, x, y;
 
        if (!crtc_state->enable_psr2_sel_fetch)
                return;
@@ -1203,9 +1204,14 @@ void intel_psr2_program_plane_sel_fetch(struct 
intel_plane *plane,
        val |= plane_state->uapi.dst.x1;
        intel_de_write_fw(dev_priv, PLANE_SEL_FETCH_POS(pipe, plane->id), val);
 
-       /* TODO: consider tiling and auxiliary surfaces */
-       val = (clip->y1 + plane_state->color_plane[color_plane].y) << 16;
-       val |= plane_state->color_plane[color_plane].x;
+       /* TODO: consider auxiliary surfaces */
+       x = plane_state->uapi.src.x1 >> 16;
+       y = (plane_state->uapi.src.y1 >> 16) + clip->y1;
+       ret = skl_calc_main_surface_offset(plane_state, &x, &y, &offset);
+       if (ret)
+               drm_warn_once(&dev_priv->drm, "skl_calc_main_surface_offset() 
returned %i\n",
+                             ret);
+       val = y << 16 | x;
        intel_de_write_fw(dev_priv, PLANE_SEL_FETCH_OFFSET(pipe, plane->id),
                          val);
 
-- 
2.29.2

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

Reply via email to