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 |
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 --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);
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(-)