[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