ACPI: sony-laptop.c: call acpi_get_object_info to get node info
authorLin Ming <ming.m.lin@intel.com>
Tue, 16 Dec 2008 08:59:35 +0000 (16:59 +0800)
committerLen Brown <len.brown@intel.com>
Wed, 31 Dec 2008 06:11:35 +0000 (01:11 -0500)
Avoid using internal acpica structures acpi_namespace_node and acpi_operand_object
Call acpi_get_object_info to get node ascii name and method arg count

Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/misc/sony-laptop.c

index 571b211..537959d 100644 (file)
@@ -935,14 +935,17 @@ static void sony_acpi_notify(acpi_handle handle, u32 event, void *data)
 static acpi_status sony_walk_callback(acpi_handle handle, u32 level,
                                      void *context, void **return_value)
 {
-       struct acpi_namespace_node *node;
-       union acpi_operand_object *operand;
+       struct acpi_device_info *info;
+       struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL};
 
-       node = (struct acpi_namespace_node *)handle;
-       operand = (union acpi_operand_object *)node->object;
+       if (ACPI_SUCCESS(acpi_get_object_info(handle, &buffer))) {
+               info = buffer.pointer;
 
-       printk(KERN_WARNING DRV_PFX "method: name: %4.4s, args %X\n", node->name.ascii,
-              (u32) operand->method.param_count);
+               printk(KERN_WARNING DRV_PFX "method: name: %4.4s, args %X\n",
+                       (char *)&info->name, info->param_count);
+
+               kfree(buffer.pointer);
+       }
 
        return AE_OK;
 }