Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752204AbXLZEO4 (ORCPT ); Tue, 25 Dec 2007 23:14:56 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751590AbXLZEOq (ORCPT ); Tue, 25 Dec 2007 23:14:46 -0500 Received: from smtp2.linux-foundation.org ([207.189.120.14]:59565 "EHLO smtp2.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751522AbXLZEOo (ORCPT ); Tue, 25 Dec 2007 23:14:44 -0500 Date: Tue, 25 Dec 2007 20:11:58 -0800 (PST) From: Linus Torvalds To: "Rafael J. Wysocki" cc: Carlos Corbacho , "H. Peter Anvin" , Linux Kernel Mailing List , Greg KH , Ingo Molnar , Thomas Gleixner , Len Brown , Andrew Morton , pm list , ACPI Devel Maling List Subject: Re: Suspend code ordering (again) (was: Re: x86: Increase PCIBIOS_MIN_IO to 0x1500 to fix nForce 4 suspend-to-RAM) In-Reply-To: <200712251713.13223.rjw@sisk.pl> Message-ID: References: <200712231419.40207.carlos@strangeworlds.co.uk> <200712241444.24031.rjw@sisk.pl> <200712251713.13223.rjw@sisk.pl> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1693 Lines: 35 On Tue, 25 Dec 2007, Rafael J. Wysocki wrote: > > the ACPI specification between versions 1.0x and 2.0. Namely, while ACPI > 2.0 and later wants us to put devices into low power states before calling > _PTS, ACPI 1.0x wants us to do that after calling _PTS. Since we're following > the 2.0 and later specifications right now, we're not doing the right thing for > the (strictly) ACPI 1.0x-compliant systems. > > We ought to be able to fix things on the high level, by calling _PTS earlier on > systems that claim to be ACPI 1.0x-compliant. That will require us to modify > the generic susped code quite a bit and will need to be tested for some time. That's insane. Are you really saying that ACPI wants totally different orderings for different versions of the spec? And does Windows really do that? Please don't make lots of modifications to the generic suspend code. The only thing that is worth doing is to just have a firmware callback before the "device_suspend()" thing (and then on a ACPI-1.0 system, call _PTS *there*), and on an ACPI-2.0 system, call _PTS *after* device_suspend(). Still, the fact is, some (most, I think) drivers *should* put themselves into D3 only in "late_suspend()", so if ACPI-2.0 really expects _PTS to be called after that, we're just screwed. That's when the system is really down, interrupts disabled etc, we don't want to call anything but the final ACPI "turn us off" stuff there! Linus -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/