diff options
author | Jani Nikula <jani.nikula@intel.com> | 2015-05-13 15:34:04 +0300 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2015-05-20 11:26:00 +0200 |
commit | b34a991a2bf5b9bf0b8abcae7d0f8593fd59e909 (patch) | |
tree | 68b914e6eaa902981344fc10df2330a5330a7275 /drivers/gpu/drm/i915/intel_bios.c | |
parent | 4d70f38a760ad2879d2ebd84001c92980180f630 (diff) |
drm/i915/bios: abstract finding VBT in BIOS to a separate function
Improve clarity. No functional changes.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_bios.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_bios.c | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c index d39c41cf45a7..6e018ba53035 100644 --- a/drivers/gpu/drm/i915/intel_bios.c +++ b/drivers/gpu/drm/i915/intel_bios.c @@ -1235,6 +1235,22 @@ static const struct bdb_header *validate_vbt(const void *base, size_t size, return bdb; } +static const struct bdb_header *find_vbt(void *bios, size_t size) +{ + const struct bdb_header *bdb = NULL; + size_t i; + + /* Scour memory looking for the VBT signature. */ + for (i = 0; i + 4 < size; i++) { + if (memcmp(bios + i, "$VBT", 4) == 0) { + bdb = validate_vbt(bios, size, bios + i, "PCI ROM"); + break; + } + } + + return bdb; +} + /** * intel_parse_bios - find VBT and initialize settings from the BIOS * @dev: DRM device @@ -1263,22 +1279,13 @@ intel_parse_bios(struct drm_device *dev) dev_priv->opregion.vbt, "OpRegion"); if (bdb == NULL) { - size_t i, size; + size_t size; bios = pci_map_rom(pdev, &size); if (!bios) return -1; - /* Scour memory looking for the VBT signature */ - for (i = 0; i + 4 < size; i++) { - if (memcmp(bios + i, "$VBT", 4) == 0) { - bdb = validate_vbt(bios, size, - bios + i, - "PCI ROM"); - break; - } - } - + bdb = find_vbt(bios, size); if (!bdb) { pci_unmap_rom(pdev, bios); return -1; |