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); |
