Search for VBT #57. Check for failure since pre-ICL GOPs do not contain the block. Check also if VBT version is appropriately up-to-date.
Issue a debug message when port requests to override VS/PE and parsing VBT #57 for the platform has not yet been implemented. Signed-off-by: Michał Grzelak <[email protected]> --- drivers/gpu/drm/i915/display/intel_bios.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c index 5700de438fdfd..3f9e4d31c7375 100644 --- a/drivers/gpu/drm/i915/display/intel_bios.c +++ b/drivers/gpu/drm/i915/display/intel_bios.c @@ -2185,6 +2185,23 @@ parse_compression_parameters(struct intel_display *display) } } +static void +parse_vswing_preemph_override(struct intel_display *display) +{ + const struct bdb_vswing_preemph *block; + + if (display->vbt.version < 218) + return; + + block = bdb_find_section(display, BDB_VSWING_PREEMPH); + + /* pre-ICL GOP don't have VBT #57 */ + if (!block) + return; + + drm_dbg_kms(display->drm, "VS/PE-O parsing not yet supported\n"); +} + static u8 translate_iboost(struct intel_display *display, u8 val) { static const u8 mapping[] = { 1, 3, 7 }; /* See VBT spec */ @@ -3276,6 +3293,7 @@ void intel_bios_init(struct intel_display *display) /* Depends on child device list */ parse_compression_parameters(display); + parse_vswing_preemph_override(display); out: if (!vbt) { -- 2.45.2
