diff options
author | Len Brown <len.brown@intel.com> | 2012-06-04 00:35:19 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2012-06-04 00:35:19 -0400 |
commit | 7e1bd6e38b1f30860ce25a014c6d6adfb0079f4a (patch) | |
tree | 65c5898ba93007d4399150c7a127a670bcfbc30d /drivers/acpi | |
parent | 301f33fbcf4ced53b3de114846ecece5d6aafeeb (diff) | |
parent | f8f5701bdaf9134b1f90e5044a82c66324d2073f (diff) |
Merge branch 'upstream' into bugfix-video
Update bugfix-video branch to 2.5-rc1
so I don't have to again resolve the
conflict in these patches vs. upstream.
Conflicts:
drivers/gpu/drm/gma500/psb_drv.c
text conflict: add comment vs delete neighboring line
keep just this:
/* igd_opregion_init(&dev_priv->opregion_dev); */
/* acpi_video_register(); */
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi')
-rw-r--r-- | drivers/acpi/bgrt.c | 1 | ||||
-rw-r--r-- | drivers/acpi/glue.c | 2 | ||||
-rw-r--r-- | drivers/acpi/pci_link.c | 12 | ||||
-rw-r--r-- | drivers/acpi/sleep.c | 14 | ||||
-rw-r--r-- | drivers/acpi/utils.c | 30 |
5 files changed, 45 insertions, 14 deletions
diff --git a/drivers/acpi/bgrt.c b/drivers/acpi/bgrt.c index 8cf6c46e99fb..6680df36b963 100644 --- a/drivers/acpi/bgrt.c +++ b/drivers/acpi/bgrt.c | |||
@@ -11,6 +11,7 @@ | |||
11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
12 | #include <linux/device.h> | 12 | #include <linux/device.h> |
13 | #include <linux/sysfs.h> | 13 | #include <linux/sysfs.h> |
14 | #include <linux/io.h> | ||
14 | #include <acpi/acpi.h> | 15 | #include <acpi/acpi.h> |
15 | #include <acpi/acpi_bus.h> | 16 | #include <acpi/acpi_bus.h> |
16 | 17 | ||
diff --git a/drivers/acpi/glue.c b/drivers/acpi/glue.c index 29a4a5c8ee00..1564e0927c21 100644 --- a/drivers/acpi/glue.c +++ b/drivers/acpi/glue.c | |||
@@ -69,6 +69,7 @@ static struct acpi_bus_type *acpi_get_bus_type(struct bus_type *type) | |||
69 | up_read(&bus_type_sem); | 69 | up_read(&bus_type_sem); |
70 | return ret; | 70 | return ret; |
71 | } | 71 | } |
72 | EXPORT_SYMBOL_GPL(register_acpi_bus_type); | ||
72 | 73 | ||
73 | static int acpi_find_bridge_device(struct device *dev, acpi_handle * handle) | 74 | static int acpi_find_bridge_device(struct device *dev, acpi_handle * handle) |
74 | { | 75 | { |
@@ -85,6 +86,7 @@ static int acpi_find_bridge_device(struct device *dev, acpi_handle * handle) | |||
85 | up_read(&bus_type_sem); | 86 | up_read(&bus_type_sem); |
86 | return ret; | 87 | return ret; |
87 | } | 88 | } |
89 | EXPORT_SYMBOL_GPL(unregister_acpi_bus_type); | ||
88 | 90 | ||
89 | /* Get device's handler per its address under its parent */ | 91 | /* Get device's handler per its address under its parent */ |
90 | struct acpi_find_child { | 92 | struct acpi_find_child { |
diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c index 4a29763b8eb4..a12808259dfb 100644 --- a/drivers/acpi/pci_link.c +++ b/drivers/acpi/pci_link.c | |||
@@ -720,21 +720,21 @@ static int acpi_pci_link_add(struct acpi_device *device) | |||
720 | acpi_device_bid(device)); | 720 | acpi_device_bid(device)); |
721 | for (i = 0; i < link->irq.possible_count; i++) { | 721 | for (i = 0; i < link->irq.possible_count; i++) { |
722 | if (link->irq.active == link->irq.possible[i]) { | 722 | if (link->irq.active == link->irq.possible[i]) { |
723 | printk(" *%d", link->irq.possible[i]); | 723 | printk(KERN_CONT " *%d", link->irq.possible[i]); |
724 | found = 1; | 724 | found = 1; |
725 | } else | 725 | } else |
726 | printk(" %d", link->irq.possible[i]); | 726 | printk(KERN_CONT " %d", link->irq.possible[i]); |
727 | } | 727 | } |
728 | 728 | ||
729 | printk(")"); | 729 | printk(KERN_CONT ")"); |
730 | 730 | ||
731 | if (!found) | 731 | if (!found) |
732 | printk(" *%d", link->irq.active); | 732 | printk(KERN_CONT " *%d", link->irq.active); |
733 | 733 | ||
734 | if (!link->device->status.enabled) | 734 | if (!link->device->status.enabled) |
735 | printk(", disabled."); | 735 | printk(KERN_CONT ", disabled."); |
736 | 736 | ||
737 | printk("\n"); | 737 | printk(KERN_CONT "\n"); |
738 | 738 | ||
739 | list_add_tail(&link->list, &acpi_link_list); | 739 | list_add_tail(&link->list, &acpi_link_list); |
740 | 740 | ||
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c index eb6fd233764b..74ee4ab577b6 100644 --- a/drivers/acpi/sleep.c +++ b/drivers/acpi/sleep.c | |||
@@ -93,11 +93,9 @@ static int acpi_sleep_prepare(u32 acpi_state) | |||
93 | #ifdef CONFIG_ACPI_SLEEP | 93 | #ifdef CONFIG_ACPI_SLEEP |
94 | /* do we have a wakeup address for S2 and S3? */ | 94 | /* do we have a wakeup address for S2 and S3? */ |
95 | if (acpi_state == ACPI_STATE_S3) { | 95 | if (acpi_state == ACPI_STATE_S3) { |
96 | if (!acpi_wakeup_address) { | 96 | if (!acpi_wakeup_address) |
97 | return -EFAULT; | 97 | return -EFAULT; |
98 | } | 98 | acpi_set_firmware_waking_vector(acpi_wakeup_address); |
99 | acpi_set_firmware_waking_vector( | ||
100 | (acpi_physical_address)acpi_wakeup_address); | ||
101 | 99 | ||
102 | } | 100 | } |
103 | ACPI_FLUSH_CPU_CACHE(); | 101 | ACPI_FLUSH_CPU_CACHE(); |
@@ -887,7 +885,7 @@ int __init acpi_sleep_init(void) | |||
887 | status = acpi_get_sleep_type_data(i, &type_a, &type_b); | 885 | status = acpi_get_sleep_type_data(i, &type_a, &type_b); |
888 | if (ACPI_SUCCESS(status)) { | 886 | if (ACPI_SUCCESS(status)) { |
889 | sleep_states[i] = 1; | 887 | sleep_states[i] = 1; |
890 | printk(" S%d", i); | 888 | printk(KERN_CONT " S%d", i); |
891 | } | 889 | } |
892 | } | 890 | } |
893 | 891 | ||
@@ -901,7 +899,7 @@ int __init acpi_sleep_init(void) | |||
901 | hibernation_set_ops(old_suspend_ordering ? | 899 | hibernation_set_ops(old_suspend_ordering ? |
902 | &acpi_hibernation_ops_old : &acpi_hibernation_ops); | 900 | &acpi_hibernation_ops_old : &acpi_hibernation_ops); |
903 | sleep_states[ACPI_STATE_S4] = 1; | 901 | sleep_states[ACPI_STATE_S4] = 1; |
904 | printk(" S4"); | 902 | printk(KERN_CONT " S4"); |
905 | if (!nosigcheck) { | 903 | if (!nosigcheck) { |
906 | acpi_get_table(ACPI_SIG_FACS, 1, | 904 | acpi_get_table(ACPI_SIG_FACS, 1, |
907 | (struct acpi_table_header **)&facs); | 905 | (struct acpi_table_header **)&facs); |
@@ -914,11 +912,11 @@ int __init acpi_sleep_init(void) | |||
914 | status = acpi_get_sleep_type_data(ACPI_STATE_S5, &type_a, &type_b); | 912 | status = acpi_get_sleep_type_data(ACPI_STATE_S5, &type_a, &type_b); |
915 | if (ACPI_SUCCESS(status)) { | 913 | if (ACPI_SUCCESS(status)) { |
916 | sleep_states[ACPI_STATE_S5] = 1; | 914 | sleep_states[ACPI_STATE_S5] = 1; |
917 | printk(" S5"); | 915 | printk(KERN_CONT " S5"); |
918 | pm_power_off_prepare = acpi_power_off_prepare; | 916 | pm_power_off_prepare = acpi_power_off_prepare; |
919 | pm_power_off = acpi_power_off; | 917 | pm_power_off = acpi_power_off; |
920 | } | 918 | } |
921 | printk(")\n"); | 919 | printk(KERN_CONT ")\n"); |
922 | /* | 920 | /* |
923 | * Register the tts_notifier to reboot notifier list so that the _TTS | 921 | * Register the tts_notifier to reboot notifier list so that the _TTS |
924 | * object can also be evaluated when the system enters S5. | 922 | * object can also be evaluated when the system enters S5. |
diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c index b002a471c5d4..adbbc1c80a26 100644 --- a/drivers/acpi/utils.c +++ b/drivers/acpi/utils.c | |||
@@ -382,3 +382,33 @@ acpi_evaluate_reference(acpi_handle handle, | |||
382 | } | 382 | } |
383 | 383 | ||
384 | EXPORT_SYMBOL(acpi_evaluate_reference); | 384 | EXPORT_SYMBOL(acpi_evaluate_reference); |
385 | |||
386 | acpi_status | ||
387 | acpi_get_physical_device_location(acpi_handle handle, struct acpi_pld *pld) | ||
388 | { | ||
389 | acpi_status status; | ||
390 | struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; | ||
391 | union acpi_object *output; | ||
392 | |||
393 | status = acpi_evaluate_object(handle, "_PLD", NULL, &buffer); | ||
394 | |||
395 | if (ACPI_FAILURE(status)) | ||
396 | return status; | ||
397 | |||
398 | output = buffer.pointer; | ||
399 | |||
400 | if (!output || output->type != ACPI_TYPE_PACKAGE | ||
401 | || !output->package.count | ||
402 | || output->package.elements[0].type != ACPI_TYPE_BUFFER | ||
403 | || output->package.elements[0].buffer.length > sizeof(*pld)) { | ||
404 | status = AE_TYPE; | ||
405 | goto out; | ||
406 | } | ||
407 | |||
408 | memcpy(pld, output->package.elements[0].buffer.pointer, | ||
409 | output->package.elements[0].buffer.length); | ||
410 | out: | ||
411 | kfree(buffer.pointer); | ||
412 | return status; | ||
413 | } | ||
414 | EXPORT_SYMBOL(acpi_get_physical_device_location); | ||