if (i915_inject_load_failure())
                return -ENODEV;
 
-       ret = intel_bios_init(dev_priv);
-       if (ret)
-               DRM_INFO("failed to find VBIOS tables\n");
+       intel_bios_init(dev_priv);
 
        /* If we have > 1 VGA cards, then we need to arbitrate access
         * to the common VGA resources.
 
 extern void intel_i2c_reset(struct drm_i915_private *dev_priv);
 
 /* intel_bios.c */
-int intel_bios_init(struct drm_i915_private *dev_priv);
+void intel_bios_init(struct drm_i915_private *dev_priv);
 bool intel_bios_is_valid_vbt(const void *buf, size_t size);
 bool intel_bios_is_tv_present(struct drm_i915_private *dev_priv);
 bool intel_bios_is_lvds_present(struct drm_i915_private *dev_priv, u8 *i2c_pin);
 
  * intel_bios_init - find VBT and initialize settings from the BIOS
  * @dev_priv: i915 device instance
  *
- * Loads the Video BIOS and checks that the VBT exists.  Sets scratch registers
- * to appropriate values.
- *
- * Returns 0 on success, nonzero on failure.
+ * Parse and initialize settings from the Video BIOS Tables (VBT). If the VBT
+ * was not found in ACPI OpRegion, try to find it in PCI ROM first. Also
+ * initialize some defaults if the VBT is not present at all.
  */
-int
-intel_bios_init(struct drm_i915_private *dev_priv)
+void intel_bios_init(struct drm_i915_private *dev_priv)
 {
        struct pci_dev *pdev = dev_priv->drm.pdev;
        const struct vbt_header *vbt = dev_priv->opregion.vbt;
        const struct bdb_header *bdb;
        u8 __iomem *bios = NULL;
 
-       if (HAS_PCH_NOP(dev_priv))
-               return -ENODEV;
+       if (HAS_PCH_NOP(dev_priv)) {
+               DRM_DEBUG_KMS("Skipping VBT init due to disabled display.\n");
+               return;
+       }
 
        init_vbt_defaults(dev_priv);
 
+       /* If the OpRegion does not have VBT, look in PCI ROM. */
        if (!vbt) {
                size_t size;
 
                bios = pci_map_rom(pdev, &size);
                if (!bios)
-                       return -1;
+                       goto out;
 
                vbt = find_vbt(bios, size);
-               if (!vbt) {
-                       pci_unmap_rom(pdev, bios);
-                       return -1;
-               }
+               if (!vbt)
+                       goto out;
 
                DRM_DEBUG_KMS("Found valid VBT in PCI ROM\n");
        }
        parse_mipi_sequence(dev_priv, bdb);
        parse_ddi_ports(dev_priv, bdb);
 
+out:
+       if (!vbt)
+               DRM_INFO("Failed to find VBIOS tables (VBT)\n");
+
        if (bios)
                pci_unmap_rom(pdev, bios);
-
-       return 0;
 }
 
 /**