diff options
author | Len Brown <len.brown@intel.com> | 2006-07-10 02:39:33 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2006-07-10 02:39:33 -0400 |
commit | dece75b3a288fa49b3aab685543ec2f5c94b8cfc (patch) | |
tree | 42b4871522182106d06061923fe9e567ac2e10db /drivers/acpi/scan.c | |
parent | 1a39ed5888a8336ed2762d5b367195b14b878850 (diff) | |
parent | 8d7bff6c0896feba2fbd5ce37062c212aee13870 (diff) |
Pull dock into test branch
Diffstat (limited to 'drivers/acpi/scan.c')
-rw-r--r-- | drivers/acpi/scan.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c index cac4fcdcfc8d..5fcb50c7b778 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c @@ -663,6 +663,29 @@ static int acpi_bus_find_driver(struct acpi_device *device) Device Enumeration -------------------------------------------------------------------------- */ +acpi_status +acpi_bus_get_ejd(acpi_handle handle, acpi_handle *ejd) +{ + acpi_status status; + acpi_handle tmp; + struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL}; + union acpi_object *obj; + + status = acpi_get_handle(handle, "_EJD", &tmp); + if (ACPI_FAILURE(status)) + return status; + + status = acpi_evaluate_object(handle, "_EJD", NULL, &buffer); + if (ACPI_SUCCESS(status)) { + obj = buffer.pointer; + status = acpi_get_handle(NULL, obj->string.pointer, ejd); + kfree(buffer.pointer); + } + return status; +} +EXPORT_SYMBOL_GPL(acpi_bus_get_ejd); + + static int acpi_bus_get_flags(struct acpi_device *device) { acpi_status status = AE_OK; |