Skip site navigation (1)Skip section navigation (2)
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>