Date: Thu, 29 May 2003 01:23:49 +0900 (JST) From: Takayoshi Kochi <kochi@netbsd.org> To: acpi-jp@jp.FreeBSD.org, nate@root.org Cc: current@freebsd.org Subject: Re: [acpi-jp 2267] Re: HEADSUP: acpi patches in the tree Message-ID: <20030529.012349.68555656.kochi@netbsd.org> In-Reply-To: <20030527165526.E6842@root.org> References: <20030527140327.E6550@root.org> <20030528071116.2db41659.yosimoto@waishi.jp> <20030527165526.E6842@root.org>
next in thread | previous in thread | raw e-mail | index | archive | help
----Next_Part(Thu_May_29_01:23:49_2003_389)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi, From: Nate Lawson <nate@root.org> Subject: [acpi-jp 2267] Re: HEADSUP: acpi patches in the tree Date: Tue, 27 May 2003 16:58:59 -0700 > On Wed, 28 May 2003, Shin-ichi YOSHIMOTO wrote: > > After this update, I found some error messages like this: > > > > acpi0: <IntelR AWRDACPI> on motherboard > > ACPI-0438: *** Error: Looking up [\\_OS_] in namespace, AE_NOT_FOUND > > ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0._INI] (Node 0xc21b73e0), AE_NOT_FOUND > > Please try the attached patch and see if it changes things for you. I'm still studying the reason why the TABLE_ID_DSDT is removed in recent ACPI CA, but at least you should remove all TABLE_ID_DSDT's, I think. Also, ACPI_FIRST_METHOD_ID should be larger than 0, otherwise 0 may be allocated to running method and make a conflict. I've made a diff against NetBSD-current and just booted the kernel, but haven't tested much (and still trying to make out what the changes are intended). Attached is the patch and should apply to the FreeBSD tree with some appropriate option. --- Takayoshi Kochi ----Next_Part(Thu_May_29_01:23:49_2003_389)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="table_id_dsdt.diff" Index: aclocal.h =================================================================== RCS file: /cvsroot/src/sys/dev/acpi/acpica/Subsystem/aclocal.h,v retrieving revision 1.5 diff -u -r1.5 aclocal.h --- aclocal.h 2003/03/04 17:25:10 1.5 +++ aclocal.h 2003/05/28 07:24:46 @@ -214,12 +214,8 @@ typedef UINT16 ACPI_OWNER_ID; #define ACPI_OWNER_TYPE_TABLE 0x0 #define ACPI_OWNER_TYPE_METHOD 0x1 -#define ACPI_FIRST_METHOD_ID 0x0000 -#define ACPI_FIRST_TABLE_ID 0x8000 - -/* TBD: [Restructure] get rid of the need for this! */ - -#define TABLE_ID_DSDT (ACPI_OWNER_ID) 0x8000 +#define ACPI_FIRST_METHOD_ID 0x0001 +#define ACPI_FIRST_TABLE_ID 0xF000 /* Field access granularities */ Index: dbutils.c =================================================================== RCS file: /cvsroot/src/sys/dev/acpi/acpica/Subsystem/dbutils.c,v retrieving revision 1.6 diff -u -r1.6 dbutils.c --- dbutils.c 2003/03/04 17:25:12 1.6 +++ dbutils.c 2003/05/28 07:24:51 @@ -429,7 +429,7 @@ /* Create a new walk state for the parse */ - WalkState = AcpiDsCreateWalkState (TABLE_ID_DSDT, + WalkState = AcpiDsCreateWalkState (0, NULL, NULL, NULL); if (!WalkState) { Index: dsmethod.c =================================================================== RCS file: /cvsroot/src/sys/dev/acpi/acpica/Subsystem/dsmethod.c,v retrieving revision 1.7 diff -u -r1.7 dsmethod.c --- dsmethod.c 2003/05/25 10:08:24 1.7 +++ dsmethod.c 2003/05/28 07:24:52 @@ -381,7 +381,9 @@ return_ACPI_STATUS (AE_NULL_OBJECT); } +printf("OwningId(before) = %d\n", ObjDesc->Method.OwningId); ObjDesc->Method.OwningId = AcpiUtAllocateOwnerId (ACPI_OWNER_TYPE_METHOD); +printf("OwningId(after ) = %d\n", ObjDesc->Method.OwningId); /* Init for new method, wait on concurrency semaphore */ Index: dsopcode.c =================================================================== RCS file: /cvsroot/src/sys/dev/acpi/acpica/Subsystem/dsopcode.c,v retrieving revision 1.6 diff -u -r1.6 dsopcode.c --- dsopcode.c 2003/03/04 17:25:13 1.6 +++ dsopcode.c 2003/05/28 07:24:54 @@ -177,7 +177,7 @@ /* Create and initialize a new parser state */ - WalkState = AcpiDsCreateWalkState (TABLE_ID_DSDT, NULL, NULL, NULL); + WalkState = AcpiDsCreateWalkState (0, NULL, NULL, NULL); if (!WalkState) { return_ACPI_STATUS (AE_NO_MEMORY); @@ -221,7 +221,7 @@ /* Create and initialize a new parser state */ - WalkState = AcpiDsCreateWalkState (TABLE_ID_DSDT, NULL, NULL, NULL); + WalkState = AcpiDsCreateWalkState (0, NULL, NULL, NULL); if (!WalkState) { return_ACPI_STATUS (AE_NO_MEMORY); Index: nsalloc.c =================================================================== RCS file: /cvsroot/src/sys/dev/acpi/acpica/Subsystem/nsalloc.c,v retrieving revision 1.8 diff -u -r1.8 nsalloc.c --- nsalloc.c 2003/05/13 13:29:00 1.8 +++ nsalloc.c 2003/05/28 07:24:56 @@ -314,7 +314,7 @@ ACPI_NAMESPACE_NODE *Node, /* New Child*/ ACPI_OBJECT_TYPE Type) { - UINT16 OwnerId = TABLE_ID_DSDT; + UINT16 OwnerId = 0; ACPI_NAMESPACE_NODE *ChildNode; #ifdef ACPI_ALPHABETIC_NAMESPACE Index: nsload.c =================================================================== RCS file: /cvsroot/src/sys/dev/acpi/acpica/Subsystem/nsload.c,v retrieving revision 1.6 diff -u -r1.6 nsload.c --- nsload.c 2003/03/04 17:25:22 1.6 +++ nsload.c 2003/05/28 07:24:57 @@ -275,7 +275,7 @@ goto UnlockAndExit; } - TableDesc->TableId = TABLE_ID_DSDT; + TableDesc->TableId = 0; /* Now load the single DSDT */ Index: nsparse.c =================================================================== RCS file: /cvsroot/src/sys/dev/acpi/acpica/Subsystem/nsparse.c,v retrieving revision 1.2 diff -u -r1.2 nsparse.c --- nsparse.c 2003/02/13 14:16:23 1.2 +++ nsparse.c 2003/05/28 07:24:58 @@ -166,7 +166,7 @@ /* Create and initialize a new walk state */ - WalkState = AcpiDsCreateWalkState (TABLE_ID_DSDT, + WalkState = AcpiDsCreateWalkState (0, NULL, NULL, NULL); if (!WalkState) { Index: pswalk.c =================================================================== RCS file: /cvsroot/src/sys/dev/acpi/acpica/Subsystem/pswalk.c,v retrieving revision 1.6 diff -u -r1.6 pswalk.c --- pswalk.c 2003/03/04 17:25:25 1.6 +++ pswalk.c 2003/05/28 07:24:59 @@ -355,7 +355,7 @@ return_VOID; } - WalkState = AcpiDsCreateWalkState (TABLE_ID_DSDT, NULL, NULL, Thread); + WalkState = AcpiDsCreateWalkState (0, NULL, NULL, Thread); if (!WalkState) { return_VOID; Index: psxface.c =================================================================== RCS file: /cvsroot/src/sys/dev/acpi/acpica/Subsystem/psxface.c,v retrieving revision 1.6 diff -u -r1.6 psxface.c --- psxface.c 2003/03/04 17:25:25 1.6 +++ psxface.c 2003/05/28 07:24:59 @@ -264,7 +264,7 @@ /* Create and initialize a new walk state */ - WalkState = AcpiDsCreateWalkState (TABLE_ID_DSDT, NULL, NULL, NULL); + WalkState = AcpiDsCreateWalkState (0, NULL, NULL, NULL); if (!WalkState) { return_ACPI_STATUS (AE_NO_MEMORY); ----Next_Part(Thu_May_29_01:23:49_2003_389)----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030529.012349.68555656.kochi>