diff options
Diffstat (limited to 'drivers/acpi')
-rw-r--r-- | drivers/acpi/fan.c | 10 | ||||
-rw-r--r-- | drivers/acpi/glue.c | 6 | ||||
-rw-r--r-- | drivers/acpi/pci_slot.c | 5 | ||||
-rw-r--r-- | drivers/acpi/processor_core.c | 5 | ||||
-rw-r--r-- | drivers/acpi/processor_throttling.c | 17 | ||||
-rw-r--r-- | drivers/acpi/scan.c | 2 | ||||
-rw-r--r-- | drivers/acpi/sleep/main.c | 42 | ||||
-rw-r--r-- | drivers/acpi/system.c | 1 | ||||
-rw-r--r-- | drivers/acpi/thermal.c | 4 | ||||
-rw-r--r-- | drivers/acpi/video.c | 5 |
10 files changed, 71 insertions, 26 deletions
diff --git a/drivers/acpi/fan.c b/drivers/acpi/fan.c index 55c17afbe669..2655bc1b4eeb 100644 --- a/drivers/acpi/fan.c +++ b/drivers/acpi/fan.c | |||
@@ -263,22 +263,22 @@ static int acpi_fan_add(struct acpi_device *device) | |||
263 | goto end; | 263 | goto end; |
264 | } | 264 | } |
265 | 265 | ||
266 | printk(KERN_INFO PREFIX | 266 | dev_info(&device->dev, "registered as cooling_device%d\n", cdev->id); |
267 | "%s is registered as cooling_device%d\n", | ||
268 | device->dev.bus_id, cdev->id); | ||
269 | 267 | ||
270 | acpi_driver_data(device) = cdev; | 268 | acpi_driver_data(device) = cdev; |
271 | result = sysfs_create_link(&device->dev.kobj, | 269 | result = sysfs_create_link(&device->dev.kobj, |
272 | &cdev->device.kobj, | 270 | &cdev->device.kobj, |
273 | "thermal_cooling"); | 271 | "thermal_cooling"); |
274 | if (result) | 272 | if (result) |
275 | printk(KERN_ERR PREFIX "Create sysfs link\n"); | 273 | dev_err(&device->dev, "Failed to create sysfs link " |
274 | "'thermal_cooling'\n"); | ||
276 | 275 | ||
277 | result = sysfs_create_link(&cdev->device.kobj, | 276 | result = sysfs_create_link(&cdev->device.kobj, |
278 | &device->dev.kobj, | 277 | &device->dev.kobj, |
279 | "device"); | 278 | "device"); |
280 | if (result) | 279 | if (result) |
281 | printk(KERN_ERR PREFIX "Create sysfs link\n"); | 280 | dev_err(&device->dev, "Failed to create sysfs link " |
281 | "'device'\n"); | ||
282 | 282 | ||
283 | result = acpi_fan_add_fs(device); | 283 | result = acpi_fan_add_fs(device); |
284 | if (result) | 284 | if (result) |
diff --git a/drivers/acpi/glue.c b/drivers/acpi/glue.c index 2f173e83f8a7..084109507c9f 100644 --- a/drivers/acpi/glue.c +++ b/drivers/acpi/glue.c | |||
@@ -146,8 +146,7 @@ static int acpi_bind_one(struct device *dev, acpi_handle handle) | |||
146 | acpi_status status; | 146 | acpi_status status; |
147 | 147 | ||
148 | if (dev->archdata.acpi_handle) { | 148 | if (dev->archdata.acpi_handle) { |
149 | printk(KERN_WARNING PREFIX | 149 | dev_warn(dev, "Drivers changed 'acpi_handle'\n"); |
150 | "Drivers changed 'acpi_handle' for %s\n", dev->bus_id); | ||
151 | return -EINVAL; | 150 | return -EINVAL; |
152 | } | 151 | } |
153 | get_device(dev); | 152 | get_device(dev); |
@@ -195,8 +194,7 @@ static int acpi_unbind_one(struct device *dev) | |||
195 | /* acpi_bind_one increase refcnt by one */ | 194 | /* acpi_bind_one increase refcnt by one */ |
196 | put_device(dev); | 195 | put_device(dev); |
197 | } else { | 196 | } else { |
198 | printk(KERN_ERR PREFIX | 197 | dev_err(dev, "Oops, 'acpi_handle' corrupt\n"); |
199 | "Oops, 'acpi_handle' corrupt for %s\n", dev->bus_id); | ||
200 | } | 198 | } |
201 | return 0; | 199 | return 0; |
202 | } | 200 | } |
diff --git a/drivers/acpi/pci_slot.c b/drivers/acpi/pci_slot.c index b9ab030a52d5..dd376f7ad090 100644 --- a/drivers/acpi/pci_slot.c +++ b/drivers/acpi/pci_slot.c | |||
@@ -6,8 +6,8 @@ | |||
6 | * Thanks to Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com> for code | 6 | * Thanks to Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com> for code |
7 | * review and fixes. | 7 | * review and fixes. |
8 | * | 8 | * |
9 | * Copyright (C) 2007 Alex Chiang <achiang@hp.com> | 9 | * Copyright (C) 2007-2008 Hewlett-Packard Development Company, L.P. |
10 | * Copyright (C) 2007 Hewlett-Packard Development Company, L.P. | 10 | * Alex Chiang <achiang@hp.com> |
11 | * | 11 | * |
12 | * This program is free software; you can redistribute it and/or modify it | 12 | * This program is free software; you can redistribute it and/or modify it |
13 | * under the terms and conditions of the GNU General Public License, | 13 | * under the terms and conditions of the GNU General Public License, |
@@ -158,6 +158,7 @@ register_slot(acpi_handle handle, u32 lvl, void *context, void **rv) | |||
158 | if (IS_ERR(pci_slot)) { | 158 | if (IS_ERR(pci_slot)) { |
159 | err("pci_create_slot returned %ld\n", PTR_ERR(pci_slot)); | 159 | err("pci_create_slot returned %ld\n", PTR_ERR(pci_slot)); |
160 | kfree(slot); | 160 | kfree(slot); |
161 | return AE_OK; | ||
161 | } | 162 | } |
162 | 163 | ||
163 | slot->root_handle = parent_context->root_handle; | 164 | slot->root_handle = parent_context->root_handle; |
diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c index ec0f2d581ece..e36422a7122c 100644 --- a/drivers/acpi/processor_core.c +++ b/drivers/acpi/processor_core.c | |||
@@ -714,9 +714,8 @@ static int __cpuinit acpi_processor_start(struct acpi_device *device) | |||
714 | goto end; | 714 | goto end; |
715 | } | 715 | } |
716 | 716 | ||
717 | printk(KERN_INFO PREFIX | 717 | dev_info(&device->dev, "registered as cooling_device%d\n", |
718 | "%s is registered as cooling_device%d\n", | 718 | pr->cdev->id); |
719 | device->dev.bus_id, pr->cdev->id); | ||
720 | 719 | ||
721 | result = sysfs_create_link(&device->dev.kobj, | 720 | result = sysfs_create_link(&device->dev.kobj, |
722 | &pr->cdev->device.kobj, | 721 | &pr->cdev->device.kobj, |
diff --git a/drivers/acpi/processor_throttling.c b/drivers/acpi/processor_throttling.c index 0622ace05220..a2c3f9cfa549 100644 --- a/drivers/acpi/processor_throttling.c +++ b/drivers/acpi/processor_throttling.c | |||
@@ -827,6 +827,7 @@ static int acpi_processor_get_throttling_ptc(struct acpi_processor *pr) | |||
827 | static int acpi_processor_get_throttling(struct acpi_processor *pr) | 827 | static int acpi_processor_get_throttling(struct acpi_processor *pr) |
828 | { | 828 | { |
829 | cpumask_t saved_mask; | 829 | cpumask_t saved_mask; |
830 | cpumask_of_cpu_ptr_declare(new_mask); | ||
830 | int ret; | 831 | int ret; |
831 | 832 | ||
832 | if (!pr) | 833 | if (!pr) |
@@ -838,7 +839,8 @@ static int acpi_processor_get_throttling(struct acpi_processor *pr) | |||
838 | * Migrate task to the cpu pointed by pr. | 839 | * Migrate task to the cpu pointed by pr. |
839 | */ | 840 | */ |
840 | saved_mask = current->cpus_allowed; | 841 | saved_mask = current->cpus_allowed; |
841 | set_cpus_allowed_ptr(current, &cpumask_of_cpu(pr->id)); | 842 | cpumask_of_cpu_ptr_next(new_mask, pr->id); |
843 | set_cpus_allowed_ptr(current, new_mask); | ||
842 | ret = pr->throttling.acpi_processor_get_throttling(pr); | 844 | ret = pr->throttling.acpi_processor_get_throttling(pr); |
843 | /* restore the previous state */ | 845 | /* restore the previous state */ |
844 | set_cpus_allowed_ptr(current, &saved_mask); | 846 | set_cpus_allowed_ptr(current, &saved_mask); |
@@ -987,6 +989,7 @@ static int acpi_processor_set_throttling_ptc(struct acpi_processor *pr, | |||
987 | int acpi_processor_set_throttling(struct acpi_processor *pr, int state) | 989 | int acpi_processor_set_throttling(struct acpi_processor *pr, int state) |
988 | { | 990 | { |
989 | cpumask_t saved_mask; | 991 | cpumask_t saved_mask; |
992 | cpumask_of_cpu_ptr_declare(new_mask); | ||
990 | int ret = 0; | 993 | int ret = 0; |
991 | unsigned int i; | 994 | unsigned int i; |
992 | struct acpi_processor *match_pr; | 995 | struct acpi_processor *match_pr; |
@@ -1013,7 +1016,7 @@ int acpi_processor_set_throttling(struct acpi_processor *pr, int state) | |||
1013 | * affected cpu in order to get one proper T-state. | 1016 | * affected cpu in order to get one proper T-state. |
1014 | * The notifier event is THROTTLING_PRECHANGE. | 1017 | * The notifier event is THROTTLING_PRECHANGE. |
1015 | */ | 1018 | */ |
1016 | for_each_cpu_mask(i, online_throttling_cpus) { | 1019 | for_each_cpu_mask_nr(i, online_throttling_cpus) { |
1017 | t_state.cpu = i; | 1020 | t_state.cpu = i; |
1018 | acpi_processor_throttling_notifier(THROTTLING_PRECHANGE, | 1021 | acpi_processor_throttling_notifier(THROTTLING_PRECHANGE, |
1019 | &t_state); | 1022 | &t_state); |
@@ -1025,7 +1028,8 @@ int acpi_processor_set_throttling(struct acpi_processor *pr, int state) | |||
1025 | * it can be called only for the cpu pointed by pr. | 1028 | * it can be called only for the cpu pointed by pr. |
1026 | */ | 1029 | */ |
1027 | if (p_throttling->shared_type == DOMAIN_COORD_TYPE_SW_ANY) { | 1030 | if (p_throttling->shared_type == DOMAIN_COORD_TYPE_SW_ANY) { |
1028 | set_cpus_allowed_ptr(current, &cpumask_of_cpu(pr->id)); | 1031 | cpumask_of_cpu_ptr_next(new_mask, pr->id); |
1032 | set_cpus_allowed_ptr(current, new_mask); | ||
1029 | ret = p_throttling->acpi_processor_set_throttling(pr, | 1033 | ret = p_throttling->acpi_processor_set_throttling(pr, |
1030 | t_state.target_state); | 1034 | t_state.target_state); |
1031 | } else { | 1035 | } else { |
@@ -1034,7 +1038,7 @@ int acpi_processor_set_throttling(struct acpi_processor *pr, int state) | |||
1034 | * it is necessary to set T-state for every affected | 1038 | * it is necessary to set T-state for every affected |
1035 | * cpus. | 1039 | * cpus. |
1036 | */ | 1040 | */ |
1037 | for_each_cpu_mask(i, online_throttling_cpus) { | 1041 | for_each_cpu_mask_nr(i, online_throttling_cpus) { |
1038 | match_pr = per_cpu(processors, i); | 1042 | match_pr = per_cpu(processors, i); |
1039 | /* | 1043 | /* |
1040 | * If the pointer is invalid, we will report the | 1044 | * If the pointer is invalid, we will report the |
@@ -1056,7 +1060,8 @@ int acpi_processor_set_throttling(struct acpi_processor *pr, int state) | |||
1056 | continue; | 1060 | continue; |
1057 | } | 1061 | } |
1058 | t_state.cpu = i; | 1062 | t_state.cpu = i; |
1059 | set_cpus_allowed_ptr(current, &cpumask_of_cpu(i)); | 1063 | cpumask_of_cpu_ptr_next(new_mask, i); |
1064 | set_cpus_allowed_ptr(current, new_mask); | ||
1060 | ret = match_pr->throttling. | 1065 | ret = match_pr->throttling. |
1061 | acpi_processor_set_throttling( | 1066 | acpi_processor_set_throttling( |
1062 | match_pr, t_state.target_state); | 1067 | match_pr, t_state.target_state); |
@@ -1068,7 +1073,7 @@ int acpi_processor_set_throttling(struct acpi_processor *pr, int state) | |||
1068 | * affected cpu to update the T-states. | 1073 | * affected cpu to update the T-states. |
1069 | * The notifier event is THROTTLING_POSTCHANGE | 1074 | * The notifier event is THROTTLING_POSTCHANGE |
1070 | */ | 1075 | */ |
1071 | for_each_cpu_mask(i, online_throttling_cpus) { | 1076 | for_each_cpu_mask_nr(i, online_throttling_cpus) { |
1072 | t_state.cpu = i; | 1077 | t_state.cpu = i; |
1073 | acpi_processor_throttling_notifier(THROTTLING_POSTCHANGE, | 1078 | acpi_processor_throttling_notifier(THROTTLING_POSTCHANGE, |
1074 | &t_state); | 1079 | &t_state); |
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c index f3132aa47a69..f6f52c1a2aba 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c | |||
@@ -471,7 +471,7 @@ static int acpi_device_register(struct acpi_device *device, | |||
471 | device->dev.release = &acpi_device_release; | 471 | device->dev.release = &acpi_device_release; |
472 | result = device_add(&device->dev); | 472 | result = device_add(&device->dev); |
473 | if(result) { | 473 | if(result) { |
474 | printk(KERN_ERR PREFIX "Error adding device %s", device->dev.bus_id); | 474 | dev_err(&device->dev, "Error adding device\n"); |
475 | goto end; | 475 | goto end; |
476 | } | 476 | } |
477 | 477 | ||
diff --git a/drivers/acpi/sleep/main.c b/drivers/acpi/sleep/main.c index 0489a7d1d42c..d13194a031bf 100644 --- a/drivers/acpi/sleep/main.c +++ b/drivers/acpi/sleep/main.c | |||
@@ -280,9 +280,36 @@ static struct platform_suspend_ops acpi_suspend_ops_old = { | |||
280 | .end = acpi_pm_end, | 280 | .end = acpi_pm_end, |
281 | .recover = acpi_pm_finish, | 281 | .recover = acpi_pm_finish, |
282 | }; | 282 | }; |
283 | |||
284 | static int __init init_old_suspend_ordering(const struct dmi_system_id *d) | ||
285 | { | ||
286 | old_suspend_ordering = true; | ||
287 | return 0; | ||
288 | } | ||
289 | |||
290 | static struct dmi_system_id __initdata acpisleep_dmi_table[] = { | ||
291 | { | ||
292 | .callback = init_old_suspend_ordering, | ||
293 | .ident = "Abit KN9 (nForce4 variant)", | ||
294 | .matches = { | ||
295 | DMI_MATCH(DMI_BOARD_VENDOR, "http://www.abit.com.tw/"), | ||
296 | DMI_MATCH(DMI_BOARD_NAME, "KN9 Series(NF-CK804)"), | ||
297 | }, | ||
298 | }, | ||
299 | {}, | ||
300 | }; | ||
283 | #endif /* CONFIG_SUSPEND */ | 301 | #endif /* CONFIG_SUSPEND */ |
284 | 302 | ||
285 | #ifdef CONFIG_HIBERNATION | 303 | #ifdef CONFIG_HIBERNATION |
304 | static unsigned long s4_hardware_signature; | ||
305 | static struct acpi_table_facs *facs; | ||
306 | static bool nosigcheck; | ||
307 | |||
308 | void __init acpi_no_s4_hw_signature(void) | ||
309 | { | ||
310 | nosigcheck = true; | ||
311 | } | ||
312 | |||
286 | static int acpi_hibernation_begin(void) | 313 | static int acpi_hibernation_begin(void) |
287 | { | 314 | { |
288 | acpi_target_sleep_state = ACPI_STATE_S4; | 315 | acpi_target_sleep_state = ACPI_STATE_S4; |
@@ -316,6 +343,12 @@ static void acpi_hibernation_leave(void) | |||
316 | acpi_enable(); | 343 | acpi_enable(); |
317 | /* Reprogram control registers and execute _BFS */ | 344 | /* Reprogram control registers and execute _BFS */ |
318 | acpi_leave_sleep_state_prep(ACPI_STATE_S4); | 345 | acpi_leave_sleep_state_prep(ACPI_STATE_S4); |
346 | /* Check the hardware signature */ | ||
347 | if (facs && s4_hardware_signature != facs->hardware_signature) { | ||
348 | printk(KERN_EMERG "ACPI: Hardware changed while hibernated, " | ||
349 | "cannot resume!\n"); | ||
350 | panic("ACPI S4 hardware signature mismatch"); | ||
351 | } | ||
319 | } | 352 | } |
320 | 353 | ||
321 | static void acpi_pm_enable_gpes(void) | 354 | static void acpi_pm_enable_gpes(void) |
@@ -516,6 +549,8 @@ int __init acpi_sleep_init(void) | |||
516 | u8 type_a, type_b; | 549 | u8 type_a, type_b; |
517 | #ifdef CONFIG_SUSPEND | 550 | #ifdef CONFIG_SUSPEND |
518 | int i = 0; | 551 | int i = 0; |
552 | |||
553 | dmi_check_system(acpisleep_dmi_table); | ||
519 | #endif | 554 | #endif |
520 | 555 | ||
521 | if (acpi_disabled) | 556 | if (acpi_disabled) |
@@ -544,6 +579,13 @@ int __init acpi_sleep_init(void) | |||
544 | &acpi_hibernation_ops_old : &acpi_hibernation_ops); | 579 | &acpi_hibernation_ops_old : &acpi_hibernation_ops); |
545 | sleep_states[ACPI_STATE_S4] = 1; | 580 | sleep_states[ACPI_STATE_S4] = 1; |
546 | printk(" S4"); | 581 | printk(" S4"); |
582 | if (!nosigcheck) { | ||
583 | acpi_get_table_by_index(ACPI_TABLE_INDEX_FACS, | ||
584 | (struct acpi_table_header **)&facs); | ||
585 | if (facs) | ||
586 | s4_hardware_signature = | ||
587 | facs->hardware_signature; | ||
588 | } | ||
547 | } | 589 | } |
548 | #endif | 590 | #endif |
549 | status = acpi_get_sleep_type_data(ACPI_STATE_S5, &type_a, &type_b); | 591 | status = acpi_get_sleep_type_data(ACPI_STATE_S5, &type_a, &type_b); |
diff --git a/drivers/acpi/system.c b/drivers/acpi/system.c index d8e3f153b295..91dec448b3ed 100644 --- a/drivers/acpi/system.c +++ b/drivers/acpi/system.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <linux/proc_fs.h> | 26 | #include <linux/proc_fs.h> |
27 | #include <linux/seq_file.h> | 27 | #include <linux/seq_file.h> |
28 | #include <linux/init.h> | 28 | #include <linux/init.h> |
29 | #include <linux/string.h> | ||
29 | #include <asm/uaccess.h> | 30 | #include <asm/uaccess.h> |
30 | 31 | ||
31 | #include <acpi/acpi_drivers.h> | 32 | #include <acpi/acpi_drivers.h> |
diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c index 9adfd180df6a..912703691d36 100644 --- a/drivers/acpi/thermal.c +++ b/drivers/acpi/thermal.c | |||
@@ -1220,8 +1220,8 @@ static int acpi_thermal_register_thermal_zone(struct acpi_thermal *tz) | |||
1220 | 1220 | ||
1221 | tz->tz_enabled = 1; | 1221 | tz->tz_enabled = 1; |
1222 | 1222 | ||
1223 | printk(KERN_INFO PREFIX "%s is registered as thermal_zone%d\n", | 1223 | dev_info(&tz->device->dev, "registered as thermal_zone%d\n", |
1224 | tz->device->dev.bus_id, tz->thermal_zone->id); | 1224 | tz->thermal_zone->id); |
1225 | return 0; | 1225 | return 0; |
1226 | } | 1226 | } |
1227 | 1227 | ||
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c index e32b6c14d928..e8a51a1700f7 100644 --- a/drivers/acpi/video.c +++ b/drivers/acpi/video.c | |||
@@ -772,9 +772,8 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device) | |||
772 | if (IS_ERR(device->cdev)) | 772 | if (IS_ERR(device->cdev)) |
773 | return; | 773 | return; |
774 | 774 | ||
775 | printk(KERN_INFO PREFIX | 775 | dev_info(&device->dev->dev, "registered as cooling_device%d\n", |
776 | "%s is registered as cooling_device%d\n", | 776 | device->cdev->id); |
777 | device->dev->dev.bus_id, device->cdev->id); | ||
778 | result = sysfs_create_link(&device->dev->dev.kobj, | 777 | result = sysfs_create_link(&device->dev->dev.kobj, |
779 | &device->cdev->device.kobj, | 778 | &device->cdev->device.kobj, |
780 | "thermal_cooling"); | 779 | "thermal_cooling"); |