Commit 5f331b24 authored by Nemesa Garg's avatar Nemesa Garg Committed by Jani Nikula
Browse files

drm/i915/display: Set and get the casf config



Set the configuration for CASF and capture it
in crtc_state and get the configuration by
reading back. Add the support to compare the
software and hardware state of CASF.

v2: Update subject[Ankit]
v3: Add the state compare[Ankit]

Signed-off-by: default avatarNemesa Garg <nemesa.garg@intel.com>
Reviewed-by: default avatarAnkit Nautiyal <ankit.k.nautiyal@intel.com>
Link: https://patch.msgid.link/20251028120747.3027332-9-ankit.k.nautiyal@intel.com


Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
parent 0672cf98
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -4228,6 +4228,10 @@ static int intel_crtc_atomic_check(struct intel_atomic_state *state,
		return ret;
	}

	ret = intel_casf_compute_config(crtc_state);
	if (ret)
		return ret;

	if (DISPLAY_VER(display) >= 9) {
		if (intel_crtc_needs_modeset(crtc_state) ||
		    intel_crtc_needs_fastset(crtc_state) ||
@@ -5294,6 +5298,9 @@ intel_pipe_config_compare(const struct intel_crtc_state *current_config,

		PIPE_CONF_CHECK_I(scaler_state.scaler_id);
		PIPE_CONF_CHECK_I(pixel_rate);
		PIPE_CONF_CHECK_BOOL(hw.casf_params.casf_enable);
		PIPE_CONF_CHECK_I(hw.casf_params.win_size);
		PIPE_CONF_CHECK_I(hw.casf_params.strength);

		PIPE_CONF_CHECK_X(gamma_mode);
		if (display->platform.cherryview)
+13 −6
Original line number Diff line number Diff line
@@ -981,11 +981,18 @@ void skl_scaler_get_config(struct intel_crtc_state *crtc_state)
			continue;

		id = i;

		/* Read CASF regs for second scaler */
		if (HAS_CASF(display) && id == 1)
			intel_casf_sharpness_get_config(crtc_state);

		if (!crtc_state->hw.casf_params.casf_enable)
			crtc_state->pch_pfit.enabled = true;

		pos = intel_de_read(display, SKL_PS_WIN_POS(crtc->pipe, i));
		size = intel_de_read(display, SKL_PS_WIN_SZ(crtc->pipe, i));

		if (!crtc_state->hw.casf_params.casf_enable)
			drm_rect_init(&crtc_state->pch_pfit.dst,
				      REG_FIELD_GET(PS_WIN_XPOS_MASK, pos),
				      REG_FIELD_GET(PS_WIN_YPOS_MASK, pos),