On Thu, Mar 31, 2022 at 04:43:46PM +0300, Jani Nikula wrote:
> On Thu, 31 Mar 2022, Ville Syrjala <[email protected]> wrote:
> > From: Ville Syrjälä <[email protected]>
> >
> > 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ä <[email protected]>
> > ---
> >  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 <[email protected]>
> 
> 
> >     intel_panel_destroy_probed_modes(connector);
> 
> -- 
> Jani Nikula, Intel Open Source Graphics Center

-- 
Ville Syrjälä
Intel

Reply via email to