diff options
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) | |||
| 663 | Device Enumeration | 663 | Device Enumeration |
| 664 | -------------------------------------------------------------------------- */ | 664 | -------------------------------------------------------------------------- */ |
| 665 | 665 | ||
| 666 | acpi_status | ||
| 667 | acpi_bus_get_ejd(acpi_handle handle, acpi_handle *ejd) | ||
| 668 | { | ||
| 669 | acpi_status status; | ||
| 670 | acpi_handle tmp; | ||
| 671 | struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL}; | ||
| 672 | union acpi_object *obj; | ||
| 673 | |||
| 674 | status = acpi_get_handle(handle, "_EJD", &tmp); | ||
| 675 | if (ACPI_FAILURE(status)) | ||
| 676 | return status; | ||
| 677 | |||
| 678 | status = acpi_evaluate_object(handle, "_EJD", NULL, &buffer); | ||
| 679 | if (ACPI_SUCCESS(status)) { | ||
| 680 | obj = buffer.pointer; | ||
| 681 | status = acpi_get_handle(NULL, obj->string.pointer, ejd); | ||
| 682 | kfree(buffer.pointer); | ||
| 683 | } | ||
| 684 | return status; | ||
| 685 | } | ||
| 686 | EXPORT_SYMBOL_GPL(acpi_bus_get_ejd); | ||
| 687 | |||
| 688 | |||
| 666 | static int acpi_bus_get_flags(struct acpi_device *device) | 689 | static int acpi_bus_get_flags(struct acpi_device *device) |
| 667 | { | 690 | { |
| 668 | acpi_status status = AE_OK; | 691 | acpi_status status = AE_OK; |
