diff mbox series

[v2,1/2] drm/i915/display: Skip state checker for AS SDP infoframe enable

Message ID 20250204130638.2800372-2-mitulkumar.ajitkumar.golani@intel.com (mailing list archive)
State New
Headers show
Series Compute as_sdp when vrr is enabled | expand

Commit Message

Golani, Mitulkumar Ajitkumar Feb. 4, 2025, 1:06 p.m. UTC
Avoid full modeset by skipping infoframe.enable check when toggling
AS SDP while enabling VRR, preventing full modeset while pipe
config changes.

--v2:
- Add check for exclude_infoframe. (Ankit)
- Update commit message. (Ankit)

Signed-off-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

Comments

Nautiyal, Ankit K Feb. 6, 2025, 4:13 a.m. UTC | #1
On 2/4/2025 6:36 PM, Mitul Golani wrote:
> Avoid full modeset by skipping infoframe.enable check when toggling
> AS SDP while enabling VRR, preventing full modeset while pipe
> config changes.
>
> --v2:
> - Add check for exclude_infoframe. (Ankit)
> - Update commit message. (Ankit)
>
> Signed-off-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
> ---
>   drivers/gpu/drm/i915/display/intel_display.c | 10 ++++++++--
>   1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index a6383ddde871..b35fb6d37640 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -5388,6 +5388,7 @@ intel_pipe_config_compare(const struct intel_crtc_state *current_config,
>   	struct drm_i915_private *dev_priv = to_i915(current_config->uapi.crtc->dev);
>   	struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
>   	struct drm_printer p;
> +	u32 exclude_infoframes = 0;
>   	bool ret = true;
>   
>   	if (fastset)
> @@ -5743,8 +5744,13 @@ intel_pipe_config_compare(const struct intel_crtc_state *current_config,
>   	PIPE_CONF_CHECK_I(min_voltage_level);
>   
>   	if (current_config->has_psr || pipe_config->has_psr)
> -		PIPE_CONF_CHECK_X_WITH_MASK(infoframes.enable,
> -					    ~intel_hdmi_infoframe_enable(DP_SDP_VSC));
> +		exclude_infoframes |= intel_hdmi_infoframe_enable(DP_SDP_VSC);
> +
> +	if (current_config->vrr.enable || pipe_config->vrr.enable)
> +		exclude_infoframes |= intel_hdmi_infoframe_enable(DP_SDP_ADAPTIVE_SYNC);
> +
> +	if (exclude_infoframes)
> +		PIPE_CONF_CHECK_X_WITH_MASK(infoframes.enable, ~exclude_infoframes);
>   	else
>   		PIPE_CONF_CHECK_X(infoframes.enable);

This can simply be:

PIPE_CONF_CHECK_X_WITH_MASK(infoframes.enable, ~exclude_infoframes);

Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>

Regards,
Ankit

>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index a6383ddde871..b35fb6d37640 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -5388,6 +5388,7 @@  intel_pipe_config_compare(const struct intel_crtc_state *current_config,
 	struct drm_i915_private *dev_priv = to_i915(current_config->uapi.crtc->dev);
 	struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
 	struct drm_printer p;
+	u32 exclude_infoframes = 0;
 	bool ret = true;
 
 	if (fastset)
@@ -5743,8 +5744,13 @@  intel_pipe_config_compare(const struct intel_crtc_state *current_config,
 	PIPE_CONF_CHECK_I(min_voltage_level);
 
 	if (current_config->has_psr || pipe_config->has_psr)
-		PIPE_CONF_CHECK_X_WITH_MASK(infoframes.enable,
-					    ~intel_hdmi_infoframe_enable(DP_SDP_VSC));
+		exclude_infoframes |= intel_hdmi_infoframe_enable(DP_SDP_VSC);
+
+	if (current_config->vrr.enable || pipe_config->vrr.enable)
+		exclude_infoframes |= intel_hdmi_infoframe_enable(DP_SDP_ADAPTIVE_SYNC);
+
+	if (exclude_infoframes)
+		PIPE_CONF_CHECK_X_WITH_MASK(infoframes.enable, ~exclude_infoframes);
 	else
 		PIPE_CONF_CHECK_X(infoframes.enable);