drm/i915/bios: Assume panel_type==0 if the VBT has bogus data
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 4 May 2022 15:04:36 +0000 (18:04 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 5 May 2022 15:25:49 +0000 (18:25 +0300)
Just assume panel_type==0 always if the VBT gives us bogus data.
We actually already do this everywhere else except in
parse_panel_options() since we just leave i915->vbt.panel_type
zeroed. This also seems to be what Windows does.

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220504150440.13748-6-ville.syrjala@linux.intel.com
drivers/gpu/drm/i915/display/intel_bios.c

index 4d7953e..bbf49e9 100644 (file)
@@ -618,13 +618,14 @@ parse_panel_options(struct drm_i915_private *i915)
        } else {
                if (lvds_options->panel_type > 0xf) {
                        drm_dbg_kms(&i915->drm,
-                                   "Invalid VBT panel type 0x%x\n",
+                                   "Invalid VBT panel type 0x%x, assuming 0\n",
                                    lvds_options->panel_type);
-                       return;
+                       panel_type = 0;
+               } else {
+                       panel_type = lvds_options->panel_type;
+                       drm_dbg_kms(&i915->drm, "Panel type: %d (VBT)\n",
+                                   panel_type);
                }
-               panel_type = lvds_options->panel_type;
-               drm_dbg_kms(&i915->drm, "Panel type: %d (VBT)\n",
-                           panel_type);
        }
 
        i915->vbt.panel_type = panel_type;