diff options
-rw-r--r-- | drivers/acpi/acpi_pad.c | 3 | ||||
-rw-r--r-- | drivers/acpi/battery.c | 2 | ||||
-rw-r--r-- | drivers/acpi/fan.c | 2 | ||||
-rw-r--r-- | drivers/acpi/numa.c | 21 | ||||
-rw-r--r-- | drivers/acpi/osl.c | 2 | ||||
-rw-r--r-- | drivers/acpi/processor_core.c | 4 | ||||
-rw-r--r-- | drivers/acpi/processor_idle.c | 11 | ||||
-rw-r--r-- | drivers/platform/x86/acerhdf.c | 63 | ||||
-rw-r--r-- | drivers/thermal/thermal_sys.c | 2 | ||||
-rw-r--r-- | include/linux/acpi.h | 2 |
10 files changed, 60 insertions, 52 deletions
diff --git a/drivers/acpi/acpi_pad.c b/drivers/acpi/acpi_pad.c index 0d2cdb86158b..97991ac6f5fc 100644 --- a/drivers/acpi/acpi_pad.c +++ b/drivers/acpi/acpi_pad.c | |||
@@ -100,7 +100,8 @@ static void round_robin_cpu(unsigned int tsk_index) | |||
100 | struct cpumask *pad_busy_cpus = to_cpumask(pad_busy_cpus_bits); | 100 | struct cpumask *pad_busy_cpus = to_cpumask(pad_busy_cpus_bits); |
101 | cpumask_var_t tmp; | 101 | cpumask_var_t tmp; |
102 | int cpu; | 102 | int cpu; |
103 | unsigned long min_weight = -1, preferred_cpu; | 103 | unsigned long min_weight = -1; |
104 | unsigned long uninitialized_var(preferred_cpu); | ||
104 | 105 | ||
105 | if (!alloc_cpumask_var(&tmp, GFP_KERNEL)) | 106 | if (!alloc_cpumask_var(&tmp, GFP_KERNEL)) |
106 | return; | 107 | return; |
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c index 3f4602b8f287..cada73ffdfa7 100644 --- a/drivers/acpi/battery.c +++ b/drivers/acpi/battery.c | |||
@@ -831,7 +831,7 @@ static void acpi_battery_notify(struct acpi_device *device, u32 event) | |||
831 | dev_name(&device->dev), event, | 831 | dev_name(&device->dev), event, |
832 | acpi_battery_present(battery)); | 832 | acpi_battery_present(battery)); |
833 | #ifdef CONFIG_ACPI_SYSFS_POWER | 833 | #ifdef CONFIG_ACPI_SYSFS_POWER |
834 | /* acpi_batter_update could remove power_supply object */ | 834 | /* acpi_battery_update could remove power_supply object */ |
835 | if (battery->bat.dev) | 835 | if (battery->bat.dev) |
836 | kobject_uevent(&battery->bat.dev->kobj, KOBJ_CHANGE); | 836 | kobject_uevent(&battery->bat.dev->kobj, KOBJ_CHANGE); |
837 | #endif | 837 | #endif |
diff --git a/drivers/acpi/fan.c b/drivers/acpi/fan.c index f419849a0d3f..acf2ab249842 100644 --- a/drivers/acpi/fan.c +++ b/drivers/acpi/fan.c | |||
@@ -267,7 +267,7 @@ static int acpi_fan_add(struct acpi_device *device) | |||
267 | goto end; | 267 | goto end; |
268 | } | 268 | } |
269 | 269 | ||
270 | dev_info(&device->dev, "registered as cooling_device%d\n", cdev->id); | 270 | dev_dbg(&device->dev, "registered as cooling_device%d\n", cdev->id); |
271 | 271 | ||
272 | device->driver_data = cdev; | 272 | device->driver_data = cdev; |
273 | result = sysfs_create_link(&device->dev.kobj, | 273 | result = sysfs_create_link(&device->dev.kobj, |
diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c index 2be2fb66204e..7ad48dfc12db 100644 --- a/drivers/acpi/numa.c +++ b/drivers/acpi/numa.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <linux/types.h> | 28 | #include <linux/types.h> |
29 | #include <linux/errno.h> | 29 | #include <linux/errno.h> |
30 | #include <linux/acpi.h> | 30 | #include <linux/acpi.h> |
31 | #include <linux/numa.h> | ||
31 | #include <acpi/acpi_bus.h> | 32 | #include <acpi/acpi_bus.h> |
32 | 33 | ||
33 | #define PREFIX "ACPI: " | 34 | #define PREFIX "ACPI: " |
@@ -40,14 +41,14 @@ static nodemask_t nodes_found_map = NODE_MASK_NONE; | |||
40 | 41 | ||
41 | /* maps to convert between proximity domain and logical node ID */ | 42 | /* maps to convert between proximity domain and logical node ID */ |
42 | static int pxm_to_node_map[MAX_PXM_DOMAINS] | 43 | static int pxm_to_node_map[MAX_PXM_DOMAINS] |
43 | = { [0 ... MAX_PXM_DOMAINS - 1] = NID_INVAL }; | 44 | = { [0 ... MAX_PXM_DOMAINS - 1] = NUMA_NO_NODE }; |
44 | static int node_to_pxm_map[MAX_NUMNODES] | 45 | static int node_to_pxm_map[MAX_NUMNODES] |
45 | = { [0 ... MAX_NUMNODES - 1] = PXM_INVAL }; | 46 | = { [0 ... MAX_NUMNODES - 1] = PXM_INVAL }; |
46 | 47 | ||
47 | int pxm_to_node(int pxm) | 48 | int pxm_to_node(int pxm) |
48 | { | 49 | { |
49 | if (pxm < 0) | 50 | if (pxm < 0) |
50 | return NID_INVAL; | 51 | return NUMA_NO_NODE; |
51 | return pxm_to_node_map[pxm]; | 52 | return pxm_to_node_map[pxm]; |
52 | } | 53 | } |
53 | 54 | ||
@@ -68,9 +69,9 @@ int acpi_map_pxm_to_node(int pxm) | |||
68 | { | 69 | { |
69 | int node = pxm_to_node_map[pxm]; | 70 | int node = pxm_to_node_map[pxm]; |
70 | 71 | ||
71 | if (node < 0){ | 72 | if (node < 0) { |
72 | if (nodes_weight(nodes_found_map) >= MAX_NUMNODES) | 73 | if (nodes_weight(nodes_found_map) >= MAX_NUMNODES) |
73 | return NID_INVAL; | 74 | return NUMA_NO_NODE; |
74 | node = first_unset_node(nodes_found_map); | 75 | node = first_unset_node(nodes_found_map); |
75 | __acpi_map_pxm_to_node(pxm, node); | 76 | __acpi_map_pxm_to_node(pxm, node); |
76 | node_set(node, nodes_found_map); | 77 | node_set(node, nodes_found_map); |
@@ -79,16 +80,6 @@ int acpi_map_pxm_to_node(int pxm) | |||
79 | return node; | 80 | return node; |
80 | } | 81 | } |
81 | 82 | ||
82 | #if 0 | ||
83 | void __cpuinit acpi_unmap_pxm_to_node(int node) | ||
84 | { | ||
85 | int pxm = node_to_pxm_map[node]; | ||
86 | pxm_to_node_map[pxm] = NID_INVAL; | ||
87 | node_to_pxm_map[node] = PXM_INVAL; | ||
88 | node_clear(node, nodes_found_map); | ||
89 | } | ||
90 | #endif /* 0 */ | ||
91 | |||
92 | static void __init | 83 | static void __init |
93 | acpi_table_print_srat_entry(struct acpi_subtable_header *header) | 84 | acpi_table_print_srat_entry(struct acpi_subtable_header *header) |
94 | { | 85 | { |
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c index 7c1c59ea9ec6..02e8464e480f 100644 --- a/drivers/acpi/osl.c +++ b/drivers/acpi/osl.c | |||
@@ -1118,7 +1118,7 @@ __setup("acpi_enforce_resources=", acpi_enforce_resources_setup); | |||
1118 | 1118 | ||
1119 | /* Check for resource conflicts between ACPI OperationRegions and native | 1119 | /* Check for resource conflicts between ACPI OperationRegions and native |
1120 | * drivers */ | 1120 | * drivers */ |
1121 | int acpi_check_resource_conflict(struct resource *res) | 1121 | int acpi_check_resource_conflict(const struct resource *res) |
1122 | { | 1122 | { |
1123 | struct acpi_res_list *res_list_elem; | 1123 | struct acpi_res_list *res_list_elem; |
1124 | int ioport; | 1124 | int ioport; |
diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c index 65b9f29ef10b..41731236f9a1 100644 --- a/drivers/acpi/processor_core.c +++ b/drivers/acpi/processor_core.c | |||
@@ -353,7 +353,7 @@ static int acpi_processor_info_open_fs(struct inode *inode, struct file *file) | |||
353 | PDE(inode)->data); | 353 | PDE(inode)->data); |
354 | } | 354 | } |
355 | 355 | ||
356 | static int acpi_processor_add_fs(struct acpi_device *device) | 356 | static int __cpuinit acpi_processor_add_fs(struct acpi_device *device) |
357 | { | 357 | { |
358 | struct proc_dir_entry *entry = NULL; | 358 | struct proc_dir_entry *entry = NULL; |
359 | 359 | ||
@@ -845,7 +845,7 @@ static int __cpuinit acpi_processor_add(struct acpi_device *device) | |||
845 | goto err_power_exit; | 845 | goto err_power_exit; |
846 | } | 846 | } |
847 | 847 | ||
848 | dev_info(&device->dev, "registered as cooling_device%d\n", | 848 | dev_dbg(&device->dev, "registered as cooling_device%d\n", |
849 | pr->cdev->id); | 849 | pr->cdev->id); |
850 | 850 | ||
851 | result = sysfs_create_link(&device->dev.kobj, | 851 | result = sysfs_create_link(&device->dev.kobj, |
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c index bbd066e7f854..d1676b1754d9 100644 --- a/drivers/acpi/processor_idle.c +++ b/drivers/acpi/processor_idle.c | |||
@@ -164,7 +164,7 @@ static void lapic_timer_check_state(int state, struct acpi_processor *pr, | |||
164 | pr->power.timer_broadcast_on_state = state; | 164 | pr->power.timer_broadcast_on_state = state; |
165 | } | 165 | } |
166 | 166 | ||
167 | static void lapic_timer_propagate_broadcast(void *arg) | 167 | static void __lapic_timer_propagate_broadcast(void *arg) |
168 | { | 168 | { |
169 | struct acpi_processor *pr = (struct acpi_processor *) arg; | 169 | struct acpi_processor *pr = (struct acpi_processor *) arg; |
170 | unsigned long reason; | 170 | unsigned long reason; |
@@ -175,6 +175,12 @@ static void lapic_timer_propagate_broadcast(void *arg) | |||
175 | clockevents_notify(reason, &pr->id); | 175 | clockevents_notify(reason, &pr->id); |
176 | } | 176 | } |
177 | 177 | ||
178 | static void lapic_timer_propagate_broadcast(struct acpi_processor *pr) | ||
179 | { | ||
180 | smp_call_function_single(pr->id, __lapic_timer_propagate_broadcast, | ||
181 | (void *)pr, 1); | ||
182 | } | ||
183 | |||
178 | /* Power(C) State timer broadcast control */ | 184 | /* Power(C) State timer broadcast control */ |
179 | static void lapic_timer_state_broadcast(struct acpi_processor *pr, | 185 | static void lapic_timer_state_broadcast(struct acpi_processor *pr, |
180 | struct acpi_processor_cx *cx, | 186 | struct acpi_processor_cx *cx, |
@@ -638,8 +644,7 @@ static int acpi_processor_power_verify(struct acpi_processor *pr) | |||
638 | working++; | 644 | working++; |
639 | } | 645 | } |
640 | 646 | ||
641 | smp_call_function_single(pr->id, lapic_timer_propagate_broadcast, | 647 | lapic_timer_propagate_broadcast(pr); |
642 | pr, 1); | ||
643 | 648 | ||
644 | return (working); | 649 | return (working); |
645 | } | 650 | } |
diff --git a/drivers/platform/x86/acerhdf.c b/drivers/platform/x86/acerhdf.c index be27aa47e810..79b15b9d9cf0 100644 --- a/drivers/platform/x86/acerhdf.c +++ b/drivers/platform/x86/acerhdf.c | |||
@@ -52,7 +52,7 @@ | |||
52 | */ | 52 | */ |
53 | #undef START_IN_KERNEL_MODE | 53 | #undef START_IN_KERNEL_MODE |
54 | 54 | ||
55 | #define DRV_VER "0.5.18" | 55 | #define DRV_VER "0.5.20" |
56 | 56 | ||
57 | /* | 57 | /* |
58 | * According to the Atom N270 datasheet, | 58 | * According to the Atom N270 datasheet, |
@@ -112,12 +112,14 @@ module_param_string(force_product, force_product, 16, 0); | |||
112 | MODULE_PARM_DESC(force_product, "Force BIOS product and omit BIOS check"); | 112 | MODULE_PARM_DESC(force_product, "Force BIOS product and omit BIOS check"); |
113 | 113 | ||
114 | /* | 114 | /* |
115 | * cmd_off: to switch the fan completely off / to check if the fan is off | 115 | * cmd_off: to switch the fan completely off |
116 | * chk_off: to check if the fan is off | ||
116 | * cmd_auto: to set the BIOS in control of the fan. The BIOS regulates then | 117 | * cmd_auto: to set the BIOS in control of the fan. The BIOS regulates then |
117 | * the fan speed depending on the temperature | 118 | * the fan speed depending on the temperature |
118 | */ | 119 | */ |
119 | struct fancmd { | 120 | struct fancmd { |
120 | u8 cmd_off; | 121 | u8 cmd_off; |
122 | u8 chk_off; | ||
121 | u8 cmd_auto; | 123 | u8 cmd_auto; |
122 | }; | 124 | }; |
123 | 125 | ||
@@ -134,32 +136,41 @@ struct bios_settings_t { | |||
134 | /* Register addresses and values for different BIOS versions */ | 136 | /* Register addresses and values for different BIOS versions */ |
135 | static const struct bios_settings_t bios_tbl[] = { | 137 | static const struct bios_settings_t bios_tbl[] = { |
136 | /* AOA110 */ | 138 | /* AOA110 */ |
137 | {"Acer", "AOA110", "v0.3109", 0x55, 0x58, {0x1f, 0x00} }, | 139 | {"Acer", "AOA110", "v0.3109", 0x55, 0x58, {0x1f, 0x1f, 0x00} }, |
138 | {"Acer", "AOA110", "v0.3114", 0x55, 0x58, {0x1f, 0x00} }, | 140 | {"Acer", "AOA110", "v0.3114", 0x55, 0x58, {0x1f, 0x1f, 0x00} }, |
139 | {"Acer", "AOA110", "v0.3301", 0x55, 0x58, {0xaf, 0x00} }, | 141 | {"Acer", "AOA110", "v0.3301", 0x55, 0x58, {0xaf, 0xaf, 0x00} }, |
140 | {"Acer", "AOA110", "v0.3304", 0x55, 0x58, {0xaf, 0x00} }, | 142 | {"Acer", "AOA110", "v0.3304", 0x55, 0x58, {0xaf, 0xaf, 0x00} }, |
141 | {"Acer", "AOA110", "v0.3305", 0x55, 0x58, {0xaf, 0x00} }, | 143 | {"Acer", "AOA110", "v0.3305", 0x55, 0x58, {0xaf, 0xaf, 0x00} }, |
142 | {"Acer", "AOA110", "v0.3307", 0x55, 0x58, {0xaf, 0x00} }, | 144 | {"Acer", "AOA110", "v0.3307", 0x55, 0x58, {0xaf, 0xaf, 0x00} }, |
143 | {"Acer", "AOA110", "v0.3308", 0x55, 0x58, {0x21, 0x00} }, | 145 | {"Acer", "AOA110", "v0.3308", 0x55, 0x58, {0x21, 0x21, 0x00} }, |
144 | {"Acer", "AOA110", "v0.3309", 0x55, 0x58, {0x21, 0x00} }, | 146 | {"Acer", "AOA110", "v0.3309", 0x55, 0x58, {0x21, 0x21, 0x00} }, |
145 | {"Acer", "AOA110", "v0.3310", 0x55, 0x58, {0x21, 0x00} }, | 147 | {"Acer", "AOA110", "v0.3310", 0x55, 0x58, {0x21, 0x21, 0x00} }, |
146 | /* AOA150 */ | 148 | /* AOA150 */ |
147 | {"Acer", "AOA150", "v0.3114", 0x55, 0x58, {0x20, 0x00} }, | 149 | {"Acer", "AOA150", "v0.3114", 0x55, 0x58, {0x20, 0x20, 0x00} }, |
148 | {"Acer", "AOA150", "v0.3301", 0x55, 0x58, {0x20, 0x00} }, | 150 | {"Acer", "AOA150", "v0.3301", 0x55, 0x58, {0x20, 0x20, 0x00} }, |
149 | {"Acer", "AOA150", "v0.3304", 0x55, 0x58, {0x20, 0x00} }, | 151 | {"Acer", "AOA150", "v0.3304", 0x55, 0x58, {0x20, 0x20, 0x00} }, |
150 | {"Acer", "AOA150", "v0.3305", 0x55, 0x58, {0x20, 0x00} }, | 152 | {"Acer", "AOA150", "v0.3305", 0x55, 0x58, {0x20, 0x20, 0x00} }, |
151 | {"Acer", "AOA150", "v0.3307", 0x55, 0x58, {0x20, 0x00} }, | 153 | {"Acer", "AOA150", "v0.3307", 0x55, 0x58, {0x20, 0x20, 0x00} }, |
152 | {"Acer", "AOA150", "v0.3308", 0x55, 0x58, {0x20, 0x00} }, | 154 | {"Acer", "AOA150", "v0.3308", 0x55, 0x58, {0x20, 0x20, 0x00} }, |
153 | {"Acer", "AOA150", "v0.3309", 0x55, 0x58, {0x20, 0x00} }, | 155 | {"Acer", "AOA150", "v0.3309", 0x55, 0x58, {0x20, 0x20, 0x00} }, |
154 | {"Acer", "AOA150", "v0.3310", 0x55, 0x58, {0x20, 0x00} }, | 156 | {"Acer", "AOA150", "v0.3310", 0x55, 0x58, {0x20, 0x20, 0x00} }, |
157 | /* Acer 1410 */ | ||
158 | {"Acer", "Aspire 1410", "v0.3120", 0x55, 0x58, {0x9e, 0x9e, 0x00} }, | ||
155 | /* special BIOS / other */ | 159 | /* special BIOS / other */ |
156 | {"Gateway", "AOA110", "v0.3103", 0x55, 0x58, {0x21, 0x00} }, | 160 | {"Gateway", "AOA110", "v0.3103", 0x55, 0x58, {0x21, 0x21, 0x00} }, |
157 | {"Gateway", "AOA150", "v0.3103", 0x55, 0x58, {0x20, 0x00} }, | 161 | {"Gateway", "AOA150", "v0.3103", 0x55, 0x58, {0x20, 0x20, 0x00} }, |
158 | {"Packard Bell", "DOA150", "v0.3104", 0x55, 0x58, {0x21, 0x00} }, | 162 | {"Gateway ", "LT31 ", "v1.3103 ", 0x55, 0x58, |
159 | {"Packard Bell", "AOA110", "v0.3105", 0x55, 0x58, {0x21, 0x00} }, | 163 | {0x10, 0x0f, 0x00} }, |
160 | {"Packard Bell", "AOA150", "v0.3105", 0x55, 0x58, {0x20, 0x00} }, | 164 | {"Gateway ", "LT31 ", "v1.3201 ", 0x55, 0x58, |
165 | {0x10, 0x0f, 0x00} }, | ||
166 | {"Gateway ", "LT31 ", "v1.3302 ", 0x55, 0x58, | ||
167 | {0x10, 0x0f, 0x00} }, | ||
168 | {"Packard Bell", "DOA150", "v0.3104", 0x55, 0x58, {0x21, 0x21, 0x00} }, | ||
169 | {"Packard Bell", "DOA150", "v0.3105", 0x55, 0x58, {0x20, 0x20, 0x00} }, | ||
170 | {"Packard Bell", "AOA110", "v0.3105", 0x55, 0x58, {0x21, 0x21, 0x00} }, | ||
171 | {"Packard Bell", "AOA150", "v0.3105", 0x55, 0x58, {0x20, 0x20, 0x00} }, | ||
161 | /* pewpew-terminator */ | 172 | /* pewpew-terminator */ |
162 | {"", "", "", 0, 0, {0, 0} } | 173 | {"", "", "", 0, 0, {0, 0, 0} } |
163 | }; | 174 | }; |
164 | 175 | ||
165 | static const struct bios_settings_t *bios_cfg __read_mostly; | 176 | static const struct bios_settings_t *bios_cfg __read_mostly; |
@@ -183,7 +194,7 @@ static int acerhdf_get_fanstate(int *state) | |||
183 | if (ec_read(bios_cfg->fanreg, &fan)) | 194 | if (ec_read(bios_cfg->fanreg, &fan)) |
184 | return -EINVAL; | 195 | return -EINVAL; |
185 | 196 | ||
186 | if (fan != bios_cfg->cmd.cmd_off) | 197 | if (fan != bios_cfg->cmd.chk_off) |
187 | *state = ACERHDF_FAN_AUTO; | 198 | *state = ACERHDF_FAN_AUTO; |
188 | else | 199 | else |
189 | *state = ACERHDF_FAN_OFF; | 200 | *state = ACERHDF_FAN_OFF; |
diff --git a/drivers/thermal/thermal_sys.c b/drivers/thermal/thermal_sys.c index 3bc72ea57e09..5066de5cfc0c 100644 --- a/drivers/thermal/thermal_sys.c +++ b/drivers/thermal/thermal_sys.c | |||
@@ -377,7 +377,7 @@ thermal_cooling_device_cur_state_store(struct device *dev, | |||
377 | if (!sscanf(buf, "%ld\n", &state)) | 377 | if (!sscanf(buf, "%ld\n", &state)) |
378 | return -EINVAL; | 378 | return -EINVAL; |
379 | 379 | ||
380 | if (state < 0) | 380 | if ((long)state < 0) |
381 | return -EINVAL; | 381 | return -EINVAL; |
382 | 382 | ||
383 | result = cdev->ops->set_cur_state(cdev, state); | 383 | result = cdev->ops->set_cur_state(cdev, state); |
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index e11090d462d2..ce945d4845fc 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h | |||
@@ -240,7 +240,7 @@ extern int pnpacpi_disabled; | |||
240 | #define PXM_INVAL (-1) | 240 | #define PXM_INVAL (-1) |
241 | #define NID_INVAL (-1) | 241 | #define NID_INVAL (-1) |
242 | 242 | ||
243 | int acpi_check_resource_conflict(struct resource *res); | 243 | int acpi_check_resource_conflict(const struct resource *res); |
244 | 244 | ||
245 | int acpi_check_region(resource_size_t start, resource_size_t n, | 245 | int acpi_check_region(resource_size_t start, resource_size_t n, |
246 | const char *name); | 246 | const char *name); |