aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915
diff options
context:
space:
mode:
authorVille Syrjälä2022-05-04 18:04:39 +0300
committerVille Syrjälä2022-05-05 18:27:47 +0300
commit790b45f1bc6736a8dd48ba5731b6871e0217311e (patch)
tree061e5089c876a5d601532d09b73ee3dd5c56d085 /drivers/gpu/drm/i915
parentcc589f2deeb4160fb21cd74c25d6779082d9d561 (diff)
drm/i915/bios: Parse the seamless DRRS min refresh rate
Extract the seamless DRRS min refresh rate from the VBT. v2: Do a version check Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220504150440.13748-9-ville.syrjala@linux.intel.com
Diffstat (limited to 'drivers/gpu/drm/i915')
-rw-r--r--drivers/gpu/drm/i915/display/intel_bios.c9
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h1
2 files changed, 9 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
index 92de16fade2e..f7f49a03a2e4 100644
--- a/drivers/gpu/drm/i915/display/intel_bios.c
+++ b/drivers/gpu/drm/i915/display/intel_bios.c
@@ -761,6 +761,7 @@ parse_lfp_data(struct drm_i915_private *i915)
const struct bdb_lvds_lfp_data *data;
const struct bdb_lvds_lfp_data_tail *tail;
const struct bdb_lvds_lfp_data_ptrs *ptrs;
+ int panel_type = i915->vbt.panel_type;
ptrs = find_section(i915, BDB_LVDS_LFP_DATA_PTRS);
if (!ptrs)
@@ -777,7 +778,13 @@ parse_lfp_data(struct drm_i915_private *i915)
if (!tail)
return;
- (void)tail;
+ if (i915->vbt.version >= 188) {
+ i915->vbt.seamless_drrs_min_refresh_rate =
+ tail->seamless_drrs_min_refresh_rate[panel_type];
+ drm_dbg_kms(&i915->drm,
+ "Seamless DRRS min refresh rate: %d Hz\n",
+ i915->vbt.seamless_drrs_min_refresh_rate);
+ }
}
static void
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 806d893cac01..d5ba3e1af603 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -326,6 +326,7 @@ struct intel_vbt_data {
bool override_afc_startup;
u8 override_afc_startup_val;
+ u8 seamless_drrs_min_refresh_rate;
enum drrs_type drrs_type;
struct {