drm/i915: Implement static DRRS

Let's start supporting static DRRS by trying to match the refresh
rate the user has requested, assuming the panel supports suitable
timings.

For now we stick to just our current two timings:
- fixed_mode: the panel's preferred mode
- downclock_mode: the lowest refresh rate mode we found
Some panels may support more timings than that, but we'll
have to convert our fixed_mode/downclock_mode pointers
into a full list before we can handle that.

v2: Rebase due to intel_panel_get_modes()

Reviewed-by: Jani Nikula <jani.nikula@intel.com> #v1
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220311172428.14685-16-ville.syrjala@linux.intel.com
This commit is contained in:
Ville Syrjälä
2022-03-11 19:24:27 +02:00
parent c2f1215553
commit c5ee23437c
2 changed files with 30 additions and 3 deletions

View File

@@ -390,7 +390,7 @@ intel_drrs_init(struct intel_connector *connector,
return NULL;
}
if (dev_priv->vbt.drrs_type != DRRS_TYPE_SEAMLESS) {
if (dev_priv->vbt.drrs_type == DRRS_TYPE_NONE) {
drm_dbg_kms(&dev_priv->drm,
"[CONNECTOR:%d:%s] DRRS not supported according to VBT\n",
connector->base.base.id, connector->base.name);