From owner-freebsd-mobile@FreeBSD.ORG Fri Oct 5 21:55:35 2012 Return-Path: Delivered-To: mobile@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D1483106566C; Fri, 5 Oct 2012 21:55:35 +0000 (UTC) (envelope-from nox@jelal.kn-bremen.de) Received: from smtp.kn-bremen.de (gelbbaer.kn-bremen.de [78.46.108.116]) by mx1.freebsd.org (Postfix) with ESMTP id 8E6798FC0C; Fri, 5 Oct 2012 21:55:35 +0000 (UTC) Received: by smtp.kn-bremen.de (Postfix, from userid 10) id 0BA8D1E00700; Fri, 5 Oct 2012 23:55:27 +0200 (CEST) Received: from triton8.kn-bremen.de (noident@localhost [127.0.0.1]) by triton8.kn-bremen.de (8.14.4/8.14.4) with ESMTP id q95LrGIY039123; Fri, 5 Oct 2012 23:53:16 +0200 (CEST) (envelope-from nox@triton8.kn-bremen.de) Received: (from nox@localhost) by triton8.kn-bremen.de (8.14.4/8.14.3/Submit) id q95LrG6g039122; Fri, 5 Oct 2012 23:53:16 +0200 (CEST) (envelope-from nox) From: Juergen Lock Date: Fri, 5 Oct 2012 23:53:16 +0200 To: mobile@freebsd.org, acpi@freebsd.org Message-ID: <20121005215316.GA38707@triton8.kn-bremen.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Cc: avilla@freebsd.org Subject: Dell acpi_video patch X-BeenThere: freebsd-mobile@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Mobile computing with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Oct 2012 21:55:35 -0000 Hi! I finally took a closer look why acpi_video found nothing on my Dell laptop (Precision M4500), and came up with this patch: --- sys/dev/acpica/acpi_video.c.orig +++ sys/dev/acpica/acpi_video.c @@ -906,7 +906,7 @@ vid_enum_outputs_subr(ACPI_HANDLE handle for (i = 0; i < argset->dod_pkg->Package.Count; i++) { if (acpi_PkgInt32(argset->dod_pkg, i, &val) == 0 && - (val & DOD_DEVID_MASK_FULL) == adr) { + (val & (DOD_DEVID_MASK_FULL | 0x80000000)) == adr) { argset->callback(handle, val, argset->context); argset->count++; } which gives me: % sysctl hw.acpi.video. hw.acpi.video.crt0.active: 0 hw.acpi.video.lcd0.active: 0 hw.acpi.video.lcd0.brightness: 100 hw.acpi.video.lcd0.fullpower: 100 hw.acpi.video.lcd0.economy: 46 hw.acpi.video.lcd0.levels: 100 46 0 6 13 20 26 33 40 46 53 60 66 73 80 86 93 100 hw.acpi.video.ext0.active: 0 hw.acpi.video.ext1.active: 0 hw.acpi.video.ext2.active: 0 hw.acpi.video.ext3.active: 0 % and I can change the lcd brightness. hw.acpi.video.lcd0.active is still 0 tho and can't be changed regardless if the display is off or on - maybe that also explains the blank screen after suspend/resume w/o X running or when exiting X or switching from X to a textconsole? I also took a cursory look at Linux' drivers/platform/x86/dell-laptop.c and drivers/platform/x86/dell-wmi.c and found Linux seems to do smi calls, tho it wasn't immediately obvious if that affects all Dell laptops or only older models. (The blank screen problem doesn't occur on Linux.) See also my FLCL entry: https://laptop.bsdgroup.de/freebsd/index.html?action=show_laptop_detail&laptop=13061 Thanx! :) Juergen