[SeaBIOS] [RFC] acpi: Do not advertise S3

Luiz Capitulino lcapitulino at redhat.com
Mon Jan 16 14:04:41 CET 2012


On Sun, 15 Jan 2012 11:00:16 +0200
Gleb Natapov <gleb at redhat.com> wrote:

> On Fri, Jan 13, 2012 at 05:11:27PM -0200, Luiz Capitulino wrote:
> > S3 is broken in qemu in the following ways:
> > 
> >  1. S3 is immediately followed by a resume (or it doesn't even
> >     take place)
> The only real problem. I am not aware of "it doesn't even take place"
> part. If there are such cases they are guest problems. Guest can refuse
> to do S3 for number of reasons. This has nothing to do with QEMU.
> 
> >  2. The screen goes black after S3
> Guest problem.
> 
> >  3. Some people reported a hang (I couldn't reproduce it myself)
> Guest problem.
> 
> > 
> > Chances are we can get these bugs fixed for 1.1, until there let's
> > not advertise S3 to prevent things like qemu-ga from breaking qemu.
> > 
> I am OK with this, but make it "#if DSDT_S3", so that it can be enabled
> without changing the source.

Gerd has submitted patches to fix item 1 in qemu. As I didn't know items
2 and 3 are guest problems, I'll hold this patch to see if Gerd's gets
merged (in which case disabling S3 won't be necessary.

> 
> > Signed-off-by: Luiz Capitulino <lcapitulino at redhat.com>
> > ---
> >  src/acpi-dsdt.dsl |    3 +++
> >  src/acpi-dsdt.hex |   16 ++--------------
> >  2 files changed, 5 insertions(+), 14 deletions(-)
> > 
> > diff --git a/src/acpi-dsdt.dsl b/src/acpi-dsdt.dsl
> > index 7082b65..2bd8d95 100644
> > --- a/src/acpi-dsdt.dsl
> > +++ b/src/acpi-dsdt.dsl
> > @@ -599,6 +599,8 @@ DefinitionBlock (
> >       * S3 (suspend-to-ram), S4 (suspend-to-disk) and S5 (power-off) type codes:
> >       * must match piix4 emulation.
> >       */
> > +#if 0
> > +    S3 is br0ken in qemu, do not advertise it
> >      Name (\_S3, Package (0x04)
> >      {
> >          0x01,  /* PM1a_CNT.SLP_TYP */
> > @@ -606,6 +608,7 @@ DefinitionBlock (
> >          Zero,  /* reserved */
> >          Zero   /* reserved */
> >      })
> > +#endif
> >      Name (\_S4, Package (0x04)
> >      {
> >          Zero,  /* PM1a_CNT.SLP_TYP */
> > diff --git a/src/acpi-dsdt.hex b/src/acpi-dsdt.hex
> > index 5dc7bb4..9dcef05 100644
> > --- a/src/acpi-dsdt.hex
> > +++ b/src/acpi-dsdt.hex
> > @@ -3,12 +3,12 @@ static unsigned char AmlCode[] = {
> >  0x53,
> >  0x44,
> >  0x54,
> > -0xd3,
> > +0xc7,
> >  0x10,
> >  0x0,
> >  0x0,
> >  0x1,
> > -0x2d,
> > +0xa3,
> >  0x42,
> >  0x58,
> >  0x50,
> > @@ -3850,18 +3850,6 @@ static unsigned char AmlCode[] = {
> >  0x8,
> >  0x5f,
> >  0x53,
> > -0x33,
> > -0x5f,
> > -0x12,
> > -0x6,
> > -0x4,
> > -0x1,
> > -0x1,
> > -0x0,
> > -0x0,
> > -0x8,
> > -0x5f,
> > -0x53,
> >  0x34,
> >  0x5f,
> >  0x12,
> > -- 
> > 1.7.9.rc0.dirty
> 
> --
> 			Gleb.
> 




More information about the SeaBIOS mailing list