[igt-dev] [PATCH i-g-t 00/23] tools/intel_vbt_decode: Improve the parser

Ville Syrjala ville.syrjala at linux.intel.com
Tue Jun 14 23:30:37 UTC 2022


From: Ville Syrjälä <ville.syrjala at linux.intel.com>

Change the igt VBT parser to make copies of the BDB data blocks
(just as we do in the kernel parser now). This makes it less
hazardous/confusing if your block definition don't happent to
match reality. 

Eg. with the current scheme we could very easily misinterpret
random bits from other blocks/etc. as our block data by just
using an overly large structure for decoding. With the block
copies being  at least as big as out struct definitions the
worst that can happen is that we just decode some extra zeroes
rather than some random other bits.

The other thing I'm bringing over is the data pointer generation
stuff for modern VBTS (which lack the LFP data table pointes block).
That lets us keep decoding the LFP data block in exactly the
same way on old and new VBTs.

And naturally we have massive gaps in what data the tool actually
parses from the VBT. So lots of patches to just parse more stuff.
I didn't do an exhaustive study on this topic, so still probably
missing some useful things.

Ville Syrjälä (23):
  tools/intel_vbt_decode: update vbt defs from kernel
  tools/intel_vbt_decode: Decode more DVO ports
  tools/intel_vbt_decode: Decode mode HDMI data rates
  tools/intel_vbt_decode: Clean up SSC freq decoding
  tools/intel_vbt_decode: Decode DP max link rate
  tools/intel_vbt_decode: Unify panel type handling
  tools/intel_vbt_decode: Dump the block size
  tools/intel_vbt_decode: Decode the LFP power block
  tools/intel_vbt_decode: Dump the LVDS panel options
  tools/intel_vbt_decode: Decode new fast link training rate
  tools/intel_vbt_decode: Parse the old fast link training rate
    correctly
  tools/intel_vbt_decode: Parse the new eDP max link rate
  tools/intel_vbt_decode: Include BDB block header in hex dump
  tools/intel_vbt_decode: Make copies of the BDB blocks
  tools/intel_vbt_decode: Specify a minimum size for the BDB block copy
  tools/intel_vbt_decode: Convert LFP data pointers to be relative to
    the data block
  tools/intel_vbt_decode: Simplify LVDS data block parsing
  tools/intel_vbt_decode: Dump the panel PNP ID
  tools/intel_vbt_decode: Decode the end of the LFP data
  tools/intel_vbt_decode: Dump the LVDS data ptrs
  tools/intel_vbt_decode: Validate LVDS data table pointers
  tools/intel_vbt_decode: Generate LVDS data table pointes if not
    provided
  tools/intel_vbt_decode: Warn if we lack the full definiton of the BDB
    block

 tools/intel_vbt_decode.c | 919 ++++++++++++++++++++++++++++++++++-----
 tools/intel_vbt_defs.h   | 254 ++++++++---
 2 files changed, 1018 insertions(+), 155 deletions(-)

-- 
2.35.1



More information about the igt-dev mailing list