Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/i915/mso: using joiner is not possible with eDP MSO

It's not possible to use the joiner at the same time with eDP MSO. When
a panel needs MSO, it's not optional, so MSO trumps joiner.

v3: Only change intel_dp_has_joiner(), leave debugfs alone (Ville)

Fixes: bc71194e8897 ("drm/i915/edp: enable eDP MSO during link training")
Cc: <stable@vger.kernel.org> # v5.13+
Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/1668
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240614142311.589089-1-jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
(cherry picked from commit 8b5a92ca24eb96bb71e2a55e352687487d87687f)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>

+4
+4
drivers/gpu/drm/i915/display/intel_dp.c
··· 442 442 struct intel_encoder *encoder = &intel_dig_port->base; 443 443 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); 444 444 445 + /* eDP MSO is not compatible with joiner */ 446 + if (intel_dp->mso_link_count) 447 + return false; 448 + 445 449 return DISPLAY_VER(dev_priv) >= 12 || 446 450 (DISPLAY_VER(dev_priv) == 11 && 447 451 encoder->port != PORT_A);