From: Huw H <hr...@ma...> - 2002-08-11 03:11:18
|
Heya all again, I've found the cause of my troubles! In the file linux/drivers/acpi/osl.c the function acpi_os_table_override() isn't properly implimented. The patch on ftp.poupinou.org needs to check which table is being overriden, otherwise all tables get replaced... Maybe it should be something like: ------------------------------- acpi_status acpi_os_table_override (acpi_table_header *existing_table, acpi_table_header **new_table) { if (!existing_table || !new_table) return AE_BAD_PARAMETER; *new_table = (ACPI_TBLPTR *) AmlCode; if (ACPI_STRNCMP ((char *) existing_table, (char *) *new_table, sizeof (XSDT_SIG) -1)) { *new_table = NULL; }; return AE_OK; } ------------------------ Ideally though I think the override belongs in linux/drivers/acpi/tables/tbget.c and the acpi_os_table_override() function should just return the AE_OK if the signatures match, or set the new table pointer to NULL otherwise and/or return the appropriate errwor code. This is I believe the expected behaviour of this function. Bruno, your patched dsdt works brilliantly so far. THANKS!! Huw |