[PATCH 31/36] drm/i915: Extract skl_update_hq_scaler()

Ville Syrjala ville.syrjala at linux.intel.com
Wed Dec 18 16:10:48 UTC 2019


From: Ville Syrjälä <ville.syrjala at linux.intel.com>

Move the code that swaps the current scaler for scaler 1 to
enable HQ mode into its own funciton. We'll have two callers
of this soon.

Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_atomic.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_atomic.c b/drivers/gpu/drm/i915/display/intel_atomic.c
index dc0c80be8648..b2220e69eaf7 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic.c
+++ b/drivers/gpu/drm/i915/display/intel_atomic.c
@@ -280,6 +280,15 @@ bool skl_can_use_hq_scaler(const struct intel_crtc_state *crtc_state)
 		is_power_of_2(scaler_state->scaler_users);
 }
 
+static void skl_update_hq_scaler(struct intel_crtc_scaler_state *scaler_state,
+				 enum scaler *scaler_id)
+{
+	/* Only scaler 1 can operate in HQ mode */
+	scaler_state->scalers[*scaler_id].in_use = false;
+	*scaler_id = SCALER_1;
+	scaler_state->scalers[*scaler_id].in_use = true;
+}
+
 static enum scaler intel_allocate_scaler(struct intel_crtc_state *crtc_state)
 {
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
@@ -344,14 +353,7 @@ static void intel_atomic_setup_scaler(struct intel_crtc_state *crtc_state,
 	} else if (INTEL_GEN(dev_priv) > 9 || IS_GEMINILAKE(dev_priv)) {
 		mode = PS_SCALER_MODE_NORMAL;
 	} else if (num_scalers_need == 1 && intel_crtc->num_scalers > 1) {
-		/*
-		 * when only 1 scaler is in use on a pipe with 2 scalers
-		 * scaler 1 operates in high quality (HQ) mode.
-		 * In this case use scaler 0 to take advantage of HQ mode
-		 */
-		scaler_state->scalers[*scaler_id].in_use = false;
-		*scaler_id = SCALER_1;
-		scaler_state->scalers[0].in_use = true;
+		skl_update_hq_scaler(scaler_state, scaler_id);
 		mode = SKL_PS_SCALER_MODE_HQ;
 	} else {
 		mode = SKL_PS_SCALER_MODE_DYN;
-- 
2.23.0



More information about the Intel-gfx-trybot mailing list