Re: [ACPI-sppt] ASUS M2400N works, upload question

Robert Vollmert <[email protected]> Wed, 24 Sep 2003 13:47:04 +0200
Newsgroups gmane.linux.acpi.support
Message-ID <20030924114704.GA6314@krikkit>
Hi Luca,

if you apply the attached patch to the ACPI sources
(linux/drivers/acpi/executer/exfldio.c), you shouldn't need a custom
DSDT anymore at all.

The incompatibility between my DSDT and your notebook is likely caused
by different amounts of RAM, hence a different location of the BIOS in
system memory.

> Stupid question: where should I choose for 'Local APIC' in the 2.4.x 
> kernels? I can't find it... :-(

It's near the top (menuconfig or xconfig), either General Setup or
Processor or similar.

Cheers
Robert
exfldio.c.diff (text/plain, 1.2 KB)
--- exfldio.c.orig	2003-09-22 18:22:09.000000000 +0200
+++ exfldio.c	2003-09-22 19:16:11.000000000 +0200
@@ -346,6 +346,7 @@
 {
 	acpi_status                     status;
 	acpi_integer                    local_value;
+	acpi_integer                    index_field_value;
 
 
 	ACPI_FUNCTION_TRACE_U32 ("ex_field_datum_io", field_datum_byte_offset);
@@ -448,18 +449,22 @@
 
 	case ACPI_TYPE_LOCAL_INDEX_FIELD:
 
+		/* Compute index value to access the current datum */
+
+		index_field_value = (acpi_integer) obj_desc->index_field.value
+			+ field_datum_byte_offset;
 
 		/* Ensure that the index_value is not beyond the capacity of the register */
 
 		if (acpi_ex_register_overflow (obj_desc->index_field.index_obj,
-				  (acpi_integer) obj_desc->index_field.value)) {
+					       index_field_value)) {
 			return_ACPI_STATUS (AE_AML_REGISTER_LIMIT);
 		}
 
 		/* Write the index value to the index_register (itself a region_field) */
 
 		status = acpi_ex_insert_into_field (obj_desc->index_field.index_obj,
-				 &obj_desc->index_field.value,
+				 &index_field_value,
 				 sizeof (obj_desc->index_field.value));
 		if (ACPI_FAILURE (status)) {
 			return_ACPI_STATUS (status);