[RFC PATCH 03/18] drm/i915: Addition of the drrs_min_vrefresh in VBT

Ramalingam C
2015-06-26T13:59:54Z

VBT structure's block 42 is updated as per the current VBT v188
specification and additonal member drrs_min_vrefresh is added.

Corresponding logic for parsing drrs_min_vrefresh is added.
drrs_min_vrefresh is nothing but lowest vrefresh supported by the panel.

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
---
drivers/gpu/drm/i915/i915_drv.h | 1 +
drivers/gpu/drm/i915/intel_bios.c | 3 +++
drivers/gpu/drm/i915/intel_bios.h | 9 +++++++--
3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 00982bb..677293d 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1479,6 +1479,7 @@ struct intel_vbt_data {
unsigned int bios_lvds_val; /* initial [PCH_]LVDS reg val in VBIOS */

enum drrs_support_type drrs_type;
+ unsigned int drrs_min_vrefresh;

/* eDP */
int edp_rate;
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
index 198fc3c..5d6117a 100644
--- a/drivers/gpu/drm/i915/intel_bios.c
+++ b/drivers/gpu/drm/i915/intel_bios.c
@@ -251,6 +251,9 @@ parse_lfp_panel_data(struct drm_i915_private *dev_priv,
if (!lvds_lfp_data)
return;

+ dev_priv->vbt.drrs_min_vrefresh = (unsigned int)
+ lvds_lfp_data->seamless_drrs_min_vrefresh[panel_type];
+
lvds_lfp_data_ptrs = find_section(bdb, BDB_LVDS_LFP_DATA_PTRS);
if (!lvds_lfp_data_ptrs)
return;
diff --git a/drivers/gpu/drm/i915/intel_bios.h b/drivers/gpu/drm/i915/intel_bios.h
index af0b476..b0cd827 100644
--- a/drivers/gpu/drm/i915/intel_bios.h
+++ b/drivers/gpu/drm/i915/intel_bios.h
@@ -338,8 +338,6 @@ struct lvds_fp_timing {
u32 pp_off_reg_val;
u32 pp_cycle_reg;
u32 pp_cycle_reg_val;
- u32 pfit_reg;
- u32 pfit_reg_val;
u16 terminator;
} __packed;

@@ -385,8 +383,15 @@ struct bdb_lvds_lfp_data_entry {
struct lvds_pnp_id pnp_id;
} __packed;

+struct lfp_panel_name {
+ u8 name[13];
+} __packed;
+
struct bdb_lvds_lfp_data {
struct bdb_lvds_lfp_data_entry data[16];
+ struct lfp_panel_name name[16];
+ u16 scaling_enabling_bits;
+ u8 seamless_drrs_min_vrefresh[16];
} __packed;

#define BDB_BACKLIGHT_TYPE_NONE 0