Sounds like there are still a lot of "unknowns", namely 1) what does XP do? 2) what does Vista do? 3) is there actually a bug in ACPICA? I'm not comfortable just slapping in another global when so many questions remain unanswered. Bob >-----Original Message----- >From: Thomas Renninger [mailto:trenn@xxxxxxx] >Sent: Friday, May 09, 2008 1:50 AM >To: Moore, Robert >Cc: linux-acpi; Len Brown; Zhao, Yakui; me@xxxxxxxxxxxxxxxxx; Starikovskiy, >Alexey Y >Subject: RE: [PATCH 1/3] ACPICA: Add acpi_gbl_force_rsdt variable > >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