aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi
diff options
context:
space:
mode:
authorLen Brown <len.brown@intel.com>2012-06-04 00:35:19 -0400
committerLen Brown <len.brown@intel.com>2012-06-04 00:35:19 -0400
commit7e1bd6e38b1f30860ce25a014c6d6adfb0079f4a (patch)
tree65c5898ba93007d4399150c7a127a670bcfbc30d /drivers/acpi
parent301f33fbcf4ced53b3de114846ecece5d6aafeeb (diff)
parentf8f5701bdaf9134b1f90e5044a82c66324d2073f (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.c1
-rw-r--r--drivers/acpi/glue.c2
-rw-r--r--drivers/acpi/pci_link.c12
-rw-r--r--drivers/acpi/sleep.c14
-rw-r--r--drivers/acpi/utils.c30
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}
72EXPORT_SYMBOL_GPL(register_acpi_bus_type);
72 73
73static int acpi_find_bridge_device(struct device *dev, acpi_handle * handle) 74static 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}
89EXPORT_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 */
90struct acpi_find_child { 92struct 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
384EXPORT_SYMBOL(acpi_evaluate_reference); 384EXPORT_SYMBOL(acpi_evaluate_reference);
385
386acpi_status
387acpi_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);
410out:
411 kfree(buffer.pointer);
412 return status;
413}
414EXPORT_SYMBOL(acpi_get_physical_device_location);