[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>
This commit is contained in:
Robert Moore
2005-09-02 17:24:17 -04:00
committed by Len Brown
parent a94f18810f
commit aff8c2777d
10 changed files with 352 additions and 384 deletions

View File

@ -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;