From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> Parsing the panel_type is a bit special and should be done before we parse anything else potentially panel-specific from the VBT. So move it out from parse_panel_options(). It doesn't neet to be there anyway since it'll do its own LVDS options block lookup. Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> --- drivers/gpu/drm/i915/display/intel_bios.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c index fb5f8a9f5ab5..df52f406e1ae 100644 --- a/drivers/gpu/drm/i915/display/intel_bios.c +++ b/drivers/gpu/drm/i915/display/intel_bios.c @@ -746,11 +746,10 @@ static int get_panel_type(struct drm_i915_private *i915, /* Parse general panel options */ static void parse_panel_options(struct drm_i915_private *i915, - struct intel_panel *panel, - const struct edid *edid) + struct intel_panel *panel) { const struct bdb_lvds_options *lvds_options; - int panel_type; + int panel_type = panel->vbt.panel_type; int drrs_mode; lvds_options = find_section(i915, BDB_LVDS_OPTIONS); @@ -759,10 +758,6 @@ parse_panel_options(struct drm_i915_private *i915, panel->vbt.lvds_dither = lvds_options->pixel_dither; - panel_type = get_panel_type(i915, edid); - - panel->vbt.panel_type = panel_type; - drrs_mode = (lvds_options->dps_panel_type_bits >> (panel_type * 2)) & MODE_MASK; /* @@ -3117,7 +3112,9 @@ void intel_bios_init_panel(struct drm_i915_private *i915, { init_vbt_panel_defaults(panel); - parse_panel_options(i915, panel, edid); + panel->vbt.panel_type = get_panel_type(i915, edid); + + parse_panel_options(i915, panel); parse_generic_dtd(i915, panel); parse_lfp_data(i915, panel); parse_lfp_backlight(i915, panel); -- 2.35.1