]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Allow parsing of variable size child device entries from VBT
authorDavid Weinehall <david.weinehall@linux.intel.com>
Tue, 4 Aug 2015 13:55:52 +0000 (16:55 +0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 6 Aug 2015 15:28:26 +0000 (17:28 +0200)
commit12fc186126ae1d554c46f0ccb8e927a7891194a2
treeb01e4d74d09bf946b824465be75c2be473cee6c3
parente10fe6f60325f827a4c01792850ee9be2dd371a7
drm/i915: Allow parsing of variable size child device entries from VBT

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 13a4a5086e0cd3b3d2441d21620cfcccbfda376d
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: David Weinehall <david.weinehall@linux.intel.com>
[danvet: Fixup format string.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_bios.c