On Thu, 2008-05-08 at 09:32 -0700, Moore, Robert wrote: > Has there any investigation into how windows handles this? It's too late now, anyway. This is about 3 years old machines, we do not want to change the behavior XSDT vs RSDT in general and produce some regressions as a side-effect, but just fix up some known broken machines. I expect that XP did violate a bit the spec and tended to prefer the RSDT. I don't know how to check all this, but I expect that Vista is preferring the XSDT again. Or there always were bugs in acpica setting up the FADT via XSDT causing this. Providing OS a knob at this place shouldn't be a big deal? Thomas > >-----Original Message----- > >From: Thomas Renninger [mailto:trenn@xxxxxxx] > >Sent: Thursday, May 08, 2008 8:10 AM > >To: linux-acpi; Len Brown > >Cc: Zhao, Yakui; me@xxxxxxxxxxxxxxxxx; Moore, Robert; Starikovskiy, > Alexey > >Y > >Subject: [PATCH 1/3] ACPICA: Add acpi_gbl_force_rsdt variable > > > >I expect separate patches should now be patched against > >acpica when possible? > > > >Does this also make sense with patches which have dependencies > >to other patches for the Linux kernel? In this case there is not a > >"does not compile" dependency, but at least they belong together. > > > >I wonder what works out for acpica and Linux kernel maintainers best, > >please advise. > > > > > >---- > > > >ACPICA: Add acpi_gbl_force_rsdt variable > > > >Signed-off-by: Thomas Renninger <trenn@xxxxxxx> > >Tested-by: Mark Doughty <me@xxxxxxxxxxxxxxxxx> > > > > > >--- > > drivers/acpi/tables/tbutils.c | 3 ++- > > drivers/acpi/utilities/utglobal.c | 1 + > > include/acpi/acglobal.h | 1 + > > 3 files changed, 4 insertions(+), 1 deletion(-) > > > >Index: linux-acpi- > >2.6_video_native_vs_vendor/drivers/acpi/utilities/utglobal.c > >=================================================================== > >--- linux-acpi- > >2.6_video_native_vs_vendor.orig/drivers/acpi/utilities/utglobal.c > >+++ > linux-acpi-2.6_video_native_vs_vendor/drivers/acpi/utilities/utglobal.c > >@@ -76,6 +76,7 @@ u8 acpi_gbl_method_executing = FALSE; > > /* System flags */ > > > > u32 acpi_gbl_startup_flags = 0; > >+int acpi_gbl_force_rsdt = 0; > > > > /* System starts uninitialized */ > > > >Index: linux-acpi-2.6_video_native_vs_vendor/include/acpi/acglobal.h > >=================================================================== > >--- linux-acpi-2.6_video_native_vs_vendor.orig/include/acpi/acglobal.h > >+++ linux-acpi-2.6_video_native_vs_vendor/include/acpi/acglobal.h > >@@ -246,6 +246,7 @@ ACPI_EXTERN u8 acpi_gbl_system_awake_and > > > > extern u8 acpi_gbl_shutdown; > > extern u32 acpi_gbl_startup_flags; > >+extern int acpi_gbl_force_rsdt; > > extern const char *acpi_gbl_sleep_state_names[ACPI_S_STATE_COUNT]; > > extern const char *acpi_gbl_highest_dstate_names[4]; > > extern const struct acpi_opcode_info > >acpi_gbl_aml_op_info[AML_NUM_OPCODES]; > >Index: > linux-acpi-2.6_video_native_vs_vendor/drivers/acpi/tables/tbutils.c > >=================================================================== > >--- linux-acpi- > >2.6_video_native_vs_vendor.orig/drivers/acpi/tables/tbutils.c > >+++ linux-acpi-2.6_video_native_vs_vendor/drivers/acpi/tables/tbutils.c > >@@ -421,7 +421,8 @@ acpi_tb_parse_root_table(acpi_physical_a > > > > /* Differentiate between RSDT and XSDT root tables */ > > > >- if (rsdp->revision > 1 && rsdp->xsdt_physical_address) { > >+ if (rsdp->revision > 1 && rsdp->xsdt_physical_address > >+ && !acpi_gbl_force_rsdt) { > > /* > > * Root table is an XSDT (64-bit physical addresses). We > must > >use the > > * XSDT if the revision is > 1 and the XSDT pointer is > present, > >as per > > > -- 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