From owner-freebsd-mobile@FreeBSD.ORG Thu Jul 13 15:37:15 2006 Return-Path: X-Original-To: freebsd-mobile@freebsd.org Delivered-To: freebsd-mobile@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C3B4016A4E0 for ; Thu, 13 Jul 2006 15:37:15 +0000 (UTC) (envelope-from gpalmer@freebsd.org) Received: from noop.in-addr.com (noop.in-addr.com [208.58.23.51]) by mx1.FreeBSD.org (Postfix) with ESMTP id 42BF143D5C for ; Thu, 13 Jul 2006 15:37:13 +0000 (GMT) (envelope-from gpalmer@freebsd.org) Received: from gjp by noop.in-addr.com with local (Exim 4.54 (FreeBSD)) id 1G13FY-000Nmw-7O for freebsd-mobile@freebsd.org; Thu, 13 Jul 2006 11:37:12 -0400 Date: Thu, 13 Jul 2006 11:37:12 -0400 From: Gary Palmer To: freebsd-mobile@freebsd.org Message-ID: <20060713153712.GB71104@in-addr.com> Mail-Followup-To: freebsd-mobile@freebsd.org References: <20060711.104708.1159134898.imp@bsdimp.com> <200607111338.01412.mistry.7@osu.edu> <44B3EDA6.8050608@centtech.com> <20060713094816.GI17014@poupinou.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20060713094816.GI17014@poupinou.org> Subject: Re: Dell laptops 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: Thu, 13 Jul 2006 15:37:15 -0000 On Thu, Jul 13, 2006 at 11:48:16AM +0200, Bruno Ducrot wrote: > It has been useful for me. Thanks. > > First, this information confirm one bug present in all Dell laptops > I'm aware of (including but not limited to D600, D610, inspiron 6000) > The bug is ACPI related, and concern how a particular event is > handled. To be short, the ASL contain this method (example for > the D820): > > Method (SMIE, 0, NotSerialized) > { > Store (SMI (0x96, 0x00), Local0) > If (And (Local0, 0x01)) > { > Notify (\_TZ.THM, 0x80) > } > > Notify (\_SB.PCI0.VID, 0x81) > Notify (\_SB.PCI0.AGP.VID, 0x81) > } > > If (And (Local0, 0x02)) > { > Store (SMI (0x6D, 0x00), Local0) <--- BUG. Local0 will > change in > that case!!! > ... > ... > } > > If (And (Local0, 0x04)) <--- We may not have the correct value for > Local0 in that case... > { > Notify (\_SB.BAT0, 0x81) > Notify (\_SB.BAT1, 0x81) > } > > If (And (Local0, 0x08)) > { > Notify (\_PR.CPU0, 0x80) > Notify (\_PR.CPU1, 0x80) > } > > If (And (Local0, 0x10)) > { > ... > ... > } > ... > > This method possibly can change in the middle the value of Local0 > and in that case the other If() statements are broken. > > This method is called in order to handle an SCI interrupt, specifically > by \GPE._L19() (it will call in fact NEVT() which may call NEVT()). Hi Bruno, Forgive my ignorance, but what is a SCI interrupt? I.e. what could the outcome of the above bug in the ASL code be? Could it be related to the failure to properly sleep on these laptops? Thanks, Gary