The patch below does not apply to the 5.4-stable tree. If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <stable@xxxxxxxxxxxxxxx>. Possible dependencies: 12caf46cf4fc ("drm/i915/sdvo: Grab mode_config.mutex during LVDS init to avoid WARNs") d372ec94a018 ("drm/i915: Simplify intel_panel_add_edid_alt_fixed_modes()") a5810f551d0a ("drm/i915: Allow more varied alternate fixed modes for panels") 6e939738da20 ("drm/i915: Accept more fixed modes with VRR panels") 3cf050762534 ("drm/i915/bios: Split VBT data into per-panel vs. global parts") c2fdb424d322 ("drm/i915/bios: Split VBT parsing to global vs. panel specific parts") c3fbcf60bc74 ("drm/i915/bios: Split parse_driver_features() into two parts") 75bd0d5e4ead ("drm/i915/pps: Split pps_init_delays() into distinct parts") 822e5ae701af ("drm/i915: Extract intel_edp_fixup_vbt_bpp()") 949665a6e237 ("drm/i915: Respect VBT seamless DRRS min refresh rate") 790b45f1bc67 ("drm/i915/bios: Parse the seamless DRRS min refresh rate") 901a0cad2ab8 ("drm/i915/bios: Get access to the tail end of the LFP data block") 13367132a7ad ("drm/i915/bios: Reorder panel DTD parsing") 5ab58d6996d7 ("drm/i915/bios: Validate the panel_name table") 58b2e3829ec6 ("drm/i915/bios: Trust the LFP data pointers") 514003e1421e ("drm/i915/bios: Validate LFP data table pointers") 918f3025960f ("drm/i915/bios: Use the copy of the LFP data table always") e163cfb4c96d ("drm/i915/bios: Make copies of VBT data blocks") d58a3d699797 ("drm/i915/bios: Use the cached BDB version") ca2a3c9204ec ("drm/i915/bios: Extract struct lvds_lfp_data_ptr_table") thanks, greg k-h ------------------ original commit in Linus's tree ------------------ >From 12caf46cf4fc92b1c3884cb363ace2e12732fd2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <ville.syrjala@xxxxxxxxxxxxxxx> Date: Wed, 26 Oct 2022 13:11:29 +0300 Subject: [PATCH] drm/i915/sdvo: Grab mode_config.mutex during LVDS init to avoid WARNs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit drm_mode_probed_add() is unhappy about being called w/o mode_config.mutex. Grab it during LVDS fixed mode setup to silence the WARNs. Cc: stable@xxxxxxxxxxxxxxx Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/7301 Fixes: aa2b88074a56 ("drm/i915/sdvo: Fix multi function encoder stuff") Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> Link: https://patchwork.freedesktop.org/patch/msgid/20221026101134.20865-4-ville.syrjala@xxxxxxxxxxxxxxx Reviewed-by: Jani Nikula <jani.nikula@xxxxxxxxx> (cherry picked from commit a3cd4f447281c56377de2ee109327400eb00668d) Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> diff --git a/drivers/gpu/drm/i915/display/intel_sdvo.c b/drivers/gpu/drm/i915/display/intel_sdvo.c index 8ee7b05ab733..774c1dc31a52 100644 --- a/drivers/gpu/drm/i915/display/intel_sdvo.c +++ b/drivers/gpu/drm/i915/display/intel_sdvo.c @@ -2900,8 +2900,12 @@ intel_sdvo_lvds_init(struct intel_sdvo *intel_sdvo, int device) intel_panel_add_vbt_sdvo_fixed_mode(intel_connector); if (!intel_panel_preferred_fixed_mode(intel_connector)) { + mutex_lock(&i915->drm.mode_config.mutex); + intel_ddc_get_modes(connector, &intel_sdvo->ddc); intel_panel_add_edid_fixed_modes(intel_connector, false); + + mutex_unlock(&i915->drm.mode_config.mutex); } intel_panel_init(intel_connector);