[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