From aff8c2777d1a9edf97f26bf60579f9c931443eb1 Mon Sep 17 00:00:00 2001
From: Robert Moore <Robert.Moore@intel.com>
Date: Fri, 2 Sep 2005 17:24:17 -0400
Subject: [ACPI] ACPICA 20050902

Fixed a problem with the internal Owner ID allocation and
deallocation mechanisms for control method execution and
recursive method invocation.  This should eliminate the
OWNER_ID_LIMIT exceptions and "Invalid OwnerId" messages
seen on some systems.  Recursive method invocation depth
is currently limited to 255.  (Alexey Starikovskiy)

http://bugzilla.kernel.org/show_bug.cgi?id=4892

Completely eliminated all vestiges of support for the
"module-level executable code" until this support is
fully implemented and debugged.  This should eliminate the
NO_RETURN_VALUE exceptions seen during table load on some
systems that invoke this support.

http://bugzilla.kernel.org/show_bug.cgi?id=5162

Fixed a problem within the resource manager code where
the transaction flags for a 64-bit address descriptor were
handled incorrectly in the type-specific flag byte.

Consolidated duplicate code within the address descriptor
resource manager code, reducing overall subsystem code size.

Signed-off-by: Robert Moore <Robert.Moore@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
---
 include/acpi/acconfig.h |  2 +-
 include/acpi/acdispat.h |  3 +--
 include/acpi/actypes.h  | 38 +++++++++++++++++---------------------
 3 files changed, 19 insertions(+), 24 deletions(-)

(limited to 'include')

diff --git a/include/acpi/acconfig.h b/include/acpi/acconfig.h
index 73c43a39663b..427cff1a3f83 100644
--- a/include/acpi/acconfig.h
+++ b/include/acpi/acconfig.h
@@ -63,7 +63,7 @@
 
 /* Version string */
 
-#define ACPI_CA_VERSION                 0x20050815
+#define ACPI_CA_VERSION                 0x20050902
 
 /*
  * OS name, used for the _OS object.  The _OS object is essentially obsolete,
diff --git a/include/acpi/acdispat.h b/include/acpi/acdispat.h
index 59306186f5e2..065f24a77cfc 100644
--- a/include/acpi/acdispat.h
+++ b/include/acpi/acdispat.h
@@ -194,8 +194,7 @@ acpi_status
 acpi_ds_restart_control_method(struct acpi_walk_state *walk_state,
 			       union acpi_operand_object *return_desc);
 
-acpi_status
-acpi_ds_terminate_control_method(struct acpi_walk_state *walk_state);
+void acpi_ds_terminate_control_method(struct acpi_walk_state *walk_state);
 
 acpi_status
 acpi_ds_begin_method_execution(struct acpi_namespace_node *method_node,
diff --git a/include/acpi/actypes.h b/include/acpi/actypes.h
index 254f4b06e7ef..6213b27516e8 100644
--- a/include/acpi/actypes.h
+++ b/include/acpi/actypes.h
@@ -1074,14 +1074,21 @@ struct acpi_resource_source {
 	char *string_ptr;
 };
 
+/* Fields common to all address descriptors, 16/32/64 bit */
+
+#define ACPI_RESOURCE_ADDRESS_COMMON \
+	u32                                 resource_type; \
+	u32                                 producer_consumer; \
+	u32                                 decode; \
+	u32                                 min_address_fixed; \
+	u32                                 max_address_fixed; \
+	union acpi_resource_attribute       attribute;
+
+struct acpi_resource_address {
+ACPI_RESOURCE_ADDRESS_COMMON};
+
 struct acpi_resource_address16 {
-	u32 resource_type;
-	u32 producer_consumer;
-	u32 decode;
-	u32 min_address_fixed;
-	u32 max_address_fixed;
-	union acpi_resource_attribute attribute;
-	u32 granularity;
+	ACPI_RESOURCE_ADDRESS_COMMON u32 granularity;
 	u32 min_address_range;
 	u32 max_address_range;
 	u32 address_translation_offset;
@@ -1090,13 +1097,7 @@ struct acpi_resource_address16 {
 };
 
 struct acpi_resource_address32 {
-	u32 resource_type;
-	u32 producer_consumer;
-	u32 decode;
-	u32 min_address_fixed;
-	u32 max_address_fixed;
-	union acpi_resource_attribute attribute;
-	u32 granularity;
+	ACPI_RESOURCE_ADDRESS_COMMON u32 granularity;
 	u32 min_address_range;
 	u32 max_address_range;
 	u32 address_translation_offset;
@@ -1105,13 +1106,7 @@ struct acpi_resource_address32 {
 };
 
 struct acpi_resource_address64 {
-	u32 resource_type;
-	u32 producer_consumer;
-	u32 decode;
-	u32 min_address_fixed;
-	u32 max_address_fixed;
-	union acpi_resource_attribute attribute;
-	u64 granularity;
+	ACPI_RESOURCE_ADDRESS_COMMON u64 granularity;
 	u64 min_address_range;
 	u64 max_address_range;
 	u64 address_translation_offset;
@@ -1161,6 +1156,7 @@ union acpi_resource_data {
 	struct acpi_resource_mem24 memory24;
 	struct acpi_resource_mem32 memory32;
 	struct acpi_resource_fixed_mem32 fixed_memory32;
+	struct acpi_resource_address address;	/* Common 16/32/64 address fields */
 	struct acpi_resource_address16 address16;
 	struct acpi_resource_address32 address32;
 	struct acpi_resource_address64 address64;
-- 
cgit