Re: [PATCH 2/3] Introduce acpi_root_table=rsdt boot param and dmi list to force rsdt

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2008-05-08 at 16:09 -0400, Len Brown wrote:
> I find it hard to believe that Windows has a DMI entry for the R40e
> to use the RSDT instead of the XSDT.
> 
> We should find out why the XSDT is disqualified on that machine
> and do the same in Linux so that the R40e and any other similar
> machines do not need DMI entries.
>From the acpidump attached by Mark Doughty, it seems that there exists
the following error:
    ACPI Error (tbfadt-0537): 32/64X address mismatch in
"Pm2ControlBlock": [00008030] [0000000000008020], using 64X [20071114]
    ACPI Error (tbfadt-0537): 32/64X address mismatch in "Gpe0Block":
[00008018] [0000000000008028], using 64X [20071114]
    In such cases maybe the ACPI PM register block address is
incorrect. 

In fact we have another similar bug:
   http://bugzilla.kernel.org/show_bug.cgi?id=8246
   
   The 32/64X address mismatch also exists on the laptop of IBM R51e.
> -Len
> 
> On Thursday 08 May 2008, Thomas Renninger wrote:
> > Introduce acpi_root_table=rsdt boot param and dmi list to force rsdt
> > 
> > Signed-off-by: Thomas Renninger <trenn@xxxxxxx>
> > Tested-by: Mark Doughty <me@xxxxxxxxxxxxxxxxx>
> > 
> > 
> > ---
> >  Documentation/kernel-parameters.txt |    5 +++++
> >  drivers/acpi/tables.c               |   23 +++++++++++++++++++++++
> >  2 files changed, 28 insertions(+)
> > 
> > Index: linux-acpi-2.6_video_native_vs_vendor/drivers/acpi/tables.c
> > ===================================================================
> > --- linux-acpi-2.6_video_native_vs_vendor.orig/drivers/acpi/tables.c
> > +++ linux-acpi-2.6_video_native_vs_vendor/drivers/acpi/tables.c
> > @@ -32,6 +32,7 @@
> >  #include <linux/errno.h>
> >  #include <linux/acpi.h>
> >  #include <linux/bootmem.h>
> > +#include <linux/dmi.h>
> >  
> >  #define PREFIX			"ACPI: "
> >  
> > @@ -282,6 +283,23 @@ static void __init check_multiple_madt(v
> >  	return;
> >  }
> >  
> > +static struct dmi_system_id acpi_rsdt_dmi_table[] = {
> > +	{
> > +	    .ident = "ThinkPad ",
> > +	    .matches = {
> > +		DMI_MATCH(DMI_BIOS_VENDOR, "IBM"),
> > +		DMI_MATCH(DMI_BIOS_VERSION, "1SET")},
> > +	},
> > +};
> > +
> > +static int __init acpi_force_rsdt(char *opt)
> > +{
> > +	if (!strcmp(opt, "rsdt"))
> > +		acpi_gbl_force_rsdt = 1;
> > +	return 0;
> > +}
> > +early_param("acpi_root_table", acpi_force_rsdt);
> > +
> >  /*
> >   * acpi_table_init()
> >   *
> > @@ -293,6 +311,11 @@ static void __init check_multiple_madt(v
> >  
> >  int __init acpi_table_init(void)
> >  {
> > +	if (dmi_check_system(acpi_rsdt_dmi_table))
> > +		acpi_gbl_force_rsdt = 1;
> > +	if (acpi_gbl_force_rsdt)
> > +		printk(KERN_INFO "Using RSDT as ACPI root table\n");
> > +
> >  	acpi_initialize_tables(initial_tables, ACPI_MAX_TABLES, 0);
> >  	check_multiple_madt();
> >  	return 0;
> > Index: linux-acpi-2.6_video_native_vs_vendor/Documentation/kernel-parameters.txt
> > ===================================================================
> > --- linux-acpi-2.6_video_native_vs_vendor.orig/Documentation/kernel-parameters.txt
> > +++ linux-acpi-2.6_video_native_vs_vendor/Documentation/kernel-parameters.txt
> > @@ -230,6 +230,11 @@ and is between 256 and 4096 characters.
> >  			to assume that this machine's pmtimer latches its value
> >  			and always returns good values.
> >  
> > +	acpi_root_table=	[X86,ACPI]
> > +			{ rsdt }
> > +			rsdt: If RSDP contains a non-NULL RSDT address, take it
> > +			      for fetching ACPI tables (instead of XSDT)
> > +
> >  	agp=		[AGP]
> >  			{ off | try_unsupported }
> >  			off: disable AGP support
> > 
> > 
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> > the body of a message to majordomo@xxxxxxxxxxxxxxx
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > 
> 
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux