From: Ville Syrjälä <[email protected]>

When intel_atomic_setup_scaler() is called for a plane scaler
it first computes the scale factors correctly, and then (if
pfit is enabled on the pipe) it overwrites them with the pfit
scale factors.

Skip the pfit scaler stuff when intel_atomic_setup_scaler()
is called for a plane scaler (plane_state != NULL).

Reviewed-by: Luca Coelho <[email protected]>
Cc: Mitul Golani <[email protected]>
Fixes: 9217f9aaef62 ("drm/i915/scaler: Compute scaling factors for pipe scaler")
Signed-off-by: Ville Syrjälä <[email protected]>
---
 drivers/gpu/drm/i915/display/skl_scaler.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/skl_scaler.c 
b/drivers/gpu/drm/i915/display/skl_scaler.c
index d29efcbf2319..640c65818f8a 100644
--- a/drivers/gpu/drm/i915/display/skl_scaler.c
+++ b/drivers/gpu/drm/i915/display/skl_scaler.c
@@ -464,7 +464,7 @@ static int intel_atomic_setup_scaler(struct 
intel_crtc_state *crtc_state,
                }
        }
 
-       if (crtc_state->pch_pfit.enabled) {
+       if (!plane_state && crtc_state->pch_pfit.enabled) {
                struct drm_rect src;
                int max_hscale, max_vscale;
 
-- 
2.49.1

Reply via email to