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.

Signed-off-by: Ankit Nautiyal <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_dp.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index 2dadbf7e8922..649d1018af1b 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -508,11 +508,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);
-- 
2.45.2

Reply via email to