From patchwork Mon Mar 18 15:59:35 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Bj=C3=B8rn_Mork?= X-Patchwork-Id: 2294901 Return-Path: X-Original-To: patchwork-dri-devel@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 E35AE3FCF6 for ; Mon, 18 Mar 2013 19:18:47 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id CC7ACE6282 for ; Mon, 18 Mar 2013 12:18:47 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org X-Greylist: delayed 1349 seconds by postgrey-1.32 at gabe; Mon, 18 Mar 2013 09:22:11 PDT Received: from canardo.mork.no (canardo.mork.no [148.122.252.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D9D13E5EF6 for ; Mon, 18 Mar 2013 09:22:11 -0700 (PDT) Received: from nemi.mork.no (nemi.mork.no [IPv6:2001:4620:9:2:216:eaff:feb3:788]) (authenticated bits=0) by canardo.mork.no (8.14.3/8.14.3) with ESMTP id r2IFxaoL024248 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Mon, 18 Mar 2013 16:59:36 +0100 Received: from bjorn by nemi.mork.no with local (Exim 4.80) (envelope-from ) id 1UHcTI-0001qg-5J; Mon, 18 Mar 2013 16:59:36 +0100 From: =?utf-8?Q?Bj=C3=B8rn_Mork?= To: Sergio Callegari Subject: Re: Stable kernel 3.8.3 appears to break displayport on intel gen4 Organization: m References: <51472956.80209@gmail.com> Date: Mon, 18 Mar 2013 16:59:35 +0100 In-Reply-To: <51472956.80209@gmail.com> (Sergio Callegari's message of "Mon, 18 Mar 2013 15:48:54 +0100") Message-ID: <87sj3s4s2g.fsf@nemi.mork.no> User-Agent: Gnus/5.11002 (No Gnus v0.20) Emacs/23.4 (gnu/linux) MIME-Version: 1.0 X-Virus-Scanned: clamav-milter 0.97.6 at canardo X-Virus-Status: Clean X-Mailman-Approved-At: Mon, 18 Mar 2013 12:16:48 -0700 Cc: Daniel Vetter , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org Errors-To: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org Sergio Callegari writes: > This is just a short note to let you know that after installing 3.8.3, > display port stopped working on my laptop. Going back to 3.8.2 brought > it back to life. > This has been tested with the ubuntu mainline kernels that should be > vanilla stable kernels. Hope this is not an incorrect report due to > something wrong on their side. Laptop is a DELL E6500 with intel gen4 > integrated graphics (Intel Corporation Mobile 4 Series Chipset > Integrated Graphics Controller (rev 07)). > With 3.8.3, xrandr does not report anymore the external monitor when > it is actually attached via displayport. I can confirm seeing this bug on: # lspci -nnvvvs 00:02.0 00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller [8086:2a42] (rev 07) (prog-if 00 [VGA controller]) Subsystem: Lenovo Device [17aa:20e4] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR- [disabled] Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit- Address: fee0300c Data: 4152 Capabilities: [d0] Power Management version 3 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Kernel driver in use: i915 Looking through the changes from v3.8.2 to v3.8.3, there weren't really that many suspects. This partial (to avoid having to change any following patches) revert of commit 2a98104 ("drm/i915: reorder setup sequence to have irqs for output setup") fixes the problem for me. I have no idea why, so I leave it to Daniel and the other wise men working on this driver to explain and cleanup :) --- drivers/gpu/drm/i915/i915_dma.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c index 5206f24..b15b65d 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c @@ -1297,21 +1297,19 @@ static int i915_load_modeset_init(struct drm_device *dev) if (ret) goto cleanup_vga_switcheroo; - ret = drm_irq_install(dev); - if (ret) - goto cleanup_gem_stolen; - - /* Important: The output setup functions called by modeset_init need - * working irqs for e.g. gmbus and dp aux transfers. */ intel_modeset_init(dev); ret = i915_gem_init(dev); if (ret) - goto cleanup_irq; + goto cleanup_gem_stolen; + + intel_modeset_gem_init(dev); INIT_WORK(&dev_priv->console_resume_work, intel_console_resume); - intel_modeset_gem_init(dev); + ret = drm_irq_install(dev); + if (ret) + goto cleanup_gem; /* Always safe in the mode setting case. */ /* FIXME: do pre/post-mode set stuff in core KMS code */