Re: [PATCH v2 08/11] drm/i915: Allow higher refresh rate alternate fixed modes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Mar 31, 2022 at 04:43:46PM +0300, Jani Nikula wrote:
> On Thu, 31 Mar 2022, Ville Syrjala <ville.syrjala@xxxxxxxxxxxxxxx> wrote:
> > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
> >
> > We shouldn't restrict ourselves to just downclock modes with
> > lower refresh rate than the preferred mode. Laptops these
> > days can offer higher refresh rate modes as well.
> >
> > Remove the arbitrary limit and allow all modes that, apart
> > from the clock, match the preferred mode.
> >
> > Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/125
> > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
> > ---
> >  drivers/gpu/drm/i915/display/intel_panel.c | 18 +++++++++---------
> >  1 file changed, 9 insertions(+), 9 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
> > index d359c8050fdc..f3e52e7413fe 100644
> > --- a/drivers/gpu/drm/i915/display/intel_panel.c
> > +++ b/drivers/gpu/drm/i915/display/intel_panel.c
> > @@ -149,29 +149,29 @@ int intel_panel_compute_config(struct intel_connector *connector,
> >  	return 0;
> >  }
> >  
> > -static bool is_downclock_mode(const struct drm_display_mode *downclock_mode,
> > -			      const struct drm_display_mode *fixed_mode)
> > +static bool is_alt_fixed_mode(const struct drm_display_mode *mode,
> > +			      const struct drm_display_mode *preferred_mode)
> >  {
> > -	return drm_mode_match(downclock_mode, fixed_mode,
> > +	return drm_mode_match(mode, preferred_mode,
> >  			      DRM_MODE_MATCH_TIMINGS |
> >  			      DRM_MODE_MATCH_FLAGS |
> >  			      DRM_MODE_MATCH_3D_FLAGS) &&
> > -		downclock_mode->clock < fixed_mode->clock;
> > +		mode->clock != preferred_mode->clock;
> >  }
> >  
> >  static void intel_panel_add_edid_downclock_modes(struct intel_connector *connector)
> 
> Nitpick, I guess this is now ill-named.

Doh. Lost the rename when reordering the patches.

> 
> >  {
> >  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> > -	const struct drm_display_mode *fixed_mode =
> > +	const struct drm_display_mode *preferred_mode =
> >  		intel_panel_preferred_fixed_mode(connector);
> >  	struct drm_display_mode *mode, *next;
> >  
> >  	list_for_each_entry_safe(mode, next, &connector->base.probed_modes, head) {
> > -		if (!is_downclock_mode(mode, fixed_mode))
> > +		if (!is_alt_fixed_mode(mode, preferred_mode))
> >  			continue;
> >  
> >  		drm_dbg_kms(&dev_priv->drm,
> > -			    "[CONNECTOR:%d:%s] using EDID downclock mode: " DRM_MODE_FMT "\n",
> > +			    "[CONNECTOR:%d:%s] using alternate EDID fixed mode: " DRM_MODE_FMT "\n",
> >  			    connector->base.base.id, connector->base.name,
> >  			    DRM_MODE_ARG(mode));
> >  
> > @@ -179,7 +179,7 @@ static void intel_panel_add_edid_downclock_modes(struct intel_connector *connect
> >  	}
> >  }
> >  
> > -static void intel_panel_add_edid_fixed_mode(struct intel_connector *connector)
> > +static void intel_panel_add_edid_preferred_mode(struct intel_connector *connector)
> >  {
> >  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> >  	struct drm_display_mode *scan, *fixed_mode = NULL;
> > @@ -223,7 +223,7 @@ static void intel_panel_destroy_probed_modes(struct intel_connector *connector)
> >  
> >  void intel_panel_add_edid_fixed_modes(struct intel_connector *connector, bool has_drrs)
> >  {
> > -	intel_panel_add_edid_fixed_mode(connector);
> > +	intel_panel_add_edid_preferred_mode(connector);
> >  	if (intel_panel_preferred_fixed_mode(connector) && has_drrs)
> >  		intel_panel_add_edid_downclock_modes(connector);
> 
> Nitpick, support for multiple fixed modes still depends on drrs
> support. I mean this patch is clearly forward progress, but I'm not sure
> if this fully closes the referenced issue. In practical terms it might,
> considering the machines with high refresh rate panels are probably
> fairly new.
> 
> Reviewed-by: Jani Nikula <jani.nikula@xxxxxxxxx>
> 
> 
> >  	intel_panel_destroy_probed_modes(connector);
> 
> -- 
> Jani Nikula, Intel Open Source Graphics Center

-- 
Ville Syrjälä
Intel



[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux