]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
UBUNTU: SAUCE: Revert "drm/i915/dp: Send DPCD ON for MST before phy_up"
authorKai-Heng Feng <kai.heng.feng@canonical.com>
Tue, 29 Jan 2019 11:37:00 +0000 (12:37 +0100)
committerStefan Bader <stefan.bader@canonical.com>
Tue, 29 Jan 2019 15:36:02 +0000 (16:36 +0100)
BugLink: https://bugs.launchpad.net/bugs/1813663
This reverts commit e417085e79136d9f9559a956bd4bc2c34d6a9180 since its
backport into 4.15 caused regressions for users that got docks with
multiple connectors (MST DP).

Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Acked-by: Stefan Bader <stefan.bader@canonical.com>
Acked-by: Andy Whitcroft <apw@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/gpu/drm/i915/intel_ddi.c
drivers/gpu/drm/i915/intel_dp_mst.c

index a890b031cfc2ea72f8b6156538f0ee307fcb07b6..38e53d6b8127e8c3b2d658142d828bf6f1291dca 100644 (file)
@@ -2208,8 +2208,7 @@ static void intel_ddi_pre_enable_dp(struct intel_encoder *encoder,
                intel_prepare_dp_ddi_buffers(encoder);
 
        intel_ddi_init_dp_buf_reg(encoder);
-       if (!is_mst)
-               intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON);
+       intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON);
        intel_dp_start_link_train(intel_dp);
        if (port != PORT_A || INTEL_GEN(dev_priv) >= 9)
                intel_dp_stop_link_train(intel_dp);
@@ -2294,15 +2293,12 @@ static void intel_ddi_post_disable_dp(struct intel_encoder *encoder,
        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
        struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
        struct intel_dp *intel_dp = &dig_port->dp;
-       bool is_mst = intel_crtc_has_type(old_crtc_state,
-                                         INTEL_OUTPUT_DP_MST);
 
        /*
         * Power down sink before disabling the port, otherwise we end
         * up getting interrupts from the sink on detecting link loss.
         */
-       if (!is_mst)
-               intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF);
+       intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF);
 
        intel_disable_ddi_buf(encoder);
 
index 824032e87c777cb4d2c262a493f7b01a22a12fa8..772521440a9f1b0b16acc6c85982e4250e50874b 100644 (file)
@@ -173,7 +173,6 @@ static void intel_mst_post_disable_dp(struct intel_encoder *encoder,
 
        intel_mst->connector = NULL;
        if (intel_dp->active_mst_links == 0) {
-               intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF);
                intel_dig_port->base.post_disable(&intel_dig_port->base,
                                                  NULL, NULL);
        }
@@ -202,11 +201,7 @@ static void intel_mst_pre_enable_dp(struct intel_encoder *encoder,
 
        DRM_DEBUG_KMS("active links %d\n", intel_dp->active_mst_links);
 
-       if (intel_dp->active_mst_links == 0)
-               intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON);
-
        drm_dp_send_power_updown_phy(&intel_dp->mst_mgr, connector->port, true);
-
        if (intel_dp->active_mst_links == 0)
                intel_dig_port->base.pre_enable(&intel_dig_port->base,
                                                pipe_config, NULL);