* Why don't we use _TTS method? @ 2007-05-03 20:01 Rafael J. Wysocki 2007-05-03 22:27 ` Pavel Machek 2007-05-03 22:57 ` Moore, Robert 0 siblings, 2 replies; 9+ messages in thread From: Rafael J. Wysocki @ 2007-05-03 20:01 UTC (permalink / raw) To: ACPI Devel Maling List; +Cc: pm list, Pavel Machek Hi, I've got two questions regarding the implementation of the ACPI poweroff/sleep code in drivers/acpi/sleep and drivers/acpi/hardware . 1) We don't seem to use the _TTS system-control method, although the ACPI specification (ACPI 3.0b) says that this method should be used for intiating and finishing power transitions. Could you please tell me why we don't use it? 2) In the functions acpi_enter_sleep_state_prep(), acpi_enter_sleep_state(), acpi_leave_sleep_state() we manipulate GPEs quite extensively (we disable and enable them for a couple of times during a transition), although the specification doesn't tell anything about that explicitly. Could you please explain to me what the purpose of that is? Greetings, Rafael -- If you don't have the time to read, you don't have the time or the tools to write. - Stephen King ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Why don't we use _TTS method? 2007-05-03 20:01 Why don't we use _TTS method? Rafael J. Wysocki @ 2007-05-03 22:27 ` Pavel Machek 2007-05-03 22:55 ` Rafael J. Wysocki 2007-05-03 22:57 ` Moore, Robert 1 sibling, 1 reply; 9+ messages in thread From: Pavel Machek @ 2007-05-03 22:27 UTC (permalink / raw) To: Rafael J. Wysocki; +Cc: ACPI Devel Maling List, pm list Hi! > I've got two questions regarding the implementation of the ACPI poweroff/sleep > code in drivers/acpi/sleep and drivers/acpi/hardware . > > 1) We don't seem to use the _TTS system-control method, although the ACPI > specification (ACPI 3.0b) says that this method should be used for intiating > and finishing power transitions. Could you please tell me why we > don't use it? I guess we simply overlooked that :-(. > 2) In the functions acpi_enter_sleep_state_prep(), acpi_enter_sleep_state(), > acpi_leave_sleep_state() we manipulate GPEs quite extensively (we disable > and enable them for a couple of times during a transition), although the > specification doesn't tell anything about that explicitly. Could you please > explain to me what the purpose of that is? We have had some notebooks auto-waking-up just after suspend. Perhaps those hacks are workarounds for that problem? Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Why don't we use _TTS method? 2007-05-03 22:27 ` Pavel Machek @ 2007-05-03 22:55 ` Rafael J. Wysocki 0 siblings, 0 replies; 9+ messages in thread From: Rafael J. Wysocki @ 2007-05-03 22:55 UTC (permalink / raw) To: Pavel Machek; +Cc: ACPI Devel Maling List, pm list Hi, On Friday, 4 May 2007 00:27, Pavel Machek wrote: > Hi! > > > I've got two questions regarding the implementation of the ACPI poweroff/sleep > > code in drivers/acpi/sleep and drivers/acpi/hardware . > > > > 1) We don't seem to use the _TTS system-control method, although the ACPI > > specification (ACPI 3.0b) says that this method should be used for intiating > > and finishing power transitions. Could you please tell me why we > > don't use it? > > I guess we simply overlooked that :-(. Hmm, does it mean we should implement that? > > 2) In the functions acpi_enter_sleep_state_prep(), acpi_enter_sleep_state(), > > acpi_leave_sleep_state() we manipulate GPEs quite extensively (we disable > > and enable them for a couple of times during a transition), although the > > specification doesn't tell anything about that explicitly. Could you please > > explain to me what the purpose of that is? > > We have had some notebooks auto-waking-up just after suspend. Perhaps > those hacks are workarounds for that problem? Well, maybe, but if there's anyone who knows *exactly* why we do this and why it is done in these particular places, I would appreciate it very much if she or he could explain that to me. Currently we're having problems with some boxes due to the code reordering that took place before 2.6.21 and I'm trying to figure out what the source of them is. In the process I've observed that the ACPI functions used by us in the hibernation and suspend code generally don't follow the specification and I'd like to understand if that's intentional and if so then why. Also, I'd like to understand why the old code ordering seemed to work better than the current one, although the current one is closer to what the ACPI spec says (or so it seems). Greetings, Rafael ^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: Why don't we use _TTS method? 2007-05-03 20:01 Why don't we use _TTS method? Rafael J. Wysocki 2007-05-03 22:27 ` Pavel Machek @ 2007-05-03 22:57 ` Moore, Robert 2007-05-03 23:22 ` Rafael J. Wysocki 1 sibling, 1 reply; 9+ messages in thread From: Moore, Robert @ 2007-05-03 22:57 UTC (permalink / raw) To: Rafael J. Wysocki, ACPI Devel Maling List; +Cc: pm list, Pavel Machek > -----Original Message----- > From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi- > owner@vger.kernel.org] On Behalf Of Rafael J. Wysocki > Sent: Thursday, May 03, 2007 1:02 PM > To: ACPI Devel Maling List > Cc: pm list; Pavel Machek > Subject: Why don't we use _TTS method? > > Hi, > > I've got two questions regarding the implementation of the ACPI > poweroff/sleep > code in drivers/acpi/sleep and drivers/acpi/hardware . > > 1) We don't seem to use the _TTS system-control method, although the ACPI > specification (ACPI 3.0b) says that this method should be used for > intiating > and finishing power transitions. Could you please tell me why we don't > use it? > [Moore, Robert] Probably because it's fairly new and it takes a long time for these things to appear in real machines. Also, needs to be supported in Windows before we ever see it in real machines. > 2) In the functions acpi_enter_sleep_state_prep(), > acpi_enter_sleep_state(), > acpi_leave_sleep_state() we manipulate GPEs quite extensively (we disable > and enable them for a couple of times during a transition), although the > specification doesn't tell anything about that explicitly. Could you > please > explain to me what the purpose of that is? > [Moore, Robert] There a wake GPEs and runtime GPEs that need to be managed separately. We want to make sure that only the "Wake" GPEs are enabled as we goto sleep. Bob > Greetings, > Rafael > > > -- > If you don't have the time to read, > you don't have the time or the tools to write. > - Stephen King > - > To unsubscribe from this list: send the line "unsubscribe linux-acpi" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Why don't we use _TTS method? 2007-05-03 22:57 ` Moore, Robert @ 2007-05-03 23:22 ` Rafael J. Wysocki 2007-05-04 4:34 ` Alexey Starikovskiy 0 siblings, 1 reply; 9+ messages in thread From: Rafael J. Wysocki @ 2007-05-03 23:22 UTC (permalink / raw) To: Moore, Robert; +Cc: ACPI Devel Maling List, pm list, Pavel Machek On Friday, 4 May 2007 00:57, Moore, Robert wrote: > > > -----Original Message----- > > From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi- > > owner@vger.kernel.org] On Behalf Of Rafael J. Wysocki > > Sent: Thursday, May 03, 2007 1:02 PM > > To: ACPI Devel Maling List > > Cc: pm list; Pavel Machek > > Subject: Why don't we use _TTS method? > > > > Hi, > > > > I've got two questions regarding the implementation of the ACPI > > poweroff/sleep > > code in drivers/acpi/sleep and drivers/acpi/hardware . > > > > 1) We don't seem to use the _TTS system-control method, although the > ACPI > > specification (ACPI 3.0b) says that this method should be used for > > intiating > > and finishing power transitions. Could you please tell me why we > don't > > use it? > > > [Moore, Robert] > > Probably because it's fairly new and it takes a long time for these > things to appear in real machines. Also, needs to be supported in > Windows before we ever see it in real machines. Hmm, it already was in the 3.0 spec from 2004, so it doesn't seem to be that new. Still, I'm not an expert ... > > 2) In the functions acpi_enter_sleep_state_prep(), > > acpi_enter_sleep_state(), > > acpi_leave_sleep_state() we manipulate GPEs quite extensively (we > disable > > and enable them for a couple of times during a transition), although > the > > specification doesn't tell anything about that explicitly. Could you > > please > > explain to me what the purpose of that is? > > > [Moore, Robert] > > There a wake GPEs and runtime GPEs that need to be managed separately. > We want to make sure that only the "Wake" GPEs are enabled as we goto > sleep. I understand that, but the runtime GPEs seem to be disabled before we call device drivers' .suspend() routines (ie. before the devices are placed in the appropriate Dx states) and that's the point I don't quite get. Is there a technical reason for doing it in this particular place? Thanks a lot for your reply. Greetings, Rafael ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Why don't we use _TTS method? 2007-05-03 23:22 ` Rafael J. Wysocki @ 2007-05-04 4:34 ` Alexey Starikovskiy 2007-05-04 8:50 ` Rafael J. Wysocki 0 siblings, 1 reply; 9+ messages in thread From: Alexey Starikovskiy @ 2007-05-04 4:34 UTC (permalink / raw) To: Rafael J. Wysocki Cc: Moore, Robert, ACPI Devel Maling List, pm list, Pavel Machek Rafael, code in prepare() and enter() is split as code with interrupts on and code with interrupts off. thus it doesn't quite follow a spec in regards of driver suspend. Basically we need to either split it to smaller pieces or have hooks to control interrupts/driver suspend from this code. Regards, Alex. On 5/4/07, Rafael J. Wysocki <rjw@sisk.pl> wrote: > On Friday, 4 May 2007 00:57, Moore, Robert wrote: > > > > > -----Original Message----- > > > From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi- > > > owner@vger.kernel.org] On Behalf Of Rafael J. Wysocki > > > Sent: Thursday, May 03, 2007 1:02 PM > > > To: ACPI Devel Maling List > > > Cc: pm list; Pavel Machek > > > Subject: Why don't we use _TTS method? > > > > > > Hi, > > > > > > I've got two questions regarding the implementation of the ACPI > > > poweroff/sleep > > > code in drivers/acpi/sleep and drivers/acpi/hardware . > > > > > > 1) We don't seem to use the _TTS system-control method, although the > > ACPI > > > specification (ACPI 3.0b) says that this method should be used for > > > intiating > > > and finishing power transitions. Could you please tell me why we > > don't > > > use it? > > > > > [Moore, Robert] > > > > Probably because it's fairly new and it takes a long time for these > > things to appear in real machines. Also, needs to be supported in > > Windows before we ever see it in real machines. > > Hmm, it already was in the 3.0 spec from 2004, so it doesn't seem to be > that new. Still, I'm not an expert ... > > > > 2) In the functions acpi_enter_sleep_state_prep(), > > > acpi_enter_sleep_state(), > > > acpi_leave_sleep_state() we manipulate GPEs quite extensively (we > > disable > > > and enable them for a couple of times during a transition), although > > the > > > specification doesn't tell anything about that explicitly. Could you > > > please > > > explain to me what the purpose of that is? > > > > > [Moore, Robert] > > > > There a wake GPEs and runtime GPEs that need to be managed separately. > > We want to make sure that only the "Wake" GPEs are enabled as we goto > > sleep. > > I understand that, but the runtime GPEs seem to be disabled before we call > device drivers' .suspend() routines (ie. before the devices are placed in the > appropriate Dx states) and that's the point I don't quite get. Is there a > technical reason for doing it in this particular place? > > Thanks a lot for your reply. > > Greetings, > Rafael > - > To unsubscribe from this list: send the line "unsubscribe linux-acpi" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Why don't we use _TTS method? 2007-05-04 4:34 ` Alexey Starikovskiy @ 2007-05-04 8:50 ` Rafael J. Wysocki 2007-05-04 18:10 ` Moore, Robert 0 siblings, 1 reply; 9+ messages in thread From: Rafael J. Wysocki @ 2007-05-04 8:50 UTC (permalink / raw) To: Alexey Starikovskiy Cc: Moore, Robert, ACPI Devel Maling List, pm list, Pavel Machek Hi Alexey, On Friday, 4 May 2007 06:34, Alexey Starikovskiy wrote: > Rafael, > > code in prepare() and enter() is split as code with interrupts on and > code with interrupts off. I see. Still, the spec seems to suggest that _GTS should be executed with interrupts off, but we run it in the 'interrupts on' part of code. Isn't that wrong? > thus it doesn't quite follow a spec in regards of driver suspend. Yes. > Basically we need to either split it to smaller pieces or have hooks > to control interrupts/driver suspend from this code. I'd like to split it and I'd like to figure out *how* to do this. More precisely, I'd like to learn which part of acpi_pm_prepare() should be executed before device_suspend() and which part can be run after it. Analogously, I'd like to learn which part of acpi_pm_finish() needs to be run before device_resume() and which part can be (or should be) run after it. Greetings, Rafael > On 5/4/07, Rafael J. Wysocki <rjw@sisk.pl> wrote: > > On Friday, 4 May 2007 00:57, Moore, Robert wrote: > > > > > > > -----Original Message----- > > > > From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi- > > > > owner@vger.kernel.org] On Behalf Of Rafael J. Wysocki > > > > Sent: Thursday, May 03, 2007 1:02 PM > > > > To: ACPI Devel Maling List > > > > Cc: pm list; Pavel Machek > > > > Subject: Why don't we use _TTS method? > > > > > > > > Hi, > > > > > > > > I've got two questions regarding the implementation of the ACPI > > > > poweroff/sleep > > > > code in drivers/acpi/sleep and drivers/acpi/hardware . > > > > > > > > 1) We don't seem to use the _TTS system-control method, although the > > > ACPI > > > > specification (ACPI 3.0b) says that this method should be used for > > > > intiating > > > > and finishing power transitions. Could you please tell me why we > > > don't > > > > use it? > > > > > > > [Moore, Robert] > > > > > > Probably because it's fairly new and it takes a long time for these > > > things to appear in real machines. Also, needs to be supported in > > > Windows before we ever see it in real machines. > > > > Hmm, it already was in the 3.0 spec from 2004, so it doesn't seem to be > > that new. Still, I'm not an expert ... > > > > > > 2) In the functions acpi_enter_sleep_state_prep(), > > > > acpi_enter_sleep_state(), > > > > acpi_leave_sleep_state() we manipulate GPEs quite extensively (we > > > disable > > > > and enable them for a couple of times during a transition), although > > > the > > > > specification doesn't tell anything about that explicitly. Could you > > > > please > > > > explain to me what the purpose of that is? > > > > > > > [Moore, Robert] > > > > > > There a wake GPEs and runtime GPEs that need to be managed separately. > > > We want to make sure that only the "Wake" GPEs are enabled as we goto > > > sleep. > > > > I understand that, but the runtime GPEs seem to be disabled before we call > > device drivers' .suspend() routines (ie. before the devices are placed in the > > appropriate Dx states) and that's the point I don't quite get. Is there a > > technical reason for doing it in this particular place? > > > > Thanks a lot for your reply. > > > > Greetings, > > Rafael > > - > > To unsubscribe from this list: send the line "unsubscribe linux-acpi" in > > the body of a message to majordomo@vger.kernel.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > > > -- If you don't have the time to read, you don't have the time or the tools to write. - Stephen King ^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: Why don't we use _TTS method? 2007-05-04 8:50 ` Rafael J. Wysocki @ 2007-05-04 18:10 ` Moore, Robert 2007-05-04 20:09 ` Rafael J. Wysocki 0 siblings, 1 reply; 9+ messages in thread From: Moore, Robert @ 2007-05-04 18:10 UTC (permalink / raw) To: Rafael J. Wysocki, Alexey Starikovskiy Cc: ACPI Devel Maling List, pm list, Pavel Machek "New" is of course relative. In the ACPI world, anything about ACPI 3.0 is still considered "new". Windows has yet to fully implement ACPI 2.0, let alone ACPI 3.0... Please point me to where the "spec spec seems to suggest that _GTS should be executed with interrupts off", as I don't think it should. In any case, the AML interpreter cannot be executed with interrupts off. There is way too much going on in that code. Bob > -----Original Message----- > From: Rafael J. Wysocki [mailto:rjw@sisk.pl] > Sent: Friday, May 04, 2007 1:51 AM > To: Alexey Starikovskiy > Cc: Moore, Robert; ACPI Devel Maling List; pm list; Pavel Machek > Subject: Re: Why don't we use _TTS method? > > Hi Alexey, > > On Friday, 4 May 2007 06:34, Alexey Starikovskiy wrote: > > Rafael, > > > > code in prepare() and enter() is split as code with interrupts on and > > code with interrupts off. > > I see. Still, the spec seems to suggest that _GTS should be executed with > interrupts off, but we run it in the 'interrupts on' part of code. Isn't > that > wrong? > > > thus it doesn't quite follow a spec in regards of driver suspend. > > Yes. > > > Basically we need to either split it to smaller pieces or have hooks > > to control interrupts/driver suspend from this code. > > I'd like to split it and I'd like to figure out *how* to do this. More > precisely, I'd like to learn which part of acpi_pm_prepare() should be > executed before device_suspend() and which part can be run after it. > Analogously, I'd like to learn which part of acpi_pm_finish() needs to be > run before device_resume() and which part can be (or should be) run > after it. > > Greetings, > Rafael > > > > On 5/4/07, Rafael J. Wysocki <rjw@sisk.pl> wrote: > > > On Friday, 4 May 2007 00:57, Moore, Robert wrote: > > > > > > > > > -----Original Message----- > > > > > From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi- > > > > > owner@vger.kernel.org] On Behalf Of Rafael J. Wysocki > > > > > Sent: Thursday, May 03, 2007 1:02 PM > > > > > To: ACPI Devel Maling List > > > > > Cc: pm list; Pavel Machek > > > > > Subject: Why don't we use _TTS method? > > > > > > > > > > Hi, > > > > > > > > > > I've got two questions regarding the implementation of the ACPI > > > > > poweroff/sleep > > > > > code in drivers/acpi/sleep and drivers/acpi/hardware . > > > > > > > > > > 1) We don't seem to use the _TTS system-control method, although > the > > > > ACPI > > > > > specification (ACPI 3.0b) says that this method should be used for > > > > > intiating > > > > > and finishing power transitions. Could you please tell me why we > > > > don't > > > > > use it? > > > > > > > > > [Moore, Robert] > > > > > > > > Probably because it's fairly new and it takes a long time for these > > > > things to appear in real machines. Also, needs to be supported in > > > > Windows before we ever see it in real machines. > > > > > > Hmm, it already was in the 3.0 spec from 2004, so it doesn't seem to > be > > > that new. Still, I'm not an expert ... > > > > > > > > 2) In the functions acpi_enter_sleep_state_prep(), > > > > > acpi_enter_sleep_state(), > > > > > acpi_leave_sleep_state() we manipulate GPEs quite extensively (we > > > > disable > > > > > and enable them for a couple of times during a transition), > although > > > > the > > > > > specification doesn't tell anything about that explicitly. Could > you > > > > > please > > > > > explain to me what the purpose of that is? > > > > > > > > > [Moore, Robert] > > > > > > > > There a wake GPEs and runtime GPEs that need to be managed > separately. > > > > We want to make sure that only the "Wake" GPEs are enabled as we > goto > > > > sleep. > > > > > > I understand that, but the runtime GPEs seem to be disabled before we > call > > > device drivers' .suspend() routines (ie. before the devices are placed > in the > > > appropriate Dx states) and that's the point I don't quite get. Is > there a > > > technical reason for doing it in this particular place? > > > > > > Thanks a lot for your reply. > > > > > > Greetings, > > > Rafael > > > - > > > To unsubscribe from this list: send the line "unsubscribe linux-acpi" > in > > > the body of a message to majordomo@vger.kernel.org > > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > > > > > > > > -- > If you don't have the time to read, > you don't have the time or the tools to write. > - Stephen King ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Why don't we use _TTS method? 2007-05-04 18:10 ` Moore, Robert @ 2007-05-04 20:09 ` Rafael J. Wysocki 0 siblings, 0 replies; 9+ messages in thread From: Rafael J. Wysocki @ 2007-05-04 20:09 UTC (permalink / raw) To: Moore, Robert Cc: Alexey Starikovskiy, ACPI Devel Maling List, pm list, Pavel Machek On Friday, 4 May 2007 20:10, Moore, Robert wrote: > "New" is of course relative. In the ACPI world, anything about ACPI 3.0 > is still considered "new". Windows has yet to fully implement ACPI 2.0, > let alone ACPI 3.0... > > Please point me to where the "spec spec seems to suggest that _GTS > should be executed with interrupts off", as I don't think it should. The ACPI 2.0 specification, 7.3.3, says: "OSPM will set the sleep enable (SLP_EN) bit in the PM1 control register immediately following the execution of the _GTS control method without performing any other physical I/O or allowing any interrupt servicing." This is also clearly stated in Subsection 9.1. Yet, according to the same specification, 9.1.6: "7. OSPM executes the _GTS control method, passing an argument that indicates the sleeping state to be entered (1, 2, 3, or 4 representing S1, S2, S3, and S4). 8. OSPM clears the WAK_STS in the PM1a_STS and PM1b_STS registers. 9. OSPM saves the local processor’s context to memory. 10. OSPM flushes caches (only if entering S1, S2 or S3). 11. OSPM sets GPE enable registers to ensure that all appropriate wake signals are armed. 12. If entering an S4 state using the S4BIOS mechanism, OSPM writes the S4BIOS_REQ value (from the FADT) to the SMI_CMD port. This passes control to the BIOS, which then transitions the platform into the S4BIOS state. 13. If not entering an S4BIOS state, then OSPM writes SLP_TYPa (from the associated sleeping object) with the SLP_ENa bit set to the PM1a_CNT register. 14. OSPM writes SLP_TYPb with the SLP_EN bit set to the PM1b_CNT register." which kind of contradicts the previous requirement. Still, 8-14 look like things that should be done with interrupts off. > In any case, the AML interpreter cannot be executed with interrupts off. > There is way too much going on in that code. Well, perhaps we can execute _GTS immediately before switching interrupts off. Greetings, Rafael > > -----Original Message----- > > From: Rafael J. Wysocki [mailto:rjw@sisk.pl] > > Sent: Friday, May 04, 2007 1:51 AM > > To: Alexey Starikovskiy > > Cc: Moore, Robert; ACPI Devel Maling List; pm list; Pavel Machek > > Subject: Re: Why don't we use _TTS method? > > > > Hi Alexey, > > > > On Friday, 4 May 2007 06:34, Alexey Starikovskiy wrote: > > > Rafael, > > > > > > code in prepare() and enter() is split as code with interrupts on > and > > > code with interrupts off. > > > > I see. Still, the spec seems to suggest that _GTS should be executed > with > > interrupts off, but we run it in the 'interrupts on' part of code. > Isn't > > that > > wrong? > > > > > thus it doesn't quite follow a spec in regards of driver suspend. > > > > Yes. > > > > > Basically we need to either split it to smaller pieces or have hooks > > > to control interrupts/driver suspend from this code. > > > > I'd like to split it and I'd like to figure out *how* to do this. > More > > precisely, I'd like to learn which part of acpi_pm_prepare() should be > > executed before device_suspend() and which part can be run after it. > > Analogously, I'd like to learn which part of acpi_pm_finish() needs to > be > > run before device_resume() and which part can be (or should be) run > > after it. > > > > Greetings, > > Rafael > > > > > > > On 5/4/07, Rafael J. Wysocki <rjw@sisk.pl> wrote: > > > > On Friday, 4 May 2007 00:57, Moore, Robert wrote: > > > > > > > > > > > -----Original Message----- > > > > > > From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi- > > > > > > owner@vger.kernel.org] On Behalf Of Rafael J. Wysocki > > > > > > Sent: Thursday, May 03, 2007 1:02 PM > > > > > > To: ACPI Devel Maling List > > > > > > Cc: pm list; Pavel Machek > > > > > > Subject: Why don't we use _TTS method? > > > > > > > > > > > > Hi, > > > > > > > > > > > > I've got two questions regarding the implementation of the > ACPI > > > > > > poweroff/sleep > > > > > > code in drivers/acpi/sleep and drivers/acpi/hardware . > > > > > > > > > > > > 1) We don't seem to use the _TTS system-control method, > although > > the > > > > > ACPI > > > > > > specification (ACPI 3.0b) says that this method should be used > for > > > > > > intiating > > > > > > and finishing power transitions. Could you please tell me why > we > > > > > don't > > > > > > use it? > > > > > > > > > > > [Moore, Robert] > > > > > > > > > > Probably because it's fairly new and it takes a long time for > these > > > > > things to appear in real machines. Also, needs to be supported > in > > > > > Windows before we ever see it in real machines. > > > > > > > > Hmm, it already was in the 3.0 spec from 2004, so it doesn't seem > to > > be > > > > that new. Still, I'm not an expert ... > > > > > > > > > > 2) In the functions acpi_enter_sleep_state_prep(), > > > > > > acpi_enter_sleep_state(), > > > > > > acpi_leave_sleep_state() we manipulate GPEs quite extensively > (we > > > > > disable > > > > > > and enable them for a couple of times during a transition), > > although > > > > > the > > > > > > specification doesn't tell anything about that explicitly. > Could > > you > > > > > > please > > > > > > explain to me what the purpose of that is? > > > > > > > > > > > [Moore, Robert] > > > > > > > > > > There a wake GPEs and runtime GPEs that need to be managed > > separately. > > > > > We want to make sure that only the "Wake" GPEs are enabled as we > > goto > > > > > sleep. > > > > > > > > I understand that, but the runtime GPEs seem to be disabled before > we > > call > > > > device drivers' .suspend() routines (ie. before the devices are > placed > > in the > > > > appropriate Dx states) and that's the point I don't quite get. Is > > there a > > > > technical reason for doing it in this particular place? > > > > > > > > Thanks a lot for your reply. > > > > > > > > Greetings, > > > > Rafael > > > > - > > > > To unsubscribe from this list: send the line "unsubscribe > linux-acpi" > > in > > > > the body of a message to majordomo@vger.kernel.org > > > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > > > > > > > > > > > > > -- > > If you don't have the time to read, > > you don't have the time or the tools to write. > > - Stephen King > - > To unsubscribe from this list: send the line "unsubscribe linux-acpi" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- If you don't have the time to read, you don't have the time or the tools to write. - Stephen King - To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2007-05-04 20:04 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-05-03 20:01 Why don't we use _TTS method? Rafael J. Wysocki 2007-05-03 22:27 ` Pavel Machek 2007-05-03 22:55 ` Rafael J. Wysocki 2007-05-03 22:57 ` Moore, Robert 2007-05-03 23:22 ` Rafael J. Wysocki 2007-05-04 4:34 ` Alexey Starikovskiy 2007-05-04 8:50 ` Rafael J. Wysocki 2007-05-04 18:10 ` Moore, Robert 2007-05-04 20:09 ` Rafael J. Wysocki
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox