Message ID | 20250203161447.2643039-2-mitulkumar.ajitkumar.golani@intel.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Compute as_sdp when vrr is enabled | expand |
On 2/3/2025 9:44 PM, Mitul Golani wrote: > Avoid full modeset by skipping infoframe.enable check when toggling > AS SDP while enabling VRR or while state change from PSR to VRR, > preventing full modeset while pipe config changes. I dont think this is related to PSR. > > Signed-off-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com> > --- > drivers/gpu/drm/i915/display/intel_display.c | 6 ++++-- > 1 file changed, 4 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..8415b305f702 100644 > --- a/drivers/gpu/drm/i915/display/intel_display.c > +++ b/drivers/gpu/drm/i915/display/intel_display.c > @@ -5744,9 +5744,11 @@ intel_pipe_config_compare(const struct intel_crtc_state *current_config, > > if (current_config->has_psr || pipe_config->has_psr) > PIPE_CONF_CHECK_X_WITH_MASK(infoframes.enable, > - ~intel_hdmi_infoframe_enable(DP_SDP_VSC)); > + ~(intel_hdmi_infoframe_enable(DP_SDP_VSC) | > + intel_hdmi_infoframe_enable(DP_SDP_ADAPTIVE_SYNC))); > else > - PIPE_CONF_CHECK_X(infoframes.enable); > + PIPE_CONF_CHECK_X_WITH_MASK(infoframes.enable, > + ~intel_hdmi_infoframe_enable(DP_SDP_ADAPTIVE_SYNC)); As I understand we want to skip the check for DP_SDP_VSC when PSR is involved and DP_SDP_ADAPTIVE_SYNC when VRR is enabled so as to avoid full modeset when switch happens for these features. how about: exclude_infoframes = 0; if (current_config->has_psr || pipe_config->has_psr) exclude_infoframes |= intel_hdmi_infoframe_enable(DP_SDP_VSC); if (pipe_config->vrr.enable) exclude_infoframes |= intel_hdmi_infoframe_enable(DP_SDP_ADAPTIVE_SYNC))); PIPE_CONF_CHECK_X_WITH_MASK(infoframes.enable, exclude_infoframes); Regards, Ankit > > PIPE_CONF_CHECK_X(infoframes.gcp); > PIPE_CONF_CHECK_INFOFRAME(avi);
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index a6383ddde871..8415b305f702 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -5744,9 +5744,11 @@ intel_pipe_config_compare(const struct intel_crtc_state *current_config, if (current_config->has_psr || pipe_config->has_psr) PIPE_CONF_CHECK_X_WITH_MASK(infoframes.enable, - ~intel_hdmi_infoframe_enable(DP_SDP_VSC)); + ~(intel_hdmi_infoframe_enable(DP_SDP_VSC) | + intel_hdmi_infoframe_enable(DP_SDP_ADAPTIVE_SYNC))); else - PIPE_CONF_CHECK_X(infoframes.enable); + PIPE_CONF_CHECK_X_WITH_MASK(infoframes.enable, + ~intel_hdmi_infoframe_enable(DP_SDP_ADAPTIVE_SYNC)); PIPE_CONF_CHECK_X(infoframes.gcp); PIPE_CONF_CHECK_INFOFRAME(avi);
Avoid full modeset by skipping infoframe.enable check when toggling AS SDP while enabling VRR or while state change from PSR to VRR, preventing full modeset while pipe config changes. Signed-off-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com> --- drivers/gpu/drm/i915/display/intel_display.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)