From patchwork Wed Jul 11 14:38:00 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 1184361 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by patchwork1.kernel.org (Postfix) with ESMTP id 6E4AF3FC5A for ; Wed, 11 Jul 2012 16:38:50 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 45D1DA0EC8 for ; Wed, 11 Jul 2012 09:38:50 -0700 (PDT) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mail-wg0-f43.google.com (mail-wg0-f43.google.com [74.125.82.43]) by gabe.freedesktop.org (Postfix) with ESMTP id DF2A8A0E6D for ; Wed, 11 Jul 2012 08:44:01 -0700 (PDT) Received: by wgbdr1 with SMTP id dr1so953803wgb.12 for ; Wed, 11 Jul 2012 08:44:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; bh=IM1iI2bapTwabbMhU6lkglJRwL68dKfoT6BwexpBeDI=; b=Ee8MBHqmrKh8EeBUo6or5/JJ6MvioQ+gbK3HsV/Ql07e/8LqSwHOi4ztTYR6e4Eeuy f5engJGm5w6S34lDJwJH2oiApXrQWN1L330JHD1VXk7qfqhqOolWejfJXfxDi9S0mBiU N78YgMt0ZYbIwzX7XWwF4CkwPE714UWPSkZvc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references :x-gm-message-state; bh=IM1iI2bapTwabbMhU6lkglJRwL68dKfoT6BwexpBeDI=; b=MuDgJqg4WkGr+vlzA1ONdtTSwV16Zb1aLqaSESi6MCts6rpVsOREcC8MAbYeVJlnkE CJPcTAXt5bizCkRJicQlmPDBQz6/Hm5f0mPoqNZZ1y20XoohPI9MJPGtO59brdR5sPRi I3P+K5MbGO15VxTcF/2ArGSuwQE8l7Jq9EET/a7jDXhKxOu6o3E4bl88r3KKVKfoHIEA S+wCeWwJcbL9WcsNPe/SmentEp1R9hpw2hpQm+YfqGnUKYL+RCcYJbBC7850cyL/Glfn /8t4mF4k0j5IONGqxyNEXebKkc2ICdLju2pjms6BuGTzQjcuFHWHzHiDrwb4OSVRuHWp 02zw== Received: by 10.180.100.133 with SMTP id ey5mr48244763wib.4.1342021440894; Wed, 11 Jul 2012 08:44:00 -0700 (PDT) Received: from wespe.ffwll.local (178-83-130-250.dynamic.hispeed.ch. [178.83.130.250]) by mx.google.com with ESMTPS id fb20sm5831077wid.1.2012.07.11.08.43.59 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 11 Jul 2012 08:44:00 -0700 (PDT) From: Daniel Vetter To: Intel Graphics Development Date: Wed, 11 Jul 2012 16:38:00 +0200 Message-Id: <1342017480-23514-1-git-send-email-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 1.7.7.6 In-Reply-To: <1342016944-23395-1-git-send-email-daniel.vetter@ffwll.ch> References: <1342016944-23395-1-git-send-email-daniel.vetter@ffwll.ch> X-Gm-Message-State: ALoCoQl5lbwApaKnmKhvDo4XhLYiUmblYifYwU5vjpQRK52p6I+QG0mLe9oXGiPwJEex1lpEDQqP Cc: Daniel Vetter Subject: [Intel-gfx] [PATCH 81/81] drm/i915: disable the cpu edp port after the cpu pipe 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 See bspec, Vol3 Part2, Section 1.1.3 "Display Mode Set Sequence". This applies to all platforms where we currently support eDP on, i.e. ilk, snb & ivb. Without this change we fail to light up the eDP port on previously unused crtcs (likely because something is stuck on the old pipe), and we also fail to properly disable the old pipe (i.e. bit 30 in the PIPECONF register is stuck as set until the next reboot). Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=44001 Signed-Off-by: Daniel Vetter --- drivers/gpu/drm/i915/intel_dp.c | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 90b03e9..51053fb 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -1340,16 +1340,23 @@ static void intel_disable_dp(struct intel_encoder *encoder) ironlake_edp_panel_off(intel_dp); intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON); - intel_dp_link_down(intel_dp); - ironlake_edp_panel_vdd_off(intel_dp, false); + + /* cpu edp my only be disable _after_ the cpu pipe/plane is disabled. */ + if (!is_cpu_edp(intel_dp)) { + intel_dp_link_down(intel_dp); + ironlake_edp_panel_vdd_off(intel_dp, false); + } } static void intel_post_disable_dp(struct intel_encoder *encoder) { struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base); - if (is_cpu_edp(intel_dp)) + if (is_cpu_edp(intel_dp)) { + intel_dp_link_down(intel_dp); + ironlake_edp_panel_vdd_off(intel_dp, false); ironlake_edp_pll_off(intel_dp); + } } static void intel_enable_dp(struct intel_encoder *encoder)