: update all invocations of acpi_get_object_info interface
Subsystems (7)
RFC PATCH 1/1 : update all invocations of acpi_get_object_info interface
We have made a major change for acpi_get_object_info interface. See detail at,
http://git.moblin.org/cgit.cgi/acpica/commit/?id=95dd0f01c616acb6a9200f64a176f15c6d55e6d3
This will require a change to all invocations, since the interface has changed.
1) The return type is no longer ACPI_BUFFER, it just allocates and returns an ACPI_DEVICE_INFO.
2) The return structure has some differences.
3) Change acpi_device_pnp->hardware_id and ->unique_id to char * pointers, since both the HID and UID are now variable-length strings, so a buffer should be allocated for them.
Signed-off-by Lin Ming <[email protected]>
--- arch/ia64/hp/common/sba_iommu.c | 7 +- drivers/acpi/acpi_memhotplug.c | 11 +-- drivers/acpi/acpica/nsdumpdv.c | 7 +- drivers/acpi/container.c | 11 +-- drivers/acpi/dock.c | 8 +- drivers/acpi/glue.c | 6 +- drivers/acpi/scan.c | 152 +++++++++++++++++++++++------------ drivers/char/agp/hp-agp.c | 9 +-- drivers/ide/ide-acpi.c | 5 +- drivers/pci/hotplug/acpi_pcihp.c | 16 ++-- drivers/pci/hotplug/acpiphp_ibm.c | 12 +-- drivers/platform/x86/sony-laptop.c | 7 +- drivers/pnp/pnpacpi/core.c | 6 +- include/acpi/acpi_bus.h | 8 +- 14 files changed, 141 insertions(+), 124 deletions(-)
arch/ia64/hp/common/sba_iommu.c +2 -5
@@ -2026,24 +2026,21 @@ acpi_sba_ioc_add(struct acpi_device *device)struct ioc *ioc;acpi_status status;u64 hpa, length; -struct acpi_buffer buffer;struct acpi_device_info *dev_info; status =hp_acpi_csr_space (device->handle, &hpa, &length);if (ACPI_FAILURE (status))return 1 ; - buffer.length =ACPI_ALLOCATE_LOCAL_BUFFER ; - status =acpi_get_object_info (device->handle, &buffer); + status =acpi_get_object_info (device->handle, &dev_info);if (ACPI_FAILURE (status))return 1 ; - dev_info = buffer.pointer;/* * For HWP0001, only SBA appears in ACPI namespace. It encloses the PCI * root bridges, and its CSR space includes the IOC function. */ -if (strncmp ("HWP0001" , dev_info->hardware_id.value,7 ) ==0 ) { +if (strncmp ("HWP0001" , dev_info->hardware_id.string,7 ) ==0 ) { hpa +=ZX1_IOC_OFFSET ;/* zx1 based systems default to kernel page size iommu pages */ if (!iovp_shift)
drivers/acpi/acpi_memhotplug.c +4 -7
@@ -465,26 +465,23 @@ static acpi_status is_memory_device(acpi_handle handle) {char *hardware_id;acpi_status status; -struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER ,NULL };struct acpi_device_info *info; - - status =acpi_get_object_info (handle, &buffer); + status =acpi_get_object_info (handle, &info);if (ACPI_FAILURE (status))return status; - info = buffer.pointer;if (!(info->valid &ACPI_VALID_HID )) { -kfree (buffer.pointer); +kfree (info);return AE_ERROR ; } - hardware_id = info->hardware_id.value; + hardware_id = info->hardware_id.string;if ((hardware_id ==NULL ) || (strcmp (hardware_id,ACPI_MEMORY_DEVICE_HID ))) status =AE_ERROR ; -kfree (buffer.pointer); +kfree (info);return status; }
drivers/acpi/acpica/nsdumpdv.c +2 -5
@@ -70,7 +70,6 @@ static acpi_status acpi_ns_dump_one_device(acpi_handle obj_handle, u32 level, void *context, void **return_value) { - struct acpi_buffer buffer; struct acpi_device_info *info;acpi_status status;u32 i;
@@ -80,17 +79,15 @@ acpi_ns_dump_one_device(acpi_handle obj_handle, status =acpi_ns_dump_one_object (obj_handle, level, context, return_value); - buffer.length =ACPI_ALLOCATE_LOCAL_BUFFER ; - status =acpi_get_object_info (obj_handle, &buffer); + status =acpi_get_object_info (obj_handle, &info);if (ACPI_SUCCESS (status)) { - info = buffer.pointer;for (i =0 ; i < level; i++) {ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES ," " )); }ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES ," HID: %s, ADR: %8.8X%8.8X, Status: %X\n" , - info->hardware_id.value, + info->hardware_id.string,ACPI_FORMAT_UINT64 (info->address), info->current_status));ACPI_FREE (info);
drivers/acpi/container.c +4 -7
@@ -200,20 +200,17 @@ container_walk_namespace_cb(acpi_handle handle, u32 lvl, void *context, void **rv) { char *hid = NULL; -struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER ,NULL };struct acpi_device_info *info;acpi_status status;int *action = context; - - status =acpi_get_object_info (handle, &buffer); -if (ACPI_FAILURE (status) || !buffer.pointer) { + status =acpi_get_object_info (handle, &info); +if (ACPI_FAILURE (status)) {return AE_OK ; } - info = buffer.pointer;if (info->valid &ACPI_VALID_HID ) - hid = info->hardware_id.value; + hid = info->hardware_id.string;if (hid ==NULL ) { goto end;
@@ -240,7 +237,7 @@ container_walk_namespace_cb(acpi_handle handle, } end: -kfree (buffer.pointer); +kfree (info);return AE_OK ; }
drivers/acpi/dock.c +3 -5
@@ -231,18 +231,16 @@ static int is_ata(acpi_handle handle)static int is_battery (acpi_handle handle) {struct acpi_device_info *info; -struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER ,NULL };int ret =1 ; -if (!ACPI_SUCCESS (acpi_get_object_info (handle, &buffer))) +if (!ACPI_SUCCESS (acpi_get_object_info (handle, &info)))return 0 ; - info = buffer.pointer;if (!(info->valid &ACPI_VALID_HID )) ret =0 ;else - ret = !strcmp ("PNP0C0A" , info->hardware_id.value); + ret = !strcmp ("PNP0C0A" , info->hardware_id.string); -kfree (buffer.pointer); +kfree (info);return ret; }
drivers/acpi/glue.c +2 -4
@@ -93,15 +93,13 @@ do_acpi_find_child(acpi_handle handle, u32 lvl, void *context, void **rv) {acpi_status status;struct acpi_device_info *info; -struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER ,NULL };struct acpi_find_child *find = context; - status =acpi_get_object_info (handle, &buffer); + status =acpi_get_object_info (handle, &info);if (ACPI_SUCCESS (status)) { - info = buffer.pointer;if (info->address == find->address) find->handle = handle; -kfree (buffer.pointer); +kfree (info); }return AE_OK ; }
drivers/acpi/scan.c +100 -52
215 lines not on this page · raw message
drivers/char/agp/hp-agp.c +3 -6
@@ -479,7 +479,6 @@ zx1_gart_probe (acpi_handle obj, u32 depth, void *context, void **ret) {acpi_handle handle, parent;acpi_status status; -struct acpi_buffer buffer;struct acpi_device_info *info;u64 lba_hpa, sba_hpa, length;int match;
@@ -491,13 +490,11 @@ zx1_gart_probe (acpi_handle obj, u32 depth, void *context, void **ret)/* Look for an enclosing IOC scope and find its CSR space */ handle = obj; do { - buffer.length = ACPI_ALLOCATE_LOCAL_BUFFER; - status = acpi_get_object_info(handle, &buffer); + status = acpi_get_object_info(handle, &info); if (ACPI_SUCCESS(status)) { /* TBD check _CID also */ - info = buffer.pointer; - info->hardware_id.value[sizeof(info->hardware_id)-1] = '\0'; - match = (strcmp(info->hardware_id.value, "HWP0001") == 0); + info->hardware_id.string[sizeof(info->hardware_id.length)-1] = '\0'; + match = (strcmp(info->hardware_id.string, "HWP0001") == 0); kfree(info); if (match) { status = hp_acpi_csr_space(handle, &sba_hpa, &length);
drivers/ide/ide-acpi.c +1 -4
@@ -109,8 +109,6 @@ static int ide_get_dev_handle(struct device *dev, acpi_handle *handle,unsigned int bus, devnum, func;acpi_integer addr;acpi_handle dev_handle; -struct acpi_buffer buffer = {.length =ACPI_ALLOCATE_BUFFER , - .pointer =NULL };acpi_status status;struct acpi_device_info *dinfo =NULL ;int ret = -ENODEV ;
@@ -129,12 +127,11 @@ static int ide_get_dev_handle(struct device *dev, acpi_handle *handle, goto err; } - status =acpi_get_object_info (dev_handle, &buffer); + status =acpi_get_object_info (dev_handle, &dinfo);if (ACPI_FAILURE (status)) {DEBPRINT ("get_object_info for device failed\n" ); goto err; } - dinfo = buffer.pointer;if (dinfo && (dinfo->valid &ACPI_VALID_ADR ) && dinfo->address == addr) { *pcidevfn = addr;
drivers/pci/hotplug/acpi_pcihp.c +7 -9
@@ -457,28 +457,26 @@ int acpi_root_bridge(acpi_handle handle) {acpi_status status;struct acpi_device_info *info; -struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER ,NULL };int i; - status =acpi_get_object_info (handle, &buffer); + status =acpi_get_object_info (handle, &info);if (ACPI_SUCCESS (status)) { - info = buffer.pointer;if ((info->valid &ACPI_VALID_HID ) && !strcmp (PCI_ROOT_HID_STRING , - info->hardware_id.value)) { -kfree (buffer.pointer); + info->hardware_id.string)) { +kfree (info);return 1 ; }if (info->valid &ACPI_VALID_CID ) { -for (i=0 ; i < info->compatibility_id.count; i++) { +for (i =0 ; i < info->compatible_id_list.count; i++) {if (!strcmp (PCI_ROOT_HID_STRING , - info->compatibility_id.id[i].value)) { -kfree (buffer.pointer); + info->compatible_id_list.ids[i].string)) { +kfree (info);return 1 ; } } } -kfree (buffer.pointer); +kfree (info); }return 0 ; }
drivers/pci/hotplug/acpiphp_ibm.c +5 -7
@@ -398,23 +398,21 @@ static acpi_status __init ibm_find_acpi_device(acpi_handle handle,acpi_handle *phandle = (acpi_handle *)context;acpi_status status;struct acpi_device_info *info; -struct acpi_buffer info_buffer = {ACPI_ALLOCATE_BUFFER ,NULL };int retval =0 ; - status =acpi_get_object_info (handle, &info_buffer); + status =acpi_get_object_info (handle, &info);if (ACPI_FAILURE (status)) {err ("%s: Failed to get device information status=0x%x\n" , __func__, status);return retval; } - info = info_buffer.pointer; - info->hardware_id.value[sizeof (info->hardware_id.value) -1 ] ='\0' ; + info->hardware_id.string[sizeof (info->hardware_id.length) -1 ] ='\0' ;if (info->current_status && (info->valid &ACPI_VALID_HID ) && - (!strcmp (info->hardware_id.value,IBM_HARDWARE_ID1 ) || - !strcmp (info->hardware_id.value,IBM_HARDWARE_ID2 ))) { + (!strcmp (info->hardware_id.string,IBM_HARDWARE_ID1 ) || + !strcmp (info->hardware_id.string,IBM_HARDWARE_ID2 ))) {dbg ("found hardware: %s, handle: %p\n" , - info->hardware_id.value, handle); + info->hardware_id.string, handle); *phandle = handle;/* returning non-zero causes the search to stop * and returns this value to the caller of
drivers/platform/x86/sony-laptop.c +2 -5
@@ -976,15 +976,12 @@ static acpi_status sony_walk_callback(acpi_handle handle, u32 level, void *context, void **return_value) { struct acpi_device_info *info; -struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER ,NULL }; - -if (ACPI_SUCCESS (acpi_get_object_info (handle, &buffer))) { - info = buffer.pointer; +if (ACPI_SUCCESS (acpi_get_object_info (handle, &info))) { printk(KERN_WARNING DRV_PFX "method: name: %4.4s, args %X\n", (char *)&info->name, info->param_count); -kfree (buffer.pointer); +kfree (info); }return AE_OK ;
drivers/pnp/pnpacpi/core.c +3 -3
@@ -194,13 +194,13 @@ static int __init pnpacpi_add_device(struct acpi_device *device)pnpacpi_parse_resource_option_data (dev);if (device->flags.compatible_ids) { -struct acpi_compatible_id_list *cid_list = device->pnp.cid_list; +struct acpica_device_id_list *cid_list = device->pnp.cid_list;int i;for (i =0 ; i < cid_list->count; i++) { -if (!ispnpidacpi (cid_list->id[i].value)) +if (!ispnpidacpi (cid_list->ids[i].string))continue ; -pnp_add_id (dev, cid_list->id[i].value); +pnp_add_id (dev, cid_list->ids[i].string); } }
include/acpi/acpi_bus.h +3 -5
@@ -170,17 +170,15 @@ struct acpi_device_dir {typedef char acpi_bus_id [5 ];typedef unsigned long acpi_bus_address ; -typedef char acpi_hardware_id [15 ]; -typedef char acpi_unique_id [9 ];typedef char acpi_device_name [40 ];typedef char acpi_device_class [20 ];struct acpi_device_pnp {acpi_bus_id bus_id;/* Object name */ acpi_bus_address bus_address;/* _ADR */ -acpi_hardware_id hardware_id;/* _HID */ -struct acpi_compatible_id_list *cid_list;/* _CIDs */ -acpi_unique_id unique_id;/* _UID */ +char *hardware_id;/* _HID */ +struct acpica_device_id_list *cid_list;/* _CIDs */ +char *unique_id;/* _UID */ acpi_device_name device_name;/* Driver-determined */ acpi_device_class device_class;/* " */ };