diff options
Diffstat (limited to 'drivers/hwmon')
-rw-r--r-- | drivers/hwmon/adt7411.c | 2 | ||||
-rw-r--r-- | drivers/hwmon/asc7621.c | 2 | ||||
-rw-r--r-- | drivers/hwmon/f75375s.c | 2 | ||||
-rw-r--r-- | drivers/hwmon/g760a.c | 2 | ||||
-rw-r--r-- | drivers/hwmon/i5k_amb.c | 6 | ||||
-rw-r--r-- | drivers/hwmon/k10temp.c | 14 | ||||
-rw-r--r-- | drivers/hwmon/k8temp.c | 2 | ||||
-rw-r--r-- | drivers/hwmon/lm73.c | 1 | ||||
-rw-r--r-- | drivers/hwmon/lm75.c | 2 | ||||
-rw-r--r-- | drivers/hwmon/lm95241.c | 1 | ||||
-rw-r--r-- | drivers/hwmon/tmp102.c | 2 | ||||
-rw-r--r-- | drivers/hwmon/tmp421.c | 2 | ||||
-rw-r--r-- | drivers/hwmon/w83781d.c | 2 |
13 files changed, 19 insertions, 21 deletions
diff --git a/drivers/hwmon/adt7411.c b/drivers/hwmon/adt7411.c index 4086c7257f91..f13c843a2964 100644 --- a/drivers/hwmon/adt7411.c +++ b/drivers/hwmon/adt7411.c | |||
@@ -316,7 +316,6 @@ static int __devinit adt7411_probe(struct i2c_client *client, | |||
316 | exit_remove: | 316 | exit_remove: |
317 | sysfs_remove_group(&client->dev.kobj, &adt7411_attr_grp); | 317 | sysfs_remove_group(&client->dev.kobj, &adt7411_attr_grp); |
318 | exit_free: | 318 | exit_free: |
319 | i2c_set_clientdata(client, NULL); | ||
320 | kfree(data); | 319 | kfree(data); |
321 | return ret; | 320 | return ret; |
322 | } | 321 | } |
@@ -327,7 +326,6 @@ static int __devexit adt7411_remove(struct i2c_client *client) | |||
327 | 326 | ||
328 | hwmon_device_unregister(data->hwmon_dev); | 327 | hwmon_device_unregister(data->hwmon_dev); |
329 | sysfs_remove_group(&client->dev.kobj, &adt7411_attr_grp); | 328 | sysfs_remove_group(&client->dev.kobj, &adt7411_attr_grp); |
330 | i2c_set_clientdata(client, NULL); | ||
331 | kfree(data); | 329 | kfree(data); |
332 | return 0; | 330 | return 0; |
333 | } | 331 | } |
diff --git a/drivers/hwmon/asc7621.c b/drivers/hwmon/asc7621.c index 0f388adc6187..3b973f30b1f6 100644 --- a/drivers/hwmon/asc7621.c +++ b/drivers/hwmon/asc7621.c | |||
@@ -1141,7 +1141,6 @@ exit_remove: | |||
1141 | &(asc7621_params[i].sda.dev_attr)); | 1141 | &(asc7621_params[i].sda.dev_attr)); |
1142 | } | 1142 | } |
1143 | 1143 | ||
1144 | i2c_set_clientdata(client, NULL); | ||
1145 | kfree(data); | 1144 | kfree(data); |
1146 | return err; | 1145 | return err; |
1147 | } | 1146 | } |
@@ -1196,7 +1195,6 @@ static int asc7621_remove(struct i2c_client *client) | |||
1196 | &(asc7621_params[i].sda.dev_attr)); | 1195 | &(asc7621_params[i].sda.dev_attr)); |
1197 | } | 1196 | } |
1198 | 1197 | ||
1199 | i2c_set_clientdata(client, NULL); | ||
1200 | kfree(data); | 1198 | kfree(data); |
1201 | return 0; | 1199 | return 0; |
1202 | } | 1200 | } |
diff --git a/drivers/hwmon/f75375s.c b/drivers/hwmon/f75375s.c index bad2cf3ef4a4..0f58ecc5334d 100644 --- a/drivers/hwmon/f75375s.c +++ b/drivers/hwmon/f75375s.c | |||
@@ -662,7 +662,6 @@ exit_remove: | |||
662 | sysfs_remove_group(&client->dev.kobj, &f75375_group); | 662 | sysfs_remove_group(&client->dev.kobj, &f75375_group); |
663 | exit_free: | 663 | exit_free: |
664 | kfree(data); | 664 | kfree(data); |
665 | i2c_set_clientdata(client, NULL); | ||
666 | return err; | 665 | return err; |
667 | } | 666 | } |
668 | 667 | ||
@@ -672,7 +671,6 @@ static int f75375_remove(struct i2c_client *client) | |||
672 | hwmon_device_unregister(data->hwmon_dev); | 671 | hwmon_device_unregister(data->hwmon_dev); |
673 | sysfs_remove_group(&client->dev.kobj, &f75375_group); | 672 | sysfs_remove_group(&client->dev.kobj, &f75375_group); |
674 | kfree(data); | 673 | kfree(data); |
675 | i2c_set_clientdata(client, NULL); | ||
676 | return 0; | 674 | return 0; |
677 | } | 675 | } |
678 | 676 | ||
diff --git a/drivers/hwmon/g760a.c b/drivers/hwmon/g760a.c index 09ea12e0a551..1f63d1a3af5e 100644 --- a/drivers/hwmon/g760a.c +++ b/drivers/hwmon/g760a.c | |||
@@ -236,7 +236,6 @@ error_hwmon_device_register: | |||
236 | sysfs_remove_group(&client->dev.kobj, &g760a_group); | 236 | sysfs_remove_group(&client->dev.kobj, &g760a_group); |
237 | error_sysfs_create_group: | 237 | error_sysfs_create_group: |
238 | kfree(data); | 238 | kfree(data); |
239 | i2c_set_clientdata(client, NULL); | ||
240 | 239 | ||
241 | return err; | 240 | return err; |
242 | } | 241 | } |
@@ -247,7 +246,6 @@ static int g760a_remove(struct i2c_client *client) | |||
247 | hwmon_device_unregister(data->hwmon_dev); | 246 | hwmon_device_unregister(data->hwmon_dev); |
248 | sysfs_remove_group(&client->dev.kobj, &g760a_group); | 247 | sysfs_remove_group(&client->dev.kobj, &g760a_group); |
249 | kfree(data); | 248 | kfree(data); |
250 | i2c_set_clientdata(client, NULL); | ||
251 | 249 | ||
252 | return 0; | 250 | return 0; |
253 | } | 251 | } |
diff --git a/drivers/hwmon/i5k_amb.c b/drivers/hwmon/i5k_amb.c index e880e2c3871d..937983407e2a 100644 --- a/drivers/hwmon/i5k_amb.c +++ b/drivers/hwmon/i5k_amb.c | |||
@@ -289,6 +289,7 @@ static int __devinit i5k_amb_hwmon_init(struct platform_device *pdev) | |||
289 | iattr->s_attr.dev_attr.attr.mode = S_IRUGO; | 289 | iattr->s_attr.dev_attr.attr.mode = S_IRUGO; |
290 | iattr->s_attr.dev_attr.show = show_label; | 290 | iattr->s_attr.dev_attr.show = show_label; |
291 | iattr->s_attr.index = k; | 291 | iattr->s_attr.index = k; |
292 | sysfs_attr_init(&iattr->s_attr.dev_attr.attr); | ||
292 | res = device_create_file(&pdev->dev, | 293 | res = device_create_file(&pdev->dev, |
293 | &iattr->s_attr.dev_attr); | 294 | &iattr->s_attr.dev_attr); |
294 | if (res) | 295 | if (res) |
@@ -303,6 +304,7 @@ static int __devinit i5k_amb_hwmon_init(struct platform_device *pdev) | |||
303 | iattr->s_attr.dev_attr.attr.mode = S_IRUGO; | 304 | iattr->s_attr.dev_attr.attr.mode = S_IRUGO; |
304 | iattr->s_attr.dev_attr.show = show_amb_temp; | 305 | iattr->s_attr.dev_attr.show = show_amb_temp; |
305 | iattr->s_attr.index = k; | 306 | iattr->s_attr.index = k; |
307 | sysfs_attr_init(&iattr->s_attr.dev_attr.attr); | ||
306 | res = device_create_file(&pdev->dev, | 308 | res = device_create_file(&pdev->dev, |
307 | &iattr->s_attr.dev_attr); | 309 | &iattr->s_attr.dev_attr); |
308 | if (res) | 310 | if (res) |
@@ -318,6 +320,7 @@ static int __devinit i5k_amb_hwmon_init(struct platform_device *pdev) | |||
318 | iattr->s_attr.dev_attr.show = show_amb_min; | 320 | iattr->s_attr.dev_attr.show = show_amb_min; |
319 | iattr->s_attr.dev_attr.store = store_amb_min; | 321 | iattr->s_attr.dev_attr.store = store_amb_min; |
320 | iattr->s_attr.index = k; | 322 | iattr->s_attr.index = k; |
323 | sysfs_attr_init(&iattr->s_attr.dev_attr.attr); | ||
321 | res = device_create_file(&pdev->dev, | 324 | res = device_create_file(&pdev->dev, |
322 | &iattr->s_attr.dev_attr); | 325 | &iattr->s_attr.dev_attr); |
323 | if (res) | 326 | if (res) |
@@ -333,6 +336,7 @@ static int __devinit i5k_amb_hwmon_init(struct platform_device *pdev) | |||
333 | iattr->s_attr.dev_attr.show = show_amb_mid; | 336 | iattr->s_attr.dev_attr.show = show_amb_mid; |
334 | iattr->s_attr.dev_attr.store = store_amb_mid; | 337 | iattr->s_attr.dev_attr.store = store_amb_mid; |
335 | iattr->s_attr.index = k; | 338 | iattr->s_attr.index = k; |
339 | sysfs_attr_init(&iattr->s_attr.dev_attr.attr); | ||
336 | res = device_create_file(&pdev->dev, | 340 | res = device_create_file(&pdev->dev, |
337 | &iattr->s_attr.dev_attr); | 341 | &iattr->s_attr.dev_attr); |
338 | if (res) | 342 | if (res) |
@@ -348,6 +352,7 @@ static int __devinit i5k_amb_hwmon_init(struct platform_device *pdev) | |||
348 | iattr->s_attr.dev_attr.show = show_amb_max; | 352 | iattr->s_attr.dev_attr.show = show_amb_max; |
349 | iattr->s_attr.dev_attr.store = store_amb_max; | 353 | iattr->s_attr.dev_attr.store = store_amb_max; |
350 | iattr->s_attr.index = k; | 354 | iattr->s_attr.index = k; |
355 | sysfs_attr_init(&iattr->s_attr.dev_attr.attr); | ||
351 | res = device_create_file(&pdev->dev, | 356 | res = device_create_file(&pdev->dev, |
352 | &iattr->s_attr.dev_attr); | 357 | &iattr->s_attr.dev_attr); |
353 | if (res) | 358 | if (res) |
@@ -362,6 +367,7 @@ static int __devinit i5k_amb_hwmon_init(struct platform_device *pdev) | |||
362 | iattr->s_attr.dev_attr.attr.mode = S_IRUGO; | 367 | iattr->s_attr.dev_attr.attr.mode = S_IRUGO; |
363 | iattr->s_attr.dev_attr.show = show_amb_alarm; | 368 | iattr->s_attr.dev_attr.show = show_amb_alarm; |
364 | iattr->s_attr.index = k; | 369 | iattr->s_attr.index = k; |
370 | sysfs_attr_init(&iattr->s_attr.dev_attr.attr); | ||
365 | res = device_create_file(&pdev->dev, | 371 | res = device_create_file(&pdev->dev, |
366 | &iattr->s_attr.dev_attr); | 372 | &iattr->s_attr.dev_attr); |
367 | if (res) | 373 | if (res) |
diff --git a/drivers/hwmon/k10temp.c b/drivers/hwmon/k10temp.c index 099a2138cdf6..da5a2404cd3e 100644 --- a/drivers/hwmon/k10temp.c +++ b/drivers/hwmon/k10temp.c | |||
@@ -112,11 +112,21 @@ static bool __devinit has_erratum_319(struct pci_dev *pdev) | |||
112 | if (pkg_type != CPUID_PKGTYPE_AM2R2_AM3) | 112 | if (pkg_type != CPUID_PKGTYPE_AM2R2_AM3) |
113 | return false; | 113 | return false; |
114 | 114 | ||
115 | /* Differentiate between AM2+ (bad) and AM3 (good) */ | 115 | /* DDR3 memory implies socket AM3, which is good */ |
116 | pci_bus_read_config_dword(pdev->bus, | 116 | pci_bus_read_config_dword(pdev->bus, |
117 | PCI_DEVFN(PCI_SLOT(pdev->devfn), 2), | 117 | PCI_DEVFN(PCI_SLOT(pdev->devfn), 2), |
118 | REG_DCT0_CONFIG_HIGH, ®_dram_cfg); | 118 | REG_DCT0_CONFIG_HIGH, ®_dram_cfg); |
119 | return !(reg_dram_cfg & DDR3_MODE); | 119 | if (reg_dram_cfg & DDR3_MODE) |
120 | return false; | ||
121 | |||
122 | /* | ||
123 | * Unfortunately it is possible to run a socket AM3 CPU with DDR2 | ||
124 | * memory. We blacklist all the cores which do exist in socket AM2+ | ||
125 | * format. It still isn't perfect, as RB-C2 cores exist in both AM2+ | ||
126 | * and AM3 formats, but that's the best we can do. | ||
127 | */ | ||
128 | return boot_cpu_data.x86_model < 4 || | ||
129 | (boot_cpu_data.x86_model == 4 && boot_cpu_data.x86_mask <= 2); | ||
120 | } | 130 | } |
121 | 131 | ||
122 | static int __devinit k10temp_probe(struct pci_dev *pdev, | 132 | static int __devinit k10temp_probe(struct pci_dev *pdev, |
diff --git a/drivers/hwmon/k8temp.c b/drivers/hwmon/k8temp.c index 0ceb6d6200a3..f26acdb11681 100644 --- a/drivers/hwmon/k8temp.c +++ b/drivers/hwmon/k8temp.c | |||
@@ -120,7 +120,7 @@ static ssize_t show_temp(struct device *dev, | |||
120 | int temp; | 120 | int temp; |
121 | struct k8temp_data *data = k8temp_update_device(dev); | 121 | struct k8temp_data *data = k8temp_update_device(dev); |
122 | 122 | ||
123 | if (data->swap_core_select) | 123 | if (data->swap_core_select && (data->sensorsp & SEL_CORE)) |
124 | core = core ? 0 : 1; | 124 | core = core ? 0 : 1; |
125 | 125 | ||
126 | temp = TEMP_FROM_REG(data->temp[core][place]) + data->temp_offset; | 126 | temp = TEMP_FROM_REG(data->temp[core][place]) + data->temp_offset; |
diff --git a/drivers/hwmon/lm73.c b/drivers/hwmon/lm73.c index 4d1b76bc8148..29b9030d42c3 100644 --- a/drivers/hwmon/lm73.c +++ b/drivers/hwmon/lm73.c | |||
@@ -136,7 +136,6 @@ static int lm73_remove(struct i2c_client *client) | |||
136 | 136 | ||
137 | hwmon_device_unregister(hwmon_dev); | 137 | hwmon_device_unregister(hwmon_dev); |
138 | sysfs_remove_group(&client->dev.kobj, &lm73_group); | 138 | sysfs_remove_group(&client->dev.kobj, &lm73_group); |
139 | i2c_set_clientdata(client, NULL); | ||
140 | return 0; | 139 | return 0; |
141 | } | 140 | } |
142 | 141 | ||
diff --git a/drivers/hwmon/lm75.c b/drivers/hwmon/lm75.c index 56463428a419..393f354f92a4 100644 --- a/drivers/hwmon/lm75.c +++ b/drivers/hwmon/lm75.c | |||
@@ -192,7 +192,6 @@ lm75_probe(struct i2c_client *client, const struct i2c_device_id *id) | |||
192 | exit_remove: | 192 | exit_remove: |
193 | sysfs_remove_group(&client->dev.kobj, &lm75_group); | 193 | sysfs_remove_group(&client->dev.kobj, &lm75_group); |
194 | exit_free: | 194 | exit_free: |
195 | i2c_set_clientdata(client, NULL); | ||
196 | kfree(data); | 195 | kfree(data); |
197 | return status; | 196 | return status; |
198 | } | 197 | } |
@@ -204,7 +203,6 @@ static int lm75_remove(struct i2c_client *client) | |||
204 | hwmon_device_unregister(data->hwmon_dev); | 203 | hwmon_device_unregister(data->hwmon_dev); |
205 | sysfs_remove_group(&client->dev.kobj, &lm75_group); | 204 | sysfs_remove_group(&client->dev.kobj, &lm75_group); |
206 | lm75_write_value(client, LM75_REG_CONF, data->orig_conf); | 205 | lm75_write_value(client, LM75_REG_CONF, data->orig_conf); |
207 | i2c_set_clientdata(client, NULL); | ||
208 | kfree(data); | 206 | kfree(data); |
209 | return 0; | 207 | return 0; |
210 | } | 208 | } |
diff --git a/drivers/hwmon/lm95241.c b/drivers/hwmon/lm95241.c index 8fc8eb8cba47..94741d42112d 100644 --- a/drivers/hwmon/lm95241.c +++ b/drivers/hwmon/lm95241.c | |||
@@ -399,7 +399,6 @@ static int lm95241_remove(struct i2c_client *client) | |||
399 | hwmon_device_unregister(data->hwmon_dev); | 399 | hwmon_device_unregister(data->hwmon_dev); |
400 | sysfs_remove_group(&client->dev.kobj, &lm95241_group); | 400 | sysfs_remove_group(&client->dev.kobj, &lm95241_group); |
401 | 401 | ||
402 | i2c_set_clientdata(client, NULL); | ||
403 | kfree(data); | 402 | kfree(data); |
404 | return 0; | 403 | return 0; |
405 | } | 404 | } |
diff --git a/drivers/hwmon/tmp102.c b/drivers/hwmon/tmp102.c index 8013895a1faf..93187c3cb5e7 100644 --- a/drivers/hwmon/tmp102.c +++ b/drivers/hwmon/tmp102.c | |||
@@ -224,7 +224,6 @@ fail_remove_sysfs: | |||
224 | fail_restore_config: | 224 | fail_restore_config: |
225 | tmp102_write_reg(client, TMP102_CONF_REG, tmp102->config_orig); | 225 | tmp102_write_reg(client, TMP102_CONF_REG, tmp102->config_orig); |
226 | fail_free: | 226 | fail_free: |
227 | i2c_set_clientdata(client, NULL); | ||
228 | kfree(tmp102); | 227 | kfree(tmp102); |
229 | 228 | ||
230 | return status; | 229 | return status; |
@@ -247,7 +246,6 @@ static int __devexit tmp102_remove(struct i2c_client *client) | |||
247 | config | TMP102_CONF_SD); | 246 | config | TMP102_CONF_SD); |
248 | } | 247 | } |
249 | 248 | ||
250 | i2c_set_clientdata(client, NULL); | ||
251 | kfree(tmp102); | 249 | kfree(tmp102); |
252 | 250 | ||
253 | return 0; | 251 | return 0; |
diff --git a/drivers/hwmon/tmp421.c b/drivers/hwmon/tmp421.c index 738c472ece27..6b4165c12092 100644 --- a/drivers/hwmon/tmp421.c +++ b/drivers/hwmon/tmp421.c | |||
@@ -295,7 +295,6 @@ exit_remove: | |||
295 | sysfs_remove_group(&client->dev.kobj, &tmp421_group); | 295 | sysfs_remove_group(&client->dev.kobj, &tmp421_group); |
296 | 296 | ||
297 | exit_free: | 297 | exit_free: |
298 | i2c_set_clientdata(client, NULL); | ||
299 | kfree(data); | 298 | kfree(data); |
300 | 299 | ||
301 | return err; | 300 | return err; |
@@ -308,7 +307,6 @@ static int tmp421_remove(struct i2c_client *client) | |||
308 | hwmon_device_unregister(data->hwmon_dev); | 307 | hwmon_device_unregister(data->hwmon_dev); |
309 | sysfs_remove_group(&client->dev.kobj, &tmp421_group); | 308 | sysfs_remove_group(&client->dev.kobj, &tmp421_group); |
310 | 309 | ||
311 | i2c_set_clientdata(client, NULL); | ||
312 | kfree(data); | 310 | kfree(data); |
313 | 311 | ||
314 | return 0; | 312 | return 0; |
diff --git a/drivers/hwmon/w83781d.c b/drivers/hwmon/w83781d.c index 32d4adee73db..c84b9b4e6960 100644 --- a/drivers/hwmon/w83781d.c +++ b/drivers/hwmon/w83781d.c | |||
@@ -1197,7 +1197,6 @@ ERROR4: | |||
1197 | if (data->lm75[1]) | 1197 | if (data->lm75[1]) |
1198 | i2c_unregister_device(data->lm75[1]); | 1198 | i2c_unregister_device(data->lm75[1]); |
1199 | ERROR3: | 1199 | ERROR3: |
1200 | i2c_set_clientdata(client, NULL); | ||
1201 | kfree(data); | 1200 | kfree(data); |
1202 | ERROR1: | 1201 | ERROR1: |
1203 | return err; | 1202 | return err; |
@@ -1219,7 +1218,6 @@ w83781d_remove(struct i2c_client *client) | |||
1219 | if (data->lm75[1]) | 1218 | if (data->lm75[1]) |
1220 | i2c_unregister_device(data->lm75[1]); | 1219 | i2c_unregister_device(data->lm75[1]); |
1221 | 1220 | ||
1222 | i2c_set_clientdata(client, NULL); | ||
1223 | kfree(data); | 1221 | kfree(data); |
1224 | 1222 | ||
1225 | return 0; | 1223 | return 0; |