From patchwork Fri Mar 22 09:53:39 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 2318851 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by patchwork2.kernel.org (Postfix) with ESMTP id 8577CDFE82 for ; Fri, 22 Mar 2013 09:51:08 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 3AB9EE6111 for ; Fri, 22 Mar 2013 02:51:08 -0700 (PDT) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mail-ea0-f182.google.com (mail-ea0-f182.google.com [209.85.215.182]) by gabe.freedesktop.org (Postfix) with ESMTP id 540BEE5CDB for ; Fri, 22 Mar 2013 02:50:58 -0700 (PDT) Received: by mail-ea0-f182.google.com with SMTP id q15so1261610ead.27 for ; Fri, 22 Mar 2013 02:50:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=x-received:from:to:cc:subject:date:message-id:x-mailer; bh=B4XdPIow1dCXi7ChOKGgAAbSybC/GgpfTlUjJJVtKZw=; b=FLaDall6zNSxk6+Mqs2OC4yteOc9L7JTfbaHt+9B8Z+frjGt2nWUMTvCuhc/EG3xaO Psh1G3n+kO5OvAQNd1eqh0KKJ8ifuvzQoy87vs7FJyp1VqmHkZ8pzN18WkDAt/ej/ybE Cn3XS1RUPTg+cI5VBjovD2LVj9M/wH8aTdclM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:from:to:cc:subject:date:message-id:x-mailer :x-gm-message-state; bh=B4XdPIow1dCXi7ChOKGgAAbSybC/GgpfTlUjJJVtKZw=; b=TprVDjWE3ible01JxPCquU+dL0zr8hwVp8yFkpXFg9pUhMXLocctBXm1LfRoLv5v+b YUSTbICEpbSbrJkPr3Jw/lBspIHAzHTY+vK40F8dNRzs2q4gaz0ZXg2BBXH3RBIP90sG G0yyBuFzz97Kqj2pz/Xt6bSziUJtZh8iBw83YL5sRnI5a2I9kH59sWNCU3hoWOuSjEdM cJ/u9pbB7DcKMKuqY3HImdVLVa47aay3XFgCvDzPyNGrbS+9+cTrY3v45TLIQz+64FDQ gLurz0SLDRGnUNP3b41Utg5BF1kpXeL+gPrEQGwxlhHkXLgs+vheOCMtnjJFPnFnZapC sxrA== X-Received: by 10.14.220.135 with SMTP id o7mr3546417eep.3.1363945857198; Fri, 22 Mar 2013 02:50:57 -0700 (PDT) Received: from phenom.ffwll.local (178-83-130-250.dynamic.hispeed.ch. [178.83.130.250]) by mx.google.com with ESMTPS id q42sm1894255eem.14.2013.03.22.02.50.55 (version=TLSv1.2 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 22 Mar 2013 02:50:56 -0700 (PDT) From: Daniel Vetter To: Intel Graphics Development Date: Fri, 22 Mar 2013 10:53:39 +0100 Message-Id: <1363946021-26651-1-git-send-email-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 1.7.10.4 X-Gm-Message-State: ALoCoQknWw7gMQyLSPAqnToGOIsZKwPY5+YDsmXWdEkwB2u+ur+Dl7GRjUGP1441kPgvNX15SOIP Cc: Takashi Iwai , Daniel Vetter , Paulo Zanoni Subject: [Intel-gfx] [PATCH 1/3] Revert "drm/i915: dynamic Haswell display power well support" X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: intel-gfx-bounces+patchwork-intel-gfx=patchwork.kernel.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+patchwork-intel-gfx=patchwork.kernel.org@lists.freedesktop.org This reverts commit d6dd9eb1d96d2b7345fe4664066c2b7ed86da898. The current hsw power wells code seems to break audio - the current audio driver presumes that register contents are preserved when disablng an output, which is no longer true with the power wells code. And Takashi Iwai also reported a black screen regression. He has a machine with an eDP panel on port D (usual all-in-one config), which intel_dp.c identifies correctly as an eDP output, but our the power wells code does not differentiate between eDP on port A or D. And the magic only works on port A. References: http://www.mail-archive.com/intel-gfx@lists.freedesktop.org/msg18788.html Cc: Paulo Zanoni Cc: Takashi Iwai Signed-off-by: Daniel Vetter --- drivers/gpu/drm/i915/intel_ddi.c | 8 +------- drivers/gpu/drm/i915/intel_display.c | 31 ------------------------------- 2 files changed, 1 insertion(+), 38 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c index 8d0bac3..42c79bf 100644 --- a/drivers/gpu/drm/i915/intel_ddi.c +++ b/drivers/gpu/drm/i915/intel_ddi.c @@ -992,13 +992,7 @@ void intel_ddi_enable_pipe_func(struct drm_crtc *crtc) if (cpu_transcoder == TRANSCODER_EDP) { switch (pipe) { case PIPE_A: - /* Can only use the always-on power well for eDP when - * not using the panel fitter, and when not using motion - * blur mitigation (which we don't support). */ - if (dev_priv->pch_pf_size) - temp |= TRANS_DDI_EDP_INPUT_A_ONOFF; - else - temp |= TRANS_DDI_EDP_INPUT_A_ON; + temp |= TRANS_DDI_EDP_INPUT_A_ONOFF; break; case PIPE_B: temp |= TRANS_DDI_EDP_INPUT_B_ONOFF; diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 287b42c..7114e68 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -5710,35 +5710,6 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc, return fdi_config_ok ? ret : -EINVAL; } -static void haswell_modeset_global_resources(struct drm_device *dev) -{ - struct drm_i915_private *dev_priv = dev->dev_private; - bool enable = false; - struct intel_crtc *crtc; - struct intel_encoder *encoder; - - list_for_each_entry(crtc, &dev->mode_config.crtc_list, base.head) { - if (crtc->pipe != PIPE_A && crtc->base.enabled) - enable = true; - /* XXX: Should check for edp transcoder here, but thanks to init - * sequence that's not yet available. Just in case desktop eDP - * on PORT D is possible on haswell, too. */ - } - - list_for_each_entry(encoder, &dev->mode_config.encoder_list, - base.head) { - if (encoder->type != INTEL_OUTPUT_EDP && - encoder->connectors_active) - enable = true; - } - - /* Even the eDP panel fitter is outside the always-on well. */ - if (dev_priv->pch_pf_size) - enable = true; - - intel_set_power_well(dev, enable); -} - static int haswell_crtc_mode_set(struct drm_crtc *crtc, struct drm_display_mode *mode, struct drm_display_mode *adjusted_mode, @@ -8635,8 +8606,6 @@ static void intel_init_display(struct drm_device *dev) } else if (IS_HASWELL(dev)) { dev_priv->display.fdi_link_train = hsw_fdi_link_train; dev_priv->display.write_eld = haswell_write_eld; - dev_priv->display.modeset_global_resources = - haswell_modeset_global_resources; } } else if (IS_G4X(dev)) { dev_priv->display.write_eld = g4x_write_eld;