From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: Re: External display Date: Fri, 14 Jan 2011 12:51:13 +0000 Message-ID: <849307$b585ru@azsmga001.ch.intel.com> References: <1295008688.2327.43.camel@hoss.staad.pingworks.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mga14.intel.com (mga14.intel.com [143.182.124.37]) by gabe.freedesktop.org (Postfix) with ESMTP id D486C9E74C for ; Fri, 14 Jan 2011 04:51:19 -0800 (PST) In-Reply-To: <1295008688.2327.43.camel@hoss.staad.pingworks.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Christoph Lukas , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Fri, 14 Jan 2011 13:38:08 +0100, Christoph Lukas wrote: > Hi, > > I am using a Dell E6410 notebook running Ubuntu. Most of the time I am > running this notebook in a docking station with closed lid and with an > external (DVI) monitor attached to the dock. > > Running different kernels I see different behaviour regarding the > display configuration after boot. > > Booting a 2.6.32 based kernel the internal display is turned off, the > external display is turned on and running at it's native resolution of > 1920x1200. > This is what I would expect. Once upon a time we trusted the lid status and reported the internal screen as disconnected when the lid was closed. We were beset by bugs reporting broken lid status and the LVDS not working. So we gave up. Usually between the BIOS and userspace responding to lid notification events, the LVDS is turned off when the lid is closed. See commit 6e6c822868f113dabe3c33bdd91e883cc28fa11b Author: Eric Anholt Date: Wed Mar 17 13:48:06 2010 -0700 drm/i915: Stop trying to use ACPI lid status to determine LVDS connection. I've been getting more and more quirk reports about this. It seems clear at this point that other OSes are not using this for determining whether the integrated panel should be turned on, and it is not reliable for doing so. Better to light up an unintended panel than to not light up the only usable output on the system. Signed-off-by: Eric Anholt Acked-by: Jesse Barnes You may want to try: diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds index 9795eb5..45b1fe4 100644 --- a/drivers/gpu/drm/i915/intel_lvds.c +++ b/drivers/gpu/drm/i915/intel_lvds.c @@ -474,11 +474,9 @@ intel_lvds_detect(struct drm_connector *connector, bool for struct drm_device *dev = connector->dev; enum drm_connector_status status = connector_status_connected; - /* ACPI lid methods were generally unreliable in this generation, so - * don't even bother. - */ - if (IS_GEN2(dev) || IS_GEN3(dev)) - return connector_status_connected; + /* ACPI lid methods were generally unreliable, so don't even bother. */ + if (INTEL_INFO(dev)->gen >= 5 && !acpi_lid_open()) + status = connector_status_disconnected; return status; } -- Chris Wilson, Intel Open Source Technology Centre