drm/i915/bios: Parse the seamless DRRS min refresh rate
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 4 May 2022 15:04:39 +0000 (18:04 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 5 May 2022 15:27:47 +0000 (18:27 +0300)
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
drivers/gpu/drm/i915/display/intel_bios.c
drivers/gpu/drm/i915/i915_drv.h

index 92de16fade2ee618a2aab2f70cf43249fb9f4d0c..f7f49a03a2e4903f9555d1e406a73346302a81fa 100644 (file)
@@ -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
index 806d893cac010449fab912cfe277f79fc7ad6870..d5ba3e1af6035acd0050a8d6d52042d893164c56 100644 (file)
@@ -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 {