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

Jani Nikula jani.nikula at linux.intel.com
Wed Jun 15 06:44:26 UTC 2022


On Wed, 15 Jun 2022, Ville Syrjala <ville.syrjala at linux.intel.com> wrote:
> 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.

I glanced through all this, and it LGTM, but can't claim I did a
detailed, thorough review. I also don't think it should really be
necessary for this particular tool. If the changes work for you, it's
good enough for me.

Cc: Petri, good to go with that?

BR,
Jani.

>
> 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(-)

-- 
Jani Nikula, Intel Open Source Graphics Center


More information about the igt-dev mailing list