• David Weinehall's avatar
    drm/i915: Allow parsing of variable size child device entries from VBT · 047fe6e6
    David Weinehall authored
    VBT version 196 increased the size of common_child_dev_config. The parser
    code assumed that the size of this structure would not change.
    
    The modified code now copies the amount needed based on the VBT version,
    and emits a debug message if the VBT version is unknown (too new);
    since the struct config block won't shrink in newer versions it should
    be harmless to copy the maximum known size in such cases, so that's
    what we do, but emitting the warning is probably sensible anyway.
    
    In the longer run it might make sense to modify the parser code to
    use a version/feature mapping, rather than hardcoding things like this,
    but for now the variants are fairly managable.
    
    This fixes a regression introduced in
    
    commit 90e4f159
    Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Date:   Wed Mar 25 18:45:58 2015 +0200
    
        drm/i915: Fix the VBT child device parsing for BSW
    
    since we're hitting a DRM_ERROR on older platforms with this.
    
    v2: Stricter size checks
    Signed-off-by: default avatarDavid Weinehall <david.weinehall@linux.intel.com>
    [danvet: Fixup format string.]
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    047fe6e6
intel_bios.c 37.4 KB