diff options
author | Bob Moore <robert.moore@intel.com> | 2006-03-17 16:44:00 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2006-06-14 01:22:20 -0400 |
commit | 61686124f47d7c4b78610346c5f8f9d8a6d46bb5 (patch) | |
tree | 6fd91b2c1749907e58ef136107e53d634d7978c4 /drivers/acpi/events | |
parent | 144c87b4e03759214c362d267e01c2905f1ab095 (diff) |
[ACPI] ACPICA 20060317
Implemented the use of a cache object for all internal
namespace nodes. Since there are about 1000 static nodes
in a typical system, this will decrease memory use for
cache implementations that minimize per-allocation overhead
(such as a slab allocator.)
Removed the reference count mechanism for internal
namespace nodes, since it was deemed unnecessary. This
reduces the size of each namespace node by about 5%-10%
on all platforms. Nodes are now 20 bytes for the 32-bit
case, and 32 bytes for the 64-bit case.
Optimized several internal data structures to reduce
object size on 64-bit platforms by packing data within
the 64-bit alignment. This includes the frequently used
ACPI_OPERAND_OBJECT, of which there can be ~1000 static
instances corresponding to the namespace objects.
Added two new strings for the predefined _OSI method:
"Windows 2001.1 SP1" and "Windows 2006".
Split the allocation tracking mechanism out to a separate
file, from utalloc.c to uttrack.c. This mechanism appears
to be only useful for application-level code. Kernels may
wish to not include uttrack.c in distributions.
Removed all remnants of the obsolete ACPI_REPORT_* macros
and the associated code. (These macros have been replaced
by the ACPI_ERROR and ACPI_WARNING macros.)
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/events')
-rw-r--r-- | drivers/acpi/events/evgpeblk.c | 2 | ||||
-rw-r--r-- | drivers/acpi/events/evmisc.c | 3 | ||||
-rw-r--r-- | drivers/acpi/events/evregion.c | 15 |
3 files changed, 9 insertions, 11 deletions
diff --git a/drivers/acpi/events/evgpeblk.c b/drivers/acpi/events/evgpeblk.c index e8e72986f0d6..4e90c1f837c3 100644 --- a/drivers/acpi/events/evgpeblk.c +++ b/drivers/acpi/events/evgpeblk.c | |||
@@ -131,7 +131,7 @@ u8 acpi_ev_valid_gpe_event(struct acpi_gpe_event_info *gpe_event_info) | |||
131 | * | 131 | * |
132 | ******************************************************************************/ | 132 | ******************************************************************************/ |
133 | 133 | ||
134 | acpi_status acpi_ev_walk_gpe_list(ACPI_GPE_CALLBACK gpe_walk_callback) | 134 | acpi_status acpi_ev_walk_gpe_list(acpi_gpe_callback gpe_walk_callback) |
135 | { | 135 | { |
136 | struct acpi_gpe_block_info *gpe_block; | 136 | struct acpi_gpe_block_info *gpe_block; |
137 | struct acpi_gpe_xrupt_info *gpe_xrupt_info; | 137 | struct acpi_gpe_xrupt_info *gpe_xrupt_info; |
diff --git a/drivers/acpi/events/evmisc.c b/drivers/acpi/events/evmisc.c index 334407239f2f..b216b3229e27 100644 --- a/drivers/acpi/events/evmisc.c +++ b/drivers/acpi/events/evmisc.c | |||
@@ -185,7 +185,8 @@ acpi_ev_queue_notify_request(struct acpi_namespace_node * node, | |||
185 | return (AE_NO_MEMORY); | 185 | return (AE_NO_MEMORY); |
186 | } | 186 | } |
187 | 187 | ||
188 | notify_info->common.data_type = ACPI_DESC_TYPE_STATE_NOTIFY; | 188 | notify_info->common.descriptor_type = |
189 | ACPI_DESC_TYPE_STATE_NOTIFY; | ||
189 | notify_info->notify.node = node; | 190 | notify_info->notify.node = node; |
190 | notify_info->notify.value = (u16) notify_value; | 191 | notify_info->notify.value = (u16) notify_value; |
191 | notify_info->notify.handler_obj = handler_obj; | 192 | notify_info->notify.handler_obj = handler_obj; |
diff --git a/drivers/acpi/events/evregion.c b/drivers/acpi/events/evregion.c index 2b900ef05fa9..0337ad222b26 100644 --- a/drivers/acpi/events/evregion.c +++ b/drivers/acpi/events/evregion.c | |||
@@ -250,7 +250,6 @@ acpi_ev_execute_reg_method(union acpi_operand_object *region_obj, u32 function) | |||
250 | 250 | ||
251 | cleanup: | 251 | cleanup: |
252 | acpi_ut_remove_reference(params[0]); | 252 | acpi_ut_remove_reference(params[0]); |
253 | |||
254 | return_ACPI_STATUS(status); | 253 | return_ACPI_STATUS(status); |
255 | } | 254 | } |
256 | 255 | ||
@@ -389,9 +388,8 @@ acpi_ev_address_space_dispatch(union acpi_operand_object *region_obj, | |||
389 | acpi_ut_get_region_name(region_obj->region. | 388 | acpi_ut_get_region_name(region_obj->region. |
390 | space_id))); | 389 | space_id))); |
391 | 390 | ||
392 | if (! | 391 | if (!(handler_desc->address_space.handler_flags & |
393 | (handler_desc->address_space. | 392 | ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) { |
394 | hflags & ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) { | ||
395 | /* | 393 | /* |
396 | * For handlers other than the default (supplied) handlers, we must | 394 | * For handlers other than the default (supplied) handlers, we must |
397 | * exit the interpreter because the handler *might* block -- we don't | 395 | * exit the interpreter because the handler *might* block -- we don't |
@@ -412,9 +410,8 @@ acpi_ev_address_space_dispatch(union acpi_operand_object *region_obj, | |||
412 | space_id))); | 410 | space_id))); |
413 | } | 411 | } |
414 | 412 | ||
415 | if (! | 413 | if (!(handler_desc->address_space.handler_flags & |
416 | (handler_desc->address_space. | 414 | ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) { |
417 | hflags & ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) { | ||
418 | /* | 415 | /* |
419 | * We just returned from a non-default handler, we must re-enter the | 416 | * We just returned from a non-default handler, we must re-enter the |
420 | * interpreter | 417 | * interpreter |
@@ -772,7 +769,7 @@ acpi_ev_install_space_handler(struct acpi_namespace_node * node, | |||
772 | union acpi_operand_object *handler_obj; | 769 | union acpi_operand_object *handler_obj; |
773 | acpi_status status; | 770 | acpi_status status; |
774 | acpi_object_type type; | 771 | acpi_object_type type; |
775 | u16 flags = 0; | 772 | u8 flags = 0; |
776 | 773 | ||
777 | ACPI_FUNCTION_TRACE("ev_install_space_handler"); | 774 | ACPI_FUNCTION_TRACE("ev_install_space_handler"); |
778 | 775 | ||
@@ -930,7 +927,7 @@ acpi_ev_install_space_handler(struct acpi_namespace_node * node, | |||
930 | /* Init handler obj */ | 927 | /* Init handler obj */ |
931 | 928 | ||
932 | handler_obj->address_space.space_id = (u8) space_id; | 929 | handler_obj->address_space.space_id = (u8) space_id; |
933 | handler_obj->address_space.hflags = flags; | 930 | handler_obj->address_space.handler_flags = flags; |
934 | handler_obj->address_space.region_list = NULL; | 931 | handler_obj->address_space.region_list = NULL; |
935 | handler_obj->address_space.node = node; | 932 | handler_obj->address_space.node = node; |
936 | handler_obj->address_space.handler = handler; | 933 | handler_obj->address_space.handler = handler; |