diff mbox

[v3,23/52] pc: acpi-build: drop unsupported PM1b_CNT.SLP_TYP

Message ID 1423479254-15342-24-git-send-email-imammedo@redhat.com
State New
Headers show

Commit Message

Igor Mammedov Feb. 9, 2015, 10:53 a.m. UTC
QEMU doesn't implement/advertize PM1b_CNT_BLK
register block so do not set/patch its \_Sx
values to avoid confusion.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
---
 hw/i386/acpi-build.c  | 3 +--
 hw/i386/ssdt-misc.dsl | 4 ++--
 2 files changed, 3 insertions(+), 4 deletions(-)

Comments

Michael S. Tsirkin Feb. 17, 2015, 4:41 p.m. UTC | #1
On Mon, Feb 09, 2015 at 10:53:45AM +0000, Igor Mammedov wrote:
> QEMU doesn't implement/advertize PM1b_CNT_BLK
> register block so do not set/patch its \_Sx
> values to avoid confusion.
> 
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>

I doubt guests are confused.
I think you mean this confuses you, but I'd rather stay
bug for bug compatible with what we did historically.
We probably should add a comment saying this is here
for historical reasons, but let's get your patchset
merged first, it's too big as is.


> ---
>  hw/i386/acpi-build.c  | 3 +--
>  hw/i386/ssdt-misc.dsl | 4 ++--
>  2 files changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> index b6626f5..7cc564a 100644
> --- a/hw/i386/acpi-build.c
> +++ b/hw/i386/acpi-build.c
> @@ -781,8 +781,7 @@ build_ssdt(Aml *table_data,
>      if (pm->s4_disabled) {
>          ssdt_ptr[acpi_s4_name[0]] = 'X';
>      } else {
> -        ssdt_ptr[acpi_s4_pkg[0] + 1] = ssdt_ptr[acpi_s4_pkg[0] + 3] =
> -            pm->s4_val;
> +        ssdt_ptr[acpi_s4_pkg[0] + 1] = pm->s4_val;
>      }
>  
>      patch_pci_windows(pci, ssdt_ptr, sizeof(ssdp_misc_aml));
> diff --git a/hw/i386/ssdt-misc.dsl b/hw/i386/ssdt-misc.dsl
> index 1e3baae..96382a6 100644
> --- a/hw/i386/ssdt-misc.dsl
> +++ b/hw/i386/ssdt-misc.dsl
> @@ -54,7 +54,7 @@ DefinitionBlock ("ssdt-misc.aml", "SSDT", 0x01, "BXPC", "BXSSDTSUSP", 0x1)
>          ACPI_EXTRACT_NAME_STRING acpi_s3_name
>          Name(_S3, Package(0x04) {
>              One,  /* PM1a_CNT.SLP_TYP */
> -            One,  /* PM1b_CNT.SLP_TYP */
> +            Zero,  /* PM1b_CNT.SLP_TYP, QEMU doesn't provide it */
>              Zero,  /* reserved */
>              Zero   /* reserved */
>          })
> @@ -62,7 +62,7 @@ DefinitionBlock ("ssdt-misc.aml", "SSDT", 0x01, "BXPC", "BXSSDTSUSP", 0x1)
>          ACPI_EXTRACT_PKG_START acpi_s4_pkg
>          Name(_S4, Package(0x04) {
>              0x2,  /* PM1a_CNT.SLP_TYP */
> -            0x2,  /* PM1b_CNT.SLP_TYP */
> +            Zero,  /* PM1b_CNT.SLP_TYP, QEMU doesn't provide it */
>              Zero,  /* reserved */
>              Zero   /* reserved */
>          })
> -- 
> 1.8.3.1
Igor Mammedov Feb. 18, 2015, 10:03 a.m. UTC | #2
On Tue, 17 Feb 2015 17:41:03 +0100
"Michael S. Tsirkin" <mst@redhat.com> wrote:

> On Mon, Feb 09, 2015 at 10:53:45AM +0000, Igor Mammedov wrote:
> > QEMU doesn't implement/advertize PM1b_CNT_BLK
> > register block so do not set/patch its \_Sx
> > values to avoid confusion.
> > 
> > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> 
> I doubt guests are confused.
They just happen to ignore it, it doesn't mean that it's correct

> I think you mean this confuses you, but I'd rather stay
> bug for bug compatible with what we did historically.
> We probably should add a comment saying this is here
> for historical reasons, but let's get your patchset
> merged first, it's too big as is.
I don't see point in being bug compatible in this case.

> 
> 
> > ---
> >  hw/i386/acpi-build.c  | 3 +--
> >  hw/i386/ssdt-misc.dsl | 4 ++--
> >  2 files changed, 3 insertions(+), 4 deletions(-)
> > 
> > diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> > index b6626f5..7cc564a 100644
> > --- a/hw/i386/acpi-build.c
> > +++ b/hw/i386/acpi-build.c
> > @@ -781,8 +781,7 @@ build_ssdt(Aml *table_data,
> >      if (pm->s4_disabled) {
> >          ssdt_ptr[acpi_s4_name[0]] = 'X';
> >      } else {
> > -        ssdt_ptr[acpi_s4_pkg[0] + 1] = ssdt_ptr[acpi_s4_pkg[0] + 3] =
> > -            pm->s4_val;
> > +        ssdt_ptr[acpi_s4_pkg[0] + 1] = pm->s4_val;
> >      }
> >  
> >      patch_pci_windows(pci, ssdt_ptr, sizeof(ssdp_misc_aml));
> > diff --git a/hw/i386/ssdt-misc.dsl b/hw/i386/ssdt-misc.dsl
> > index 1e3baae..96382a6 100644
> > --- a/hw/i386/ssdt-misc.dsl
> > +++ b/hw/i386/ssdt-misc.dsl
> > @@ -54,7 +54,7 @@ DefinitionBlock ("ssdt-misc.aml", "SSDT", 0x01, "BXPC", "BXSSDTSUSP", 0x1)
> >          ACPI_EXTRACT_NAME_STRING acpi_s3_name
> >          Name(_S3, Package(0x04) {
> >              One,  /* PM1a_CNT.SLP_TYP */
> > -            One,  /* PM1b_CNT.SLP_TYP */
> > +            Zero,  /* PM1b_CNT.SLP_TYP, QEMU doesn't provide it */
> >              Zero,  /* reserved */
> >              Zero   /* reserved */
> >          })
> > @@ -62,7 +62,7 @@ DefinitionBlock ("ssdt-misc.aml", "SSDT", 0x01, "BXPC", "BXSSDTSUSP", 0x1)
> >          ACPI_EXTRACT_PKG_START acpi_s4_pkg
> >          Name(_S4, Package(0x04) {
> >              0x2,  /* PM1a_CNT.SLP_TYP */
> > -            0x2,  /* PM1b_CNT.SLP_TYP */
> > +            Zero,  /* PM1b_CNT.SLP_TYP, QEMU doesn't provide it */
> >              Zero,  /* reserved */
> >              Zero   /* reserved */
> >          })
> > -- 
> > 1.8.3.1
Michael S. Tsirkin Feb. 18, 2015, 12:41 p.m. UTC | #3
On Wed, Feb 18, 2015 at 11:03:47AM +0100, Igor Mammedov wrote:
> On Tue, 17 Feb 2015 17:41:03 +0100
> "Michael S. Tsirkin" <mst@redhat.com> wrote:
> 
> > On Mon, Feb 09, 2015 at 10:53:45AM +0000, Igor Mammedov wrote:
> > > QEMU doesn't implement/advertize PM1b_CNT_BLK
> > > register block so do not set/patch its \_Sx
> > > values to avoid confusion.
> > > 
> > > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> > 
> > I doubt guests are confused.
> They just happen to ignore it, it doesn't mean that it's correct
> 
> > I think you mean this confuses you, but I'd rather stay
> > bug for bug compatible with what we did historically.
> > We probably should add a comment saying this is here
> > for historical reasons, but let's get your patchset
> > merged first, it's too big as is.
> I don't see point in being bug compatible in this case.

yes but don't make unrelated changes part of this series.
it's too big already.

> > 
> > 
> > > ---
> > >  hw/i386/acpi-build.c  | 3 +--
> > >  hw/i386/ssdt-misc.dsl | 4 ++--
> > >  2 files changed, 3 insertions(+), 4 deletions(-)
> > > 
> > > diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> > > index b6626f5..7cc564a 100644
> > > --- a/hw/i386/acpi-build.c
> > > +++ b/hw/i386/acpi-build.c
> > > @@ -781,8 +781,7 @@ build_ssdt(Aml *table_data,
> > >      if (pm->s4_disabled) {
> > >          ssdt_ptr[acpi_s4_name[0]] = 'X';
> > >      } else {
> > > -        ssdt_ptr[acpi_s4_pkg[0] + 1] = ssdt_ptr[acpi_s4_pkg[0] + 3] =
> > > -            pm->s4_val;
> > > +        ssdt_ptr[acpi_s4_pkg[0] + 1] = pm->s4_val;
> > >      }
> > >  
> > >      patch_pci_windows(pci, ssdt_ptr, sizeof(ssdp_misc_aml));
> > > diff --git a/hw/i386/ssdt-misc.dsl b/hw/i386/ssdt-misc.dsl
> > > index 1e3baae..96382a6 100644
> > > --- a/hw/i386/ssdt-misc.dsl
> > > +++ b/hw/i386/ssdt-misc.dsl
> > > @@ -54,7 +54,7 @@ DefinitionBlock ("ssdt-misc.aml", "SSDT", 0x01, "BXPC", "BXSSDTSUSP", 0x1)
> > >          ACPI_EXTRACT_NAME_STRING acpi_s3_name
> > >          Name(_S3, Package(0x04) {
> > >              One,  /* PM1a_CNT.SLP_TYP */
> > > -            One,  /* PM1b_CNT.SLP_TYP */
> > > +            Zero,  /* PM1b_CNT.SLP_TYP, QEMU doesn't provide it */
> > >              Zero,  /* reserved */
> > >              Zero   /* reserved */
> > >          })
> > > @@ -62,7 +62,7 @@ DefinitionBlock ("ssdt-misc.aml", "SSDT", 0x01, "BXPC", "BXSSDTSUSP", 0x1)
> > >          ACPI_EXTRACT_PKG_START acpi_s4_pkg
> > >          Name(_S4, Package(0x04) {
> > >              0x2,  /* PM1a_CNT.SLP_TYP */
> > > -            0x2,  /* PM1b_CNT.SLP_TYP */
> > > +            Zero,  /* PM1b_CNT.SLP_TYP, QEMU doesn't provide it */
> > >              Zero,  /* reserved */
> > >              Zero   /* reserved */
> > >          })
> > > -- 
> > > 1.8.3.1
diff mbox

Patch

diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index b6626f5..7cc564a 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -781,8 +781,7 @@  build_ssdt(Aml *table_data,
     if (pm->s4_disabled) {
         ssdt_ptr[acpi_s4_name[0]] = 'X';
     } else {
-        ssdt_ptr[acpi_s4_pkg[0] + 1] = ssdt_ptr[acpi_s4_pkg[0] + 3] =
-            pm->s4_val;
+        ssdt_ptr[acpi_s4_pkg[0] + 1] = pm->s4_val;
     }
 
     patch_pci_windows(pci, ssdt_ptr, sizeof(ssdp_misc_aml));
diff --git a/hw/i386/ssdt-misc.dsl b/hw/i386/ssdt-misc.dsl
index 1e3baae..96382a6 100644
--- a/hw/i386/ssdt-misc.dsl
+++ b/hw/i386/ssdt-misc.dsl
@@ -54,7 +54,7 @@  DefinitionBlock ("ssdt-misc.aml", "SSDT", 0x01, "BXPC", "BXSSDTSUSP", 0x1)
         ACPI_EXTRACT_NAME_STRING acpi_s3_name
         Name(_S3, Package(0x04) {
             One,  /* PM1a_CNT.SLP_TYP */
-            One,  /* PM1b_CNT.SLP_TYP */
+            Zero,  /* PM1b_CNT.SLP_TYP, QEMU doesn't provide it */
             Zero,  /* reserved */
             Zero   /* reserved */
         })
@@ -62,7 +62,7 @@  DefinitionBlock ("ssdt-misc.aml", "SSDT", 0x01, "BXPC", "BXSSDTSUSP", 0x1)
         ACPI_EXTRACT_PKG_START acpi_s4_pkg
         Name(_S4, Package(0x04) {
             0x2,  /* PM1a_CNT.SLP_TYP */
-            0x2,  /* PM1b_CNT.SLP_TYP */
+            Zero,  /* PM1b_CNT.SLP_TYP, QEMU doesn't provide it */
             Zero,  /* reserved */
             Zero   /* reserved */
         })