]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/i915/dp: Avoid joiner for eDP if not enabled in VBT
authorAnkit Nautiyal <ankit.k.nautiyal@intel.com>
Thu, 8 Jan 2026 12:41:41 +0000 (18:11 +0530)
committerAnkit Nautiyal <ankit.k.nautiyal@intel.com>
Mon, 19 Jan 2026 03:58:11 +0000 (09:28 +0530)
For eDP, enable the Pipe Joiner feature only if VBT explicitly allows it.
If VBT disables the feature, skip joiner for eDP, even if the hardware
supports it.

Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14616
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Link: https://patch.msgid.link/20260108124141.1407760-3-ankit.k.nautiyal@intel.com
drivers/gpu/drm/i915/display/intel_dp.c

index 053443eea9d50e532aed9e16dce4703bf995e949..79fd3b8d8b253e541d550a6a1e18d78c5043d729 100644 (file)
@@ -494,11 +494,16 @@ bool intel_dp_has_joiner(struct intel_dp *intel_dp)
        struct intel_display *display = to_intel_display(intel_dp);
        struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
        struct intel_encoder *encoder = &intel_dig_port->base;
+       struct intel_connector *connector = intel_dp->attached_connector;
 
        /* eDP MSO is not compatible with joiner */
        if (intel_dp->mso_link_count)
                return false;
 
+       if (intel_dp_is_edp(intel_dp) &&
+           !connector->panel.vbt.edp.pipe_joiner_enable)
+               return false;
+
        return DISPLAY_VER(display) >= 12 ||
                (DISPLAY_VER(display) == 11 &&
                 encoder->port != PORT_A);