[Intel-gfx] [PATCH 21/26] drm/i915: Add intel_panel_highest_mode()

Jani Nikula jani.nikula at linux.intel.com
Wed May 25 11:11:11 UTC 2022


On Tue, 03 May 2022, Ville Syrjala <ville.syrjala at linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> Add a function to get the fixed_mode with the highest clock.
> The plan is to use this for the link bw calculation on seamless
> DRRS panels so that we alwasy end up with the same link params
> regardless of the requested refresh rate. This will allow fastset
> to do seamless refresh rate changes based on userspace request
> instead of having to go for a full modeset.
>
> TODO: the function name isn't great

Agreed.

> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

Reviewed-by: Jani Nikula <jani.nikula at intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_panel.c | 15 +++++++++++++++
>  drivers/gpu/drm/i915/display/intel_panel.h |  3 +++
>  2 files changed, 18 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
> index 03398feb6676..0121d38fc36c 100644
> --- a/drivers/gpu/drm/i915/display/intel_panel.c
> +++ b/drivers/gpu/drm/i915/display/intel_panel.c
> @@ -89,6 +89,21 @@ intel_panel_downclock_mode(struct intel_connector *connector,
>  	return best_mode;
>  }
>  
> +const struct drm_display_mode *
> +intel_panel_highest_mode(struct intel_connector *connector,
> +			 const struct drm_display_mode *adjusted_mode)
> +{
> +	const struct drm_display_mode *fixed_mode, *best_mode = adjusted_mode;
> +
> +	/* pick the fixed_mode that has the highest clock */
> +	list_for_each_entry(fixed_mode, &connector->panel.fixed_modes, head) {
> +		if (fixed_mode->clock > best_mode->clock)
> +			best_mode = fixed_mode;
> +	}
> +
> +	return best_mode;
> +}
> +
>  int intel_panel_get_modes(struct intel_connector *connector)
>  {
>  	const struct drm_display_mode *fixed_mode;
> diff --git a/drivers/gpu/drm/i915/display/intel_panel.h b/drivers/gpu/drm/i915/display/intel_panel.h
> index 2e32bb728beb..8a3b84a53c44 100644
> --- a/drivers/gpu/drm/i915/display/intel_panel.h
> +++ b/drivers/gpu/drm/i915/display/intel_panel.h
> @@ -31,6 +31,9 @@ intel_panel_fixed_mode(struct intel_connector *connector,
>  const struct drm_display_mode *
>  intel_panel_downclock_mode(struct intel_connector *connector,
>  			   const struct drm_display_mode *adjusted_mode);
> +const struct drm_display_mode *
> +intel_panel_highest_mode(struct intel_connector *connector,
> +			 const struct drm_display_mode *adjusted_mode);
>  int intel_panel_get_modes(struct intel_connector *connector);
>  enum drrs_type intel_panel_drrs_type(struct intel_connector *connector);
>  enum drm_mode_status

-- 
Jani Nikula, Intel Open Source Graphics Center


More information about the Intel-gfx mailing list