[Intel-gfx] [PATCH v2 08/11] drm/i915: Allow higher refresh rate alternate fixed modes
Ville Syrjälä
ville.syrjala at linux.intel.com
Thu Mar 31 16:55:07 UTC 2022
On Thu, Mar 31, 2022 at 04:43:46PM +0300, Jani Nikula wrote:
> On Thu, 31 Mar 2022, Ville Syrjala <ville.syrjala at linux.intel.com> wrote:
> > From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> >
> > 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 at linux.intel.com>
> > ---
> > 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 at intel.com>
>
>
> > intel_panel_destroy_probed_modes(connector);
>
> --
> Jani Nikula, Intel Open Source Graphics Center
--
Ville Syrjälä
Intel
More information about the Intel-gfx
mailing list