Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging

* 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
max1111.c: fix checkpatch warning
hwmon: (lm75) fix checkpatch warnings
hwmon: (lm80) fix checkpatch messages
hwmon: replaced strict_str* with kstr*
hwmon: (lm75) fix checkpatch warning
hwmon: (lm75) added error handling
hwmon: (ltc4261) set data->valid to 0 if error
hwmon: (f75375s) Add support for F75387SG/RG
hwmon: (f75375s) Disable setting DC fan control mode for F75373
hwmon: (f75375s) Initialize pwmX_mode and pwmX_enable if there is no platform data
hwmon: (f75375s) Fix value range for PWM modes
hwmon: (f75375s) Use standard sysfs attribute names
hwmon: (f75375s) Fix checkpatch errors and warnings
hwmon: (pmbus/zl6100) Only instantiate external temperature sensor if enabled
hwmon: (pmbus/zl6100) Add support for Ericsson BMR45[0,1] and BMR46[2,3,4]
hwmon: (pmbus/zl6100) Add support for ZL2005
hwmon: (pmbus/adm1275) Validate device ID

+588 -335
+2 -3
Documentation/hwmon/pmbus
··· 2 2 ==================== 3 3 4 4 Supported chips: 5 - * Ericsson BMR45X series 6 - DC/DC Converter 7 - Prefixes: 'bmr450', 'bmr451', 'bmr453', 'bmr454' 5 + * Ericsson BMR453, BMR454 6 + Prefixes: 'bmr453', 'bmr454' 8 7 Addresses scanned: - 9 8 Datasheet: 10 9 http://archive.ericsson.net/service/internet/picov/get?DocNo=28701-EN/LZT146395
+15
Documentation/hwmon/zl6100
··· 6 6 Prefix: 'zl2004' 7 7 Addresses scanned: - 8 8 Datasheet: http://www.intersil.com/data/fn/fn6847.pdf 9 + * Intersil / Zilker Labs ZL2005 10 + Prefix: 'zl2005' 11 + Addresses scanned: - 12 + Datasheet: http://www.intersil.com/data/fn/fn6848.pdf 9 13 * Intersil / Zilker Labs ZL2006 10 14 Prefix: 'zl2006' 11 15 Addresses scanned: - ··· 34 30 Prefix: 'zl6105' 35 31 Addresses scanned: - 36 32 Datasheet: http://www.intersil.com/data/fn/fn6906.pdf 33 + * Ericsson BMR450, BMR451 34 + Prefix: 'bmr450', 'bmr451' 35 + Addresses scanned: - 36 + Datasheet: 37 + http://archive.ericsson.net/service/internet/picov/get?DocNo=28701-EN/LZT146401 38 + * Ericsson BMR462, BMR463, BMR464 39 + Prefixes: 'bmr462', 'bmr463', 'bmr464' 40 + Addresses scanned: - 41 + Datasheet: 42 + http://archive.ericsson.net/service/internet/picov/get?DocNo=28701-EN/LZT146256 43 + 37 44 38 45 Author: Guenter Roeck <guenter.roeck@ericsson.com> 39 46
+2 -2
drivers/hwmon/Kconfig
··· 367 367 will be called f71882fg. 368 368 369 369 config SENSORS_F75375S 370 - tristate "Fintek F75375S/SP and F75373" 370 + tristate "Fintek F75375S/SP, F75373 and F75387" 371 371 depends on I2C 372 372 help 373 373 If you say yes here you get support for hardware monitoring 374 - features of the Fintek F75375S/SP and F75373 374 + features of the Fintek F75375S/SP, F75373 and F75387 375 375 376 376 This driver can also be built as a module. If so, the module 377 377 will be called f75375s.
+3 -3
drivers/hwmon/acpi_power_meter.c
··· 170 170 unsigned long long data; 171 171 acpi_status status; 172 172 173 - res = strict_strtoul(buf, 10, &temp); 173 + res = kstrtoul(buf, 10, &temp); 174 174 if (res) 175 175 return res; 176 176 ··· 241 241 unsigned long long data; 242 242 acpi_status status; 243 243 244 - res = strict_strtoul(buf, 10, &temp); 244 + res = kstrtoul(buf, 10, &temp); 245 245 if (res) 246 246 return res; 247 247 ··· 311 311 int res; 312 312 unsigned long temp; 313 313 314 - res = strict_strtoul(buf, 10, &temp); 314 + res = kstrtoul(buf, 10, &temp); 315 315 if (res) 316 316 return res; 317 317
+1 -1
drivers/hwmon/adcxx.c
··· 125 125 struct adcxx *adc = spi_get_drvdata(spi); 126 126 unsigned long value; 127 127 128 - if (strict_strtoul(buf, 10, &value)) 128 + if (kstrtoul(buf, 10, &value)) 129 129 return -EINVAL; 130 130 131 131 if (mutex_lock_interruptible(&adc->lock))
+1 -1
drivers/hwmon/adm1031.c
··· 767 767 int i, err; 768 768 u8 reg; 769 769 770 - err = strict_strtoul(buf, 10, &val); 770 + err = kstrtoul(buf, 10, &val); 771 771 if (err) 772 772 return err; 773 773
+1 -1
drivers/hwmon/adm9240.c
··· 503 503 struct adm9240_data *data = i2c_get_clientdata(client); 504 504 unsigned long val; 505 505 506 - if (strict_strtoul(buf, 10, &val) || val != 0) 506 + if (kstrtoul(buf, 10, &val) || val != 0) 507 507 return -EINVAL; 508 508 509 509 mutex_lock(&data->update_lock);
+1 -1
drivers/hwmon/adt7411.c
··· 197 197 int ret; 198 198 unsigned long flag; 199 199 200 - ret = strict_strtoul(buf, 0, &flag); 200 + ret = kstrtoul(buf, 0, &flag); 201 201 if (ret || flag > 1) 202 202 return -EINVAL; 203 203
+14 -14
drivers/hwmon/adt7462.c
··· 833 833 struct adt7462_data *data = i2c_get_clientdata(client); 834 834 long temp; 835 835 836 - if (strict_strtol(buf, 10, &temp) || !temp_enabled(data, attr->index)) 836 + if (kstrtol(buf, 10, &temp) || !temp_enabled(data, attr->index)) 837 837 return -EINVAL; 838 838 839 839 temp = DIV_ROUND_CLOSEST(temp, 1000) + 64; ··· 871 871 struct adt7462_data *data = i2c_get_clientdata(client); 872 872 long temp; 873 873 874 - if (strict_strtol(buf, 10, &temp) || !temp_enabled(data, attr->index)) 874 + if (kstrtol(buf, 10, &temp) || !temp_enabled(data, attr->index)) 875 875 return -EINVAL; 876 876 877 877 temp = DIV_ROUND_CLOSEST(temp, 1000) + 64; ··· 935 935 int x = voltage_multiplier(data, attr->index); 936 936 long temp; 937 937 938 - if (strict_strtol(buf, 10, &temp) || !x) 938 + if (kstrtol(buf, 10, &temp) || !x) 939 939 return -EINVAL; 940 940 941 941 temp *= 1000; /* convert mV to uV */ ··· 977 977 int x = voltage_multiplier(data, attr->index); 978 978 long temp; 979 979 980 - if (strict_strtol(buf, 10, &temp) || !x) 980 + if (kstrtol(buf, 10, &temp) || !x) 981 981 return -EINVAL; 982 982 983 983 temp *= 1000; /* convert mV to uV */ ··· 1066 1066 struct adt7462_data *data = i2c_get_clientdata(client); 1067 1067 long temp; 1068 1068 1069 - if (strict_strtol(buf, 10, &temp) || !temp || 1069 + if (kstrtol(buf, 10, &temp) || !temp || 1070 1070 !fan_enabled(data, attr->index)) 1071 1071 return -EINVAL; 1072 1072 ··· 1115 1115 long temp; 1116 1116 u8 reg; 1117 1117 1118 - if (strict_strtol(buf, 10, &temp)) 1118 + if (kstrtol(buf, 10, &temp)) 1119 1119 return -EINVAL; 1120 1120 1121 1121 mutex_lock(&data->lock); ··· 1147 1147 struct adt7462_data *data = i2c_get_clientdata(client); 1148 1148 long temp; 1149 1149 1150 - if (strict_strtol(buf, 10, &temp)) 1150 + if (kstrtol(buf, 10, &temp)) 1151 1151 return -EINVAL; 1152 1152 1153 1153 temp = SENSORS_LIMIT(temp, 0, 255); ··· 1177 1177 struct adt7462_data *data = i2c_get_clientdata(client); 1178 1178 long temp; 1179 1179 1180 - if (strict_strtol(buf, 10, &temp)) 1180 + if (kstrtol(buf, 10, &temp)) 1181 1181 return -EINVAL; 1182 1182 1183 1183 temp = SENSORS_LIMIT(temp, 0, 255); ··· 1209 1209 struct adt7462_data *data = i2c_get_clientdata(client); 1210 1210 long temp; 1211 1211 1212 - if (strict_strtol(buf, 10, &temp)) 1212 + if (kstrtol(buf, 10, &temp)) 1213 1213 return -EINVAL; 1214 1214 1215 1215 temp = SENSORS_LIMIT(temp, 0, 255); ··· 1243 1243 struct adt7462_data *data = i2c_get_clientdata(client); 1244 1244 long temp; 1245 1245 1246 - if (strict_strtol(buf, 10, &temp)) 1246 + if (kstrtol(buf, 10, &temp)) 1247 1247 return -EINVAL; 1248 1248 1249 1249 temp = DIV_ROUND_CLOSEST(temp, 1000); ··· 1289 1289 int tmin, trange_value; 1290 1290 long trange; 1291 1291 1292 - if (strict_strtol(buf, 10, &trange)) 1292 + if (kstrtol(buf, 10, &trange)) 1293 1293 return -EINVAL; 1294 1294 1295 1295 /* trange = tmax - tmin */ ··· 1330 1330 struct adt7462_data *data = i2c_get_clientdata(client); 1331 1331 long temp; 1332 1332 1333 - if (strict_strtol(buf, 10, &temp)) 1333 + if (kstrtol(buf, 10, &temp)) 1334 1334 return -EINVAL; 1335 1335 1336 1336 temp = DIV_ROUND_CLOSEST(temp, 1000) + 64; ··· 1387 1387 struct adt7462_data *data = i2c_get_clientdata(client); 1388 1388 long temp; 1389 1389 1390 - if (strict_strtol(buf, 10, &temp)) 1390 + if (kstrtol(buf, 10, &temp)) 1391 1391 return -EINVAL; 1392 1392 1393 1393 switch (temp) { ··· 1446 1446 struct adt7462_data *data = i2c_get_clientdata(client); 1447 1447 long temp; 1448 1448 1449 - if (strict_strtol(buf, 10, &temp)) 1449 + if (kstrtol(buf, 10, &temp)) 1450 1450 return -EINVAL; 1451 1451 1452 1452 temp = cvt_auto_temp(temp);
+13 -13
drivers/hwmon/adt7470.c
··· 449 449 struct adt7470_data *data = i2c_get_clientdata(client); 450 450 long temp; 451 451 452 - if (strict_strtol(buf, 10, &temp)) 452 + if (kstrtol(buf, 10, &temp)) 453 453 return -EINVAL; 454 454 455 455 temp = SENSORS_LIMIT(temp, 0, 60000); ··· 478 478 struct adt7470_data *data = i2c_get_clientdata(client); 479 479 long temp; 480 480 481 - if (strict_strtol(buf, 10, &temp)) 481 + if (kstrtol(buf, 10, &temp)) 482 482 return -EINVAL; 483 483 484 484 temp = SENSORS_LIMIT(temp, -1, 10); ··· 511 511 struct adt7470_data *data = i2c_get_clientdata(client); 512 512 long temp; 513 513 514 - if (strict_strtol(buf, 10, &temp)) 514 + if (kstrtol(buf, 10, &temp)) 515 515 return -EINVAL; 516 516 517 517 temp = DIV_ROUND_CLOSEST(temp, 1000); ··· 545 545 struct adt7470_data *data = i2c_get_clientdata(client); 546 546 long temp; 547 547 548 - if (strict_strtol(buf, 10, &temp)) 548 + if (kstrtol(buf, 10, &temp)) 549 549 return -EINVAL; 550 550 551 551 temp = DIV_ROUND_CLOSEST(temp, 1000); ··· 600 600 struct adt7470_data *data = i2c_get_clientdata(client); 601 601 long temp; 602 602 603 - if (strict_strtol(buf, 10, &temp) || !temp) 603 + if (kstrtol(buf, 10, &temp) || !temp) 604 604 return -EINVAL; 605 605 606 606 temp = FAN_RPM_TO_PERIOD(temp); ··· 637 637 struct adt7470_data *data = i2c_get_clientdata(client); 638 638 long temp; 639 639 640 - if (strict_strtol(buf, 10, &temp) || !temp) 640 + if (kstrtol(buf, 10, &temp) || !temp) 641 641 return -EINVAL; 642 642 643 643 temp = FAN_RPM_TO_PERIOD(temp); ··· 682 682 long temp; 683 683 u8 reg; 684 684 685 - if (strict_strtol(buf, 10, &temp)) 685 + if (kstrtol(buf, 10, &temp)) 686 686 return -EINVAL; 687 687 688 688 mutex_lock(&data->lock); ··· 714 714 struct adt7470_data *data = i2c_get_clientdata(client); 715 715 long temp; 716 716 717 - if (strict_strtol(buf, 10, &temp)) 717 + if (kstrtol(buf, 10, &temp)) 718 718 return -EINVAL; 719 719 720 720 temp = SENSORS_LIMIT(temp, 0, 255); ··· 746 746 struct adt7470_data *data = i2c_get_clientdata(client); 747 747 long temp; 748 748 749 - if (strict_strtol(buf, 10, &temp)) 749 + if (kstrtol(buf, 10, &temp)) 750 750 return -EINVAL; 751 751 752 752 temp = SENSORS_LIMIT(temp, 0, 255); ··· 779 779 struct adt7470_data *data = i2c_get_clientdata(client); 780 780 long temp; 781 781 782 - if (strict_strtol(buf, 10, &temp)) 782 + if (kstrtol(buf, 10, &temp)) 783 783 return -EINVAL; 784 784 785 785 temp = SENSORS_LIMIT(temp, 0, 255); ··· 822 822 struct adt7470_data *data = i2c_get_clientdata(client); 823 823 long temp; 824 824 825 - if (strict_strtol(buf, 10, &temp)) 825 + if (kstrtol(buf, 10, &temp)) 826 826 return -EINVAL; 827 827 828 828 temp = DIV_ROUND_CLOSEST(temp, 1000); ··· 859 859 long temp; 860 860 u8 reg; 861 861 862 - if (strict_strtol(buf, 10, &temp)) 862 + if (kstrtol(buf, 10, &temp)) 863 863 return -EINVAL; 864 864 865 865 if (attr->index % 2) ··· 919 919 long temp; 920 920 u8 reg; 921 921 922 - if (strict_strtol(buf, 10, &temp)) 922 + if (kstrtol(buf, 10, &temp)) 923 923 return -EINVAL; 924 924 925 925 temp = cvt_auto_temp(temp);
+10 -10
drivers/hwmon/adt7475.c
··· 343 343 unsigned char reg; 344 344 long val; 345 345 346 - if (strict_strtol(buf, 10, &val)) 346 + if (kstrtol(buf, 10, &val)) 347 347 return -EINVAL; 348 348 349 349 mutex_lock(&data->lock); ··· 432 432 int temp; 433 433 long val; 434 434 435 - if (strict_strtol(buf, 10, &val)) 435 + if (kstrtol(buf, 10, &val)) 436 436 return -EINVAL; 437 437 438 438 mutex_lock(&data->lock); ··· 546 546 int temp; 547 547 long val; 548 548 549 - if (strict_strtol(buf, 10, &val)) 549 + if (kstrtol(buf, 10, &val)) 550 550 return -EINVAL; 551 551 552 552 mutex_lock(&data->lock); ··· 602 602 struct adt7475_data *data = i2c_get_clientdata(client); 603 603 unsigned long val; 604 604 605 - if (strict_strtoul(buf, 10, &val)) 605 + if (kstrtoul(buf, 10, &val)) 606 606 return -EINVAL; 607 607 608 608 mutex_lock(&data->lock); ··· 653 653 unsigned char reg = 0; 654 654 long val; 655 655 656 - if (strict_strtol(buf, 10, &val)) 656 + if (kstrtol(buf, 10, &val)) 657 657 return -EINVAL; 658 658 659 659 mutex_lock(&data->lock); ··· 758 758 int r; 759 759 long val; 760 760 761 - if (strict_strtol(buf, 10, &val)) 761 + if (kstrtol(buf, 10, &val)) 762 762 return -EINVAL; 763 763 764 764 mutex_lock(&data->lock); ··· 781 781 int r; 782 782 long val; 783 783 784 - if (strict_strtol(buf, 10, &val)) 784 + if (kstrtol(buf, 10, &val)) 785 785 return -EINVAL; 786 786 787 787 mutex_lock(&data->lock); ··· 819 819 int out; 820 820 long val; 821 821 822 - if (strict_strtol(buf, 10, &val)) 822 + if (kstrtol(buf, 10, &val)) 823 823 return -EINVAL; 824 824 825 825 out = find_nearest(val, pwmfreq_table, ARRAY_SIZE(pwmfreq_table)); ··· 853 853 struct adt7475_data *data = i2c_get_clientdata(client); 854 854 long val; 855 855 856 - if (strict_strtol(buf, 10, &val)) 856 + if (kstrtol(buf, 10, &val)) 857 857 return -EINVAL; 858 858 if (val != 0 && val != 1) 859 859 return -EINVAL; ··· 883 883 struct adt7475_data *data = dev_get_drvdata(dev); 884 884 long val; 885 885 886 - if (strict_strtol(buf, 10, &val)) 886 + if (kstrtol(buf, 10, &val)) 887 887 return -EINVAL; 888 888 if (val < 0 || val > 255) 889 889 return -EINVAL;
+7 -7
drivers/hwmon/amc6821.c
··· 238 238 int ix = to_sensor_dev_attr(attr)->index; 239 239 long val; 240 240 241 - int ret = strict_strtol(buf, 10, &val); 241 + int ret = kstrtol(buf, 10, &val); 242 242 if (ret) 243 243 return ret; 244 244 val = SENSORS_LIMIT(val / 1000, -128, 127); ··· 327 327 struct i2c_client *client = to_i2c_client(dev); 328 328 struct amc6821_data *data = i2c_get_clientdata(client); 329 329 long val; 330 - int ret = strict_strtol(buf, 10, &val); 330 + int ret = kstrtol(buf, 10, &val); 331 331 if (ret) 332 332 return ret; 333 333 ··· 356 356 struct i2c_client *client = to_i2c_client(dev); 357 357 struct amc6821_data *data = i2c_get_clientdata(client); 358 358 long val; 359 - int config = strict_strtol(buf, 10, &val); 359 + int config = kstrtol(buf, 10, &val); 360 360 if (config) 361 361 return config; 362 362 ··· 477 477 u8 reg; 478 478 int dpwm; 479 479 long val; 480 - int ret = strict_strtol(buf, 10, &val); 480 + int ret = kstrtol(buf, 10, &val); 481 481 if (ret) 482 482 return ret; 483 483 ··· 556 556 struct amc6821_data *data = i2c_get_clientdata(client); 557 557 int dpwm; 558 558 long val; 559 - int ret = strict_strtol(buf, 10, &val); 559 + int ret = kstrtol(buf, 10, &val); 560 560 if (ret) 561 561 return ret; 562 562 ··· 623 623 struct amc6821_data *data = i2c_get_clientdata(client); 624 624 long val; 625 625 int ix = to_sensor_dev_attr(attr)->index; 626 - int ret = strict_strtol(buf, 10, &val); 626 + int ret = kstrtol(buf, 10, &val); 627 627 if (ret) 628 628 return ret; 629 629 val = 1 > val ? 0xFFFF : 6000000/val; ··· 665 665 struct i2c_client *client = to_i2c_client(dev); 666 666 struct amc6821_data *data = i2c_get_clientdata(client); 667 667 long val; 668 - int config = strict_strtol(buf, 10, &val); 668 + int config = kstrtol(buf, 10, &val); 669 669 if (config) 670 670 return config; 671 671
+3 -3
drivers/hwmon/applesmc.c
··· 782 782 char newkey[5]; 783 783 u8 buffer[2]; 784 784 785 - if (strict_strtoul(sysfsbuf, 10, &speed) < 0 || speed >= 0x4000) 785 + if (kstrtoul(sysfsbuf, 10, &speed) < 0 || speed >= 0x4000) 786 786 return -EINVAL; /* Bigger than a 14-bit value */ 787 787 788 788 sprintf(newkey, fan_speed_fmt[to_option(attr)], to_index(attr)); ··· 822 822 unsigned long input; 823 823 u16 val; 824 824 825 - if (strict_strtoul(sysfsbuf, 10, &input) < 0) 825 + if (kstrtoul(sysfsbuf, 10, &input) < 0) 826 826 return -EINVAL; 827 827 828 828 ret = applesmc_read_key(FANS_MANUAL, buffer, 2); ··· 977 977 { 978 978 unsigned long newkey; 979 979 980 - if (strict_strtoul(sysfsbuf, 10, &newkey) < 0 980 + if (kstrtoul(sysfsbuf, 10, &newkey) < 0 981 981 || newkey >= smcreg.key_count) 982 982 return -EINVAL; 983 983
+12 -12
drivers/hwmon/asc7621.c
··· 188 188 SETUP_STORE_data_param(dev, attr); 189 189 long reqval; 190 190 191 - if (strict_strtol(buf, 10, &reqval)) 191 + if (kstrtol(buf, 10, &reqval)) 192 192 return -EINVAL; 193 193 194 194 reqval = SENSORS_LIMIT(reqval, 0, 255); ··· 221 221 long reqval; 222 222 u8 currval; 223 223 224 - if (strict_strtol(buf, 10, &reqval)) 224 + if (kstrtol(buf, 10, &reqval)) 225 225 return -EINVAL; 226 226 227 227 reqval = SENSORS_LIMIT(reqval, 0, param->mask[0]); ··· 265 265 SETUP_STORE_data_param(dev, attr); 266 266 long reqval; 267 267 268 - if (strict_strtol(buf, 10, &reqval)) 268 + if (kstrtol(buf, 10, &reqval)) 269 269 return -EINVAL; 270 270 271 271 /* If a minimum RPM of zero is requested, then we set the register to ··· 338 338 long reqval; 339 339 u8 nr = sda->index; 340 340 341 - if (strict_strtol(buf, 10, &reqval)) 341 + if (kstrtol(buf, 10, &reqval)) 342 342 return -EINVAL; 343 343 344 344 reqval = SENSORS_LIMIT(reqval, 0, 0xffff); ··· 371 371 long reqval; 372 372 s8 temp; 373 373 374 - if (strict_strtol(buf, 10, &reqval)) 374 + if (kstrtol(buf, 10, &reqval)) 375 375 return -EINVAL; 376 376 377 377 reqval = SENSORS_LIMIT(reqval, -127000, 127000); ··· 427 427 long reqval, i, f; 428 428 s8 temp; 429 429 430 - if (strict_strtol(buf, 10, &reqval)) 430 + if (kstrtol(buf, 10, &reqval)) 431 431 return -EINVAL; 432 432 433 433 reqval = SENSORS_LIMIT(reqval, -32000, 31750); ··· 482 482 int i; 483 483 u8 currval, newval = 0; 484 484 485 - if (strict_strtol(buf, 10, &reqval)) 485 + if (kstrtol(buf, 10, &reqval)) 486 486 return -EINVAL; 487 487 488 488 mutex_lock(&data->update_lock); ··· 538 538 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 539 539 }; 540 540 541 - if (strict_strtoul(buf, 10, &reqval)) 541 + if (kstrtoul(buf, 10, &reqval)) 542 542 return -EINVAL; 543 543 544 544 if (reqval > 31) ··· 601 601 long reqval; 602 602 u8 currval, config, altbit, newval, minoff = 255; 603 603 604 - if (strict_strtol(buf, 10, &reqval)) 604 + if (kstrtol(buf, 10, &reqval)) 605 605 return -EINVAL; 606 606 607 607 switch (reqval) { ··· 675 675 u8 currval, newval = 255; 676 676 int i; 677 677 678 - if (strict_strtoul(buf, 10, &reqval)) 678 + if (kstrtoul(buf, 10, &reqval)) 679 679 return -EINVAL; 680 680 681 681 for (i = 0; i < ARRAY_SIZE(asc7621_pwm_freq_map); i++) { ··· 724 724 u8 currval, newval = 255; 725 725 u32 i; 726 726 727 - if (strict_strtol(buf, 10, &reqval)) 727 + if (kstrtol(buf, 10, &reqval)) 728 728 return -EINVAL; 729 729 730 730 for (i = 0; i < ARRAY_SIZE(asc7621_pwm_auto_spinup_map); i++) { ··· 771 771 u8 currval, newval = 255; 772 772 u32 i; 773 773 774 - if (strict_strtol(buf, 10, &reqval)) 774 + if (kstrtol(buf, 10, &reqval)) 775 775 return -EINVAL; 776 776 777 777 for (i = 0; i < ARRAY_SIZE(asc7621_temp_smoothing_time_map); i++) {
+1 -1
drivers/hwmon/ds620.c
··· 161 161 struct i2c_client *client = to_i2c_client(dev); 162 162 struct ds620_data *data = i2c_get_clientdata(client); 163 163 164 - res = strict_strtol(buf, 10, &val); 164 + res = kstrtol(buf, 10, &val); 165 165 166 166 if (res) 167 167 return res;
+3 -3
drivers/hwmon/emc1403.c
··· 80 80 unsigned long val; 81 81 int retval; 82 82 83 - if (strict_strtoul(buf, 10, &val)) 83 + if (kstrtoul(buf, 10, &val)) 84 84 return -EINVAL; 85 85 retval = i2c_smbus_write_byte_data(client, sda->index, 86 86 DIV_ROUND_CLOSEST(val, 1000)); ··· 98 98 unsigned long val; 99 99 int retval; 100 100 101 - if (strict_strtoul(buf, 10, &val)) 101 + if (kstrtoul(buf, 10, &val)) 102 102 return -EINVAL; 103 103 104 104 mutex_lock(&data->mutex); ··· 151 151 int hyst; 152 152 unsigned long val; 153 153 154 - if (strict_strtoul(buf, 10, &val)) 154 + if (kstrtoul(buf, 10, &val)) 155 155 return -EINVAL; 156 156 157 157 mutex_lock(&data->mutex);
+5 -5
drivers/hwmon/emc2103.c
··· 244 244 struct emc2103_data *data = i2c_get_clientdata(client); 245 245 long val; 246 246 247 - int result = strict_strtol(buf, 10, &val); 247 + int result = kstrtol(buf, 10, &val); 248 248 if (result < 0) 249 249 return -EINVAL; 250 250 ··· 268 268 struct emc2103_data *data = i2c_get_clientdata(client); 269 269 long val; 270 270 271 - int result = strict_strtol(buf, 10, &val); 271 + int result = kstrtol(buf, 10, &val); 272 272 if (result < 0) 273 273 return -EINVAL; 274 274 ··· 314 314 int new_range_bits, old_div = 8 / data->fan_multiplier; 315 315 long new_div; 316 316 317 - int status = strict_strtol(buf, 10, &new_div); 317 + int status = kstrtol(buf, 10, &new_div); 318 318 if (status < 0) 319 319 return -EINVAL; 320 320 ··· 388 388 struct i2c_client *client = to_i2c_client(dev); 389 389 long rpm_target; 390 390 391 - int result = strict_strtol(buf, 10, &rpm_target); 391 + int result = kstrtol(buf, 10, &rpm_target); 392 392 if (result < 0) 393 393 return -EINVAL; 394 394 ··· 434 434 long new_value; 435 435 u8 conf_reg; 436 436 437 - int result = strict_strtol(buf, 10, &new_value); 437 + int result = kstrtol(buf, 10, &new_value); 438 438 if (result < 0) 439 439 return -EINVAL; 440 440
+3 -3
drivers/hwmon/emc6w201.c
··· 212 212 long val; 213 213 u8 reg; 214 214 215 - err = strict_strtol(buf, 10, &val); 215 + err = kstrtol(buf, 10, &val); 216 216 if (err < 0) 217 217 return err; 218 218 ··· 249 249 long val; 250 250 u8 reg; 251 251 252 - err = strict_strtol(buf, 10, &val); 252 + err = kstrtol(buf, 10, &val); 253 253 if (err < 0) 254 254 return err; 255 255 ··· 291 291 int err; 292 292 unsigned long val; 293 293 294 - err = strict_strtoul(buf, 10, &val); 294 + err = kstrtoul(buf, 10, &val); 295 295 if (err < 0) 296 296 return err; 297 297
+16 -16
drivers/hwmon/f71882fg.c
··· 1333 1333 int err, nr = to_sensor_dev_attr_2(devattr)->index; 1334 1334 long val; 1335 1335 1336 - err = strict_strtol(buf, 10, &val); 1336 + err = kstrtol(buf, 10, &val); 1337 1337 if (err) 1338 1338 return err; 1339 1339 ··· 1367 1367 int err, nr = to_sensor_dev_attr_2(devattr)->index; 1368 1368 unsigned long val; 1369 1369 1370 - err = strict_strtoul(buf, 10, &val); 1370 + err = kstrtoul(buf, 10, &val); 1371 1371 if (err) 1372 1372 return err; 1373 1373 ··· 1420 1420 int err; 1421 1421 long val; 1422 1422 1423 - err = strict_strtol(buf, 10, &val); 1423 + err = kstrtol(buf, 10, &val); 1424 1424 if (err) 1425 1425 return err; 1426 1426 ··· 1454 1454 int err, nr = to_sensor_dev_attr_2(devattr)->index; 1455 1455 unsigned long val; 1456 1456 1457 - err = strict_strtoul(buf, 10, &val); 1457 + err = kstrtoul(buf, 10, &val); 1458 1458 if (err) 1459 1459 return err; 1460 1460 ··· 1524 1524 int err, nr = to_sensor_dev_attr_2(devattr)->index; 1525 1525 long val; 1526 1526 1527 - err = strict_strtol(buf, 10, &val); 1527 + err = kstrtol(buf, 10, &val); 1528 1528 if (err) 1529 1529 return err; 1530 1530 ··· 1566 1566 u8 reg; 1567 1567 long val; 1568 1568 1569 - err = strict_strtol(buf, 10, &val); 1569 + err = kstrtol(buf, 10, &val); 1570 1570 if (err) 1571 1571 return err; 1572 1572 ··· 1609 1609 int err, nr = to_sensor_dev_attr_2(devattr)->index; 1610 1610 long val; 1611 1611 1612 - err = strict_strtol(buf, 10, &val); 1612 + err = kstrtol(buf, 10, &val); 1613 1613 if (err) 1614 1614 return err; 1615 1615 ··· 1670 1670 int err, nr = to_sensor_dev_attr_2(devattr)->index; 1671 1671 unsigned long val; 1672 1672 1673 - err = strict_strtoul(buf, 10, &val); 1673 + err = kstrtoul(buf, 10, &val); 1674 1674 if (err) 1675 1675 return err; 1676 1676 ··· 1737 1737 int err, nr = to_sensor_dev_attr_2(devattr)->index; 1738 1738 long val; 1739 1739 1740 - err = strict_strtol(buf, 10, &val); 1740 + err = kstrtol(buf, 10, &val); 1741 1741 if (err) 1742 1742 return err; 1743 1743 ··· 1788 1788 int err, nr = to_sensor_dev_attr_2(devattr)->index; 1789 1789 long val; 1790 1790 1791 - err = strict_strtol(buf, 10, &val); 1791 + err = kstrtol(buf, 10, &val); 1792 1792 if (err) 1793 1793 return err; 1794 1794 ··· 1835 1835 int err, nr = to_sensor_dev_attr_2(devattr)->index; 1836 1836 long val; 1837 1837 1838 - err = strict_strtol(buf, 10, &val); 1838 + err = kstrtol(buf, 10, &val); 1839 1839 if (err) 1840 1840 return err; 1841 1841 ··· 1915 1915 int point = to_sensor_dev_attr_2(devattr)->nr; 1916 1916 long val; 1917 1917 1918 - err = strict_strtol(buf, 10, &val); 1918 + err = kstrtol(buf, 10, &val); 1919 1919 if (err) 1920 1920 return err; 1921 1921 ··· 1969 1969 u8 reg; 1970 1970 long val; 1971 1971 1972 - err = strict_strtol(buf, 10, &val); 1972 + err = kstrtol(buf, 10, &val); 1973 1973 if (err) 1974 1974 return err; 1975 1975 ··· 2015 2015 int err, nr = to_sensor_dev_attr_2(devattr)->index; 2016 2016 unsigned long val; 2017 2017 2018 - err = strict_strtoul(buf, 10, &val); 2018 + err = kstrtoul(buf, 10, &val); 2019 2019 if (err) 2020 2020 return err; 2021 2021 ··· 2055 2055 int err, nr = to_sensor_dev_attr_2(devattr)->index; 2056 2056 long val; 2057 2057 2058 - err = strict_strtol(buf, 10, &val); 2058 + err = kstrtol(buf, 10, &val); 2059 2059 if (err) 2060 2060 return err; 2061 2061 ··· 2106 2106 int point = to_sensor_dev_attr_2(devattr)->nr; 2107 2107 long val; 2108 2108 2109 - err = strict_strtol(buf, 10, &val); 2109 + err = kstrtol(buf, 10, &val); 2110 2110 if (err) 2111 2111 return err; 2112 2112
+234 -75
drivers/hwmon/f75375s.c
··· 1 1 /* 2 - * f75375s.c - driver for the Fintek F75375/SP and F75373 3 - * hardware monitoring features 2 + * f75375s.c - driver for the Fintek F75375/SP, F75373 and 3 + * F75387SG/RG hardware monitoring features 4 4 * Copyright (C) 2006-2007 Riku Voipio 5 5 * 6 6 * Datasheets available at: 7 7 * 8 8 * f75375: 9 - * http://www.fintek.com.tw/files/productfiles/F75375_V026P.pdf 9 + * http://www.fintek.com.tw/files/productfiles/F75375_V026P.pdf 10 10 * 11 11 * f75373: 12 12 * http://www.fintek.com.tw/files/productfiles/F75373_V025P.pdf 13 + * 14 + * f75387: 15 + * http://www.fintek.com.tw/files/productfiles/F75387_V027P.pdf 13 16 * 14 17 * This program is free software; you can redistribute it and/or modify 15 18 * it under the terms of the GNU General Public License as published by ··· 43 40 /* Addresses to scan */ 44 41 static const unsigned short normal_i2c[] = { 0x2d, 0x2e, I2C_CLIENT_END }; 45 42 46 - enum chips { f75373, f75375 }; 43 + enum chips { f75373, f75375, f75387 }; 47 44 48 45 /* Fintek F75375 registers */ 49 46 #define F75375_REG_CONFIG0 0x0 ··· 62 59 #define F75375_REG_VOLT_LOW(nr) (0x21 + (nr) * 2) 63 60 64 61 #define F75375_REG_TEMP(nr) (0x14 + (nr)) 62 + #define F75387_REG_TEMP11_LSB(nr) (0x1a + (nr)) 65 63 #define F75375_REG_TEMP_HIGH(nr) (0x28 + (nr) * 2) 66 64 #define F75375_REG_TEMP_HYST(nr) (0x29 + (nr) * 2) 67 65 ··· 82 78 #define F75375_REG_PWM1_DROP_DUTY 0x6B 83 79 #define F75375_REG_PWM2_DROP_DUTY 0x6C 84 80 85 - #define FAN_CTRL_LINEAR(nr) (4 + nr) 81 + #define F75375_FAN_CTRL_LINEAR(nr) (4 + nr) 82 + #define F75387_FAN_CTRL_LINEAR(nr) (1 + ((nr) * 4)) 86 83 #define FAN_CTRL_MODE(nr) (4 + ((nr) * 2)) 84 + #define F75387_FAN_DUTY_MODE(nr) (2 + ((nr) * 4)) 85 + #define F75387_FAN_MANU_MODE(nr) ((nr) * 4) 87 86 88 87 /* 89 88 * Data structures and manipulation thereof ··· 109 102 u8 in_min[4]; 110 103 u16 fan[2]; 111 104 u16 fan_min[2]; 112 - u16 fan_full[2]; 113 - u16 fan_exp[2]; 105 + u16 fan_max[2]; 106 + u16 fan_target[2]; 114 107 u8 fan_timer; 115 108 u8 pwm[2]; 116 109 u8 pwm_mode[2]; 117 110 u8 pwm_enable[2]; 118 - s8 temp[2]; 111 + /* 112 + * f75387: For remote temperature reading, it uses signed 11-bit 113 + * values with LSB = 0.125 degree Celsius, left-justified in 16-bit 114 + * registers. For original 8-bit temp readings, the LSB just is 0. 115 + */ 116 + s16 temp11[2]; 119 117 s8 temp_high[2]; 120 118 s8 temp_max_hyst[2]; 121 119 }; ··· 134 122 static const struct i2c_device_id f75375_id[] = { 135 123 { "f75373", f75373 }, 136 124 { "f75375", f75375 }, 125 + { "f75387", f75387 }, 137 126 { } 138 127 }; 139 128 MODULE_DEVICE_TABLE(i2c, f75375_id); ··· 159 146 /* in most cases, should be called while holding update_lock */ 160 147 static inline u16 f75375_read16(struct i2c_client *client, u8 reg) 161 148 { 162 - return ((i2c_smbus_read_byte_data(client, reg) << 8) 163 - | i2c_smbus_read_byte_data(client, reg + 1)); 149 + return (i2c_smbus_read_byte_data(client, reg) << 8) 150 + | i2c_smbus_read_byte_data(client, reg + 1); 164 151 } 165 152 166 153 static inline void f75375_write8(struct i2c_client *client, u8 reg, ··· 194 181 f75375_read8(client, F75375_REG_TEMP_HIGH(nr)); 195 182 data->temp_max_hyst[nr] = 196 183 f75375_read8(client, F75375_REG_TEMP_HYST(nr)); 197 - data->fan_full[nr] = 184 + data->fan_max[nr] = 198 185 f75375_read16(client, F75375_REG_FAN_FULL(nr)); 199 186 data->fan_min[nr] = 200 187 f75375_read16(client, F75375_REG_FAN_MIN(nr)); 201 - data->fan_exp[nr] = 188 + data->fan_target[nr] = 202 189 f75375_read16(client, F75375_REG_FAN_EXP(nr)); 203 190 data->pwm[nr] = f75375_read8(client, 204 191 F75375_REG_FAN_PWM_DUTY(nr)); ··· 218 205 if (time_after(jiffies, data->last_updated + 2 * HZ) 219 206 || !data->valid) { 220 207 for (nr = 0; nr < 2; nr++) { 221 - data->temp[nr] = 222 - f75375_read8(client, F75375_REG_TEMP(nr)); 208 + /* assign MSB, therefore shift it by 8 bits */ 209 + data->temp11[nr] = 210 + f75375_read8(client, F75375_REG_TEMP(nr)) << 8; 211 + if (data->kind == f75387) 212 + /* merge F75387's temperature LSB (11-bit) */ 213 + data->temp11[nr] |= 214 + f75375_read8(client, 215 + F75387_REG_TEMP11_LSB(nr)); 223 216 data->fan[nr] = 224 217 f75375_read16(client, F75375_REG_FAN(nr)); 225 218 } ··· 245 226 { 246 227 if (reg == 0 || reg == 0xffff) 247 228 return 0; 248 - return (1500000 / reg); 229 + return 1500000 / reg; 249 230 } 250 231 251 232 static inline u16 rpm_to_reg(int rpm) 252 233 { 253 234 if (rpm < 367 || rpm > 0xffff) 254 235 return 0xffff; 255 - return (1500000 / rpm); 236 + return 1500000 / rpm; 256 237 } 257 238 258 239 static ssize_t set_fan_min(struct device *dev, struct device_attribute *attr, ··· 261 242 int nr = to_sensor_dev_attr(attr)->index; 262 243 struct i2c_client *client = to_i2c_client(dev); 263 244 struct f75375_data *data = i2c_get_clientdata(client); 264 - int val = simple_strtoul(buf, NULL, 10); 245 + unsigned long val; 246 + int err; 247 + 248 + err = kstrtoul(buf, 10, &val); 249 + if (err < 0) 250 + return err; 265 251 266 252 mutex_lock(&data->update_lock); 267 253 data->fan_min[nr] = rpm_to_reg(val); ··· 275 251 return count; 276 252 } 277 253 278 - static ssize_t set_fan_exp(struct device *dev, struct device_attribute *attr, 254 + static ssize_t set_fan_target(struct device *dev, struct device_attribute *attr, 279 255 const char *buf, size_t count) 280 256 { 281 257 int nr = to_sensor_dev_attr(attr)->index; 282 258 struct i2c_client *client = to_i2c_client(dev); 283 259 struct f75375_data *data = i2c_get_clientdata(client); 284 - int val = simple_strtoul(buf, NULL, 10); 260 + unsigned long val; 261 + int err; 262 + 263 + err = kstrtoul(buf, 10, &val); 264 + if (err < 0) 265 + return err; 285 266 286 267 mutex_lock(&data->update_lock); 287 - data->fan_exp[nr] = rpm_to_reg(val); 288 - f75375_write16(client, F75375_REG_FAN_EXP(nr), data->fan_exp[nr]); 268 + data->fan_target[nr] = rpm_to_reg(val); 269 + f75375_write16(client, F75375_REG_FAN_EXP(nr), data->fan_target[nr]); 289 270 mutex_unlock(&data->update_lock); 290 271 return count; 291 272 } ··· 301 272 int nr = to_sensor_dev_attr(attr)->index; 302 273 struct i2c_client *client = to_i2c_client(dev); 303 274 struct f75375_data *data = i2c_get_clientdata(client); 304 - int val = simple_strtoul(buf, NULL, 10); 275 + unsigned long val; 276 + int err; 277 + 278 + err = kstrtoul(buf, 10, &val); 279 + if (err < 0) 280 + return err; 305 281 306 282 mutex_lock(&data->update_lock); 307 283 data->pwm[nr] = SENSORS_LIMIT(val, 0, 255); ··· 328 294 struct f75375_data *data = i2c_get_clientdata(client); 329 295 u8 fanmode; 330 296 331 - if (val < 0 || val > 4) 297 + if (val < 0 || val > 3) 332 298 return -EINVAL; 333 299 334 300 fanmode = f75375_read8(client, F75375_REG_FAN_TIMER); 335 - fanmode &= ~(3 << FAN_CTRL_MODE(nr)); 336 - 337 - switch (val) { 338 - case 0: /* Full speed */ 339 - fanmode |= (3 << FAN_CTRL_MODE(nr)); 340 - data->pwm[nr] = 255; 341 - f75375_write8(client, F75375_REG_FAN_PWM_DUTY(nr), 342 - data->pwm[nr]); 343 - break; 344 - case 1: /* PWM */ 345 - fanmode |= (3 << FAN_CTRL_MODE(nr)); 346 - break; 347 - case 2: /* AUTOMATIC*/ 348 - fanmode |= (2 << FAN_CTRL_MODE(nr)); 349 - break; 350 - case 3: /* fan speed */ 351 - break; 301 + if (data->kind == f75387) { 302 + /* clear each fanX_mode bit before setting them properly */ 303 + fanmode &= ~(1 << F75387_FAN_DUTY_MODE(nr)); 304 + fanmode &= ~(1 << F75387_FAN_MANU_MODE(nr)); 305 + switch (val) { 306 + case 0: /* full speed */ 307 + fanmode |= (1 << F75387_FAN_MANU_MODE(nr)); 308 + fanmode |= (1 << F75387_FAN_DUTY_MODE(nr)); 309 + data->pwm[nr] = 255; 310 + f75375_write8(client, F75375_REG_FAN_PWM_DUTY(nr), 311 + data->pwm[nr]); 312 + break; 313 + case 1: /* PWM */ 314 + fanmode |= (1 << F75387_FAN_MANU_MODE(nr)); 315 + fanmode |= (1 << F75387_FAN_DUTY_MODE(nr)); 316 + break; 317 + case 2: /* AUTOMATIC*/ 318 + fanmode |= (1 << F75387_FAN_DUTY_MODE(nr)); 319 + break; 320 + case 3: /* fan speed */ 321 + fanmode |= (1 << F75387_FAN_MANU_MODE(nr)); 322 + break; 323 + } 324 + } else { 325 + /* clear each fanX_mode bit before setting them properly */ 326 + fanmode &= ~(3 << FAN_CTRL_MODE(nr)); 327 + switch (val) { 328 + case 0: /* full speed */ 329 + fanmode |= (3 << FAN_CTRL_MODE(nr)); 330 + data->pwm[nr] = 255; 331 + f75375_write8(client, F75375_REG_FAN_PWM_DUTY(nr), 332 + data->pwm[nr]); 333 + break; 334 + case 1: /* PWM */ 335 + fanmode |= (3 << FAN_CTRL_MODE(nr)); 336 + break; 337 + case 2: /* AUTOMATIC*/ 338 + fanmode |= (2 << FAN_CTRL_MODE(nr)); 339 + break; 340 + case 3: /* fan speed */ 341 + break; 342 + } 352 343 } 344 + 353 345 f75375_write8(client, F75375_REG_FAN_TIMER, fanmode); 354 346 data->pwm_enable[nr] = val; 355 347 return 0; ··· 387 327 int nr = to_sensor_dev_attr(attr)->index; 388 328 struct i2c_client *client = to_i2c_client(dev); 389 329 struct f75375_data *data = i2c_get_clientdata(client); 390 - int val = simple_strtoul(buf, NULL, 10); 391 - int err = 0; 330 + unsigned long val; 331 + int err; 332 + 333 + err = kstrtoul(buf, 10, &val); 334 + if (err < 0) 335 + return err; 392 336 393 337 mutex_lock(&data->update_lock); 394 338 err = set_pwm_enable_direct(client, nr, val); ··· 406 342 int nr = to_sensor_dev_attr(attr)->index; 407 343 struct i2c_client *client = to_i2c_client(dev); 408 344 struct f75375_data *data = i2c_get_clientdata(client); 409 - int val = simple_strtoul(buf, NULL, 10); 410 - u8 conf = 0; 345 + unsigned long val; 346 + int err; 347 + u8 conf; 348 + char reg, ctrl; 349 + 350 + err = kstrtoul(buf, 10, &val); 351 + if (err < 0) 352 + return err; 411 353 412 354 if (!(val == 0 || val == 1)) 413 355 return -EINVAL; 414 356 357 + /* F75373 does not support DC (linear voltage) fan control mode */ 358 + if (data->kind == f75373 && val == 0) 359 + return -EINVAL; 360 + 361 + /* take care for different registers */ 362 + if (data->kind == f75387) { 363 + reg = F75375_REG_FAN_TIMER; 364 + ctrl = F75387_FAN_CTRL_LINEAR(nr); 365 + } else { 366 + reg = F75375_REG_CONFIG1; 367 + ctrl = F75375_FAN_CTRL_LINEAR(nr); 368 + } 369 + 415 370 mutex_lock(&data->update_lock); 416 - conf = f75375_read8(client, F75375_REG_CONFIG1); 417 - conf &= ~(1 << FAN_CTRL_LINEAR(nr)); 371 + conf = f75375_read8(client, reg); 372 + conf &= ~(1 << ctrl); 418 373 419 374 if (val == 0) 420 - conf |= (1 << FAN_CTRL_LINEAR(nr)) ; 375 + conf |= (1 << ctrl); 421 376 422 - f75375_write8(client, F75375_REG_CONFIG1, conf); 377 + f75375_write8(client, reg, conf); 423 378 data->pwm_mode[nr] = val; 424 379 mutex_unlock(&data->update_lock); 425 380 return count; ··· 493 410 int nr = to_sensor_dev_attr(attr)->index; 494 411 struct i2c_client *client = to_i2c_client(dev); 495 412 struct f75375_data *data = i2c_get_clientdata(client); 496 - int val = simple_strtoul(buf, NULL, 10); 413 + unsigned long val; 414 + int err; 415 + 416 + err = kstrtoul(buf, 10, &val); 417 + if (err < 0) 418 + return err; 419 + 497 420 val = SENSORS_LIMIT(VOLT_TO_REG(val), 0, 0xff); 498 421 mutex_lock(&data->update_lock); 499 422 data->in_max[nr] = val; ··· 514 425 int nr = to_sensor_dev_attr(attr)->index; 515 426 struct i2c_client *client = to_i2c_client(dev); 516 427 struct f75375_data *data = i2c_get_clientdata(client); 517 - int val = simple_strtoul(buf, NULL, 10); 428 + unsigned long val; 429 + int err; 430 + 431 + err = kstrtoul(buf, 10, &val); 432 + if (err < 0) 433 + return err; 434 + 518 435 val = SENSORS_LIMIT(VOLT_TO_REG(val), 0, 0xff); 519 436 mutex_lock(&data->update_lock); 520 437 data->in_min[nr] = val; ··· 530 435 } 531 436 #define TEMP_FROM_REG(val) ((val) * 1000) 532 437 #define TEMP_TO_REG(val) ((val) / 1000) 438 + #define TEMP11_FROM_REG(reg) ((reg) / 32 * 125) 533 439 534 - static ssize_t show_temp(struct device *dev, struct device_attribute *attr, 440 + static ssize_t show_temp11(struct device *dev, struct device_attribute *attr, 535 441 char *buf) 536 442 { 537 443 int nr = to_sensor_dev_attr(attr)->index; 538 444 struct f75375_data *data = f75375_update_device(dev); 539 - return sprintf(buf, "%d\n", TEMP_FROM_REG(data->temp[nr])); 445 + return sprintf(buf, "%d\n", TEMP11_FROM_REG(data->temp11[nr])); 540 446 } 541 447 542 448 static ssize_t show_temp_max(struct device *dev, struct device_attribute *attr, ··· 562 466 int nr = to_sensor_dev_attr(attr)->index; 563 467 struct i2c_client *client = to_i2c_client(dev); 564 468 struct f75375_data *data = i2c_get_clientdata(client); 565 - int val = simple_strtol(buf, NULL, 10); 469 + unsigned long val; 470 + int err; 471 + 472 + err = kstrtoul(buf, 10, &val); 473 + if (err < 0) 474 + return err; 475 + 566 476 val = SENSORS_LIMIT(TEMP_TO_REG(val), 0, 127); 567 477 mutex_lock(&data->update_lock); 568 478 data->temp_high[nr] = val; ··· 583 481 int nr = to_sensor_dev_attr(attr)->index; 584 482 struct i2c_client *client = to_i2c_client(dev); 585 483 struct f75375_data *data = i2c_get_clientdata(client); 586 - int val = simple_strtol(buf, NULL, 10); 484 + unsigned long val; 485 + int err; 486 + 487 + err = kstrtoul(buf, 10, &val); 488 + if (err < 0) 489 + return err; 490 + 587 491 val = SENSORS_LIMIT(TEMP_TO_REG(val), 0, 127); 588 492 mutex_lock(&data->update_lock); 589 493 data->temp_max_hyst[nr] = val; ··· 610 502 611 503 show_fan(fan); 612 504 show_fan(fan_min); 613 - show_fan(fan_full); 614 - show_fan(fan_exp); 505 + show_fan(fan_max); 506 + show_fan(fan_target); 615 507 616 508 static SENSOR_DEVICE_ATTR(in0_input, S_IRUGO, show_in, NULL, 0); 617 509 static SENSOR_DEVICE_ATTR(in0_max, S_IRUGO|S_IWUSR, ··· 633 525 show_in_max, set_in_max, 3); 634 526 static SENSOR_DEVICE_ATTR(in3_min, S_IRUGO|S_IWUSR, 635 527 show_in_min, set_in_min, 3); 636 - static SENSOR_DEVICE_ATTR(temp1_input, S_IRUGO, show_temp, NULL, 0); 528 + static SENSOR_DEVICE_ATTR(temp1_input, S_IRUGO, show_temp11, NULL, 0); 637 529 static SENSOR_DEVICE_ATTR(temp1_max_hyst, S_IRUGO|S_IWUSR, 638 530 show_temp_max_hyst, set_temp_max_hyst, 0); 639 531 static SENSOR_DEVICE_ATTR(temp1_max, S_IRUGO|S_IWUSR, 640 532 show_temp_max, set_temp_max, 0); 641 - static SENSOR_DEVICE_ATTR(temp2_input, S_IRUGO, show_temp, NULL, 1); 533 + static SENSOR_DEVICE_ATTR(temp2_input, S_IRUGO, show_temp11, NULL, 1); 642 534 static SENSOR_DEVICE_ATTR(temp2_max_hyst, S_IRUGO|S_IWUSR, 643 535 show_temp_max_hyst, set_temp_max_hyst, 1); 644 536 static SENSOR_DEVICE_ATTR(temp2_max, S_IRUGO|S_IWUSR, 645 537 show_temp_max, set_temp_max, 1); 646 538 static SENSOR_DEVICE_ATTR(fan1_input, S_IRUGO, show_fan, NULL, 0); 647 - static SENSOR_DEVICE_ATTR(fan1_full, S_IRUGO, show_fan_full, NULL, 0); 539 + static SENSOR_DEVICE_ATTR(fan1_max, S_IRUGO, show_fan_max, NULL, 0); 648 540 static SENSOR_DEVICE_ATTR(fan1_min, S_IRUGO|S_IWUSR, 649 541 show_fan_min, set_fan_min, 0); 650 - static SENSOR_DEVICE_ATTR(fan1_exp, S_IRUGO|S_IWUSR, 651 - show_fan_exp, set_fan_exp, 0); 542 + static SENSOR_DEVICE_ATTR(fan1_target, S_IRUGO|S_IWUSR, 543 + show_fan_target, set_fan_target, 0); 652 544 static SENSOR_DEVICE_ATTR(fan2_input, S_IRUGO, show_fan, NULL, 1); 653 - static SENSOR_DEVICE_ATTR(fan2_full, S_IRUGO, show_fan_full, NULL, 1); 545 + static SENSOR_DEVICE_ATTR(fan2_max, S_IRUGO, show_fan_max, NULL, 1); 654 546 static SENSOR_DEVICE_ATTR(fan2_min, S_IRUGO|S_IWUSR, 655 547 show_fan_min, set_fan_min, 1); 656 - static SENSOR_DEVICE_ATTR(fan2_exp, S_IRUGO|S_IWUSR, 657 - show_fan_exp, set_fan_exp, 1); 548 + static SENSOR_DEVICE_ATTR(fan2_target, S_IRUGO|S_IWUSR, 549 + show_fan_target, set_fan_target, 1); 658 550 static SENSOR_DEVICE_ATTR(pwm1, S_IRUGO|S_IWUSR, 659 551 show_pwm, set_pwm, 0); 660 552 static SENSOR_DEVICE_ATTR(pwm1_enable, S_IRUGO|S_IWUSR, ··· 676 568 &sensor_dev_attr_temp2_max.dev_attr.attr, 677 569 &sensor_dev_attr_temp2_max_hyst.dev_attr.attr, 678 570 &sensor_dev_attr_fan1_input.dev_attr.attr, 679 - &sensor_dev_attr_fan1_full.dev_attr.attr, 571 + &sensor_dev_attr_fan1_max.dev_attr.attr, 680 572 &sensor_dev_attr_fan1_min.dev_attr.attr, 681 - &sensor_dev_attr_fan1_exp.dev_attr.attr, 573 + &sensor_dev_attr_fan1_target.dev_attr.attr, 682 574 &sensor_dev_attr_fan2_input.dev_attr.attr, 683 - &sensor_dev_attr_fan2_full.dev_attr.attr, 575 + &sensor_dev_attr_fan2_max.dev_attr.attr, 684 576 &sensor_dev_attr_fan2_min.dev_attr.attr, 685 - &sensor_dev_attr_fan2_exp.dev_attr.attr, 577 + &sensor_dev_attr_fan2_target.dev_attr.attr, 686 578 &sensor_dev_attr_pwm1.dev_attr.attr, 687 579 &sensor_dev_attr_pwm1_enable.dev_attr.attr, 688 580 &sensor_dev_attr_pwm1_mode.dev_attr.attr, ··· 712 604 struct f75375s_platform_data *f75375s_pdata) 713 605 { 714 606 int nr; 607 + 608 + if (!f75375s_pdata) { 609 + u8 conf, mode; 610 + int nr; 611 + 612 + conf = f75375_read8(client, F75375_REG_CONFIG1); 613 + mode = f75375_read8(client, F75375_REG_FAN_TIMER); 614 + for (nr = 0; nr < 2; nr++) { 615 + if (data->kind == f75387) { 616 + bool manu, duty; 617 + 618 + if (!(conf & (1 << F75387_FAN_CTRL_LINEAR(nr)))) 619 + data->pwm_mode[nr] = 1; 620 + 621 + manu = ((mode >> F75387_FAN_MANU_MODE(nr)) & 1); 622 + duty = ((mode >> F75387_FAN_DUTY_MODE(nr)) & 1); 623 + if (manu && duty) 624 + /* speed */ 625 + data->pwm_enable[nr] = 3; 626 + else if (!manu && duty) 627 + /* automatic */ 628 + data->pwm_enable[nr] = 2; 629 + else 630 + /* manual */ 631 + data->pwm_enable[nr] = 1; 632 + } else { 633 + if (!(conf & (1 << F75375_FAN_CTRL_LINEAR(nr)))) 634 + data->pwm_mode[nr] = 1; 635 + 636 + switch ((mode >> FAN_CTRL_MODE(nr)) & 3) { 637 + case 0: /* speed */ 638 + data->pwm_enable[nr] = 3; 639 + break; 640 + case 1: /* automatic */ 641 + data->pwm_enable[nr] = 2; 642 + break; 643 + default: /* manual */ 644 + data->pwm_enable[nr] = 1; 645 + break; 646 + } 647 + } 648 + } 649 + return; 650 + } 651 + 715 652 set_pwm_enable_direct(client, 0, f75375s_pdata->pwm_enable[0]); 716 653 set_pwm_enable_direct(client, 1, f75375s_pdata->pwm_enable[1]); 717 654 for (nr = 0; nr < 2; nr++) { ··· 777 624 if (!i2c_check_functionality(client->adapter, 778 625 I2C_FUNC_SMBUS_BYTE_DATA)) 779 626 return -EIO; 780 - if (!(data = kzalloc(sizeof(struct f75375_data), GFP_KERNEL))) 627 + data = kzalloc(sizeof(struct f75375_data), GFP_KERNEL); 628 + if (!data) 781 629 return -ENOMEM; 782 630 783 631 i2c_set_clientdata(client, data); 784 632 mutex_init(&data->update_lock); 785 633 data->kind = id->driver_data; 786 634 787 - if ((err = sysfs_create_group(&client->dev.kobj, &f75375_group))) 635 + err = sysfs_create_group(&client->dev.kobj, &f75375_group); 636 + if (err) 788 637 goto exit_free; 789 638 790 639 if (data->kind == f75375) { ··· 808 653 goto exit_remove; 809 654 } 810 655 811 - if (f75375s_pdata != NULL) 812 - f75375_init(client, data, f75375s_pdata); 656 + f75375_init(client, data, f75375s_pdata); 813 657 814 658 return 0; 815 659 ··· 839 685 840 686 vendid = f75375_read16(client, F75375_REG_VENDOR); 841 687 chipid = f75375_read16(client, F75375_CHIP_ID); 842 - if (chipid == 0x0306 && vendid == 0x1934) 688 + if (vendid != 0x1934) 689 + return -ENODEV; 690 + 691 + if (chipid == 0x0306) 843 692 name = "f75375"; 844 - else if (chipid == 0x0204 && vendid == 0x1934) 693 + else if (chipid == 0x0204) 845 694 name = "f75373"; 695 + else if (chipid == 0x0410) 696 + name = "f75387"; 846 697 else 847 698 return -ENODEV; 848 699 ··· 870 711 871 712 MODULE_AUTHOR("Riku Voipio"); 872 713 MODULE_LICENSE("GPL"); 873 - MODULE_DESCRIPTION("F75373/F75375 hardware monitoring driver"); 714 + MODULE_DESCRIPTION("F75373/F75375/F75387 hardware monitoring driver"); 874 715 875 716 module_init(sensors_f75375_init); 876 717 module_exit(sensors_f75375_exit);
+1 -1
drivers/hwmon/g760a.c
··· 166 166 struct g760a_data *data = g760a_update_client(dev); 167 167 unsigned long val; 168 168 169 - if (strict_strtoul(buf, 10, &val)) 169 + if (kstrtoul(buf, 10, &val)) 170 170 return -EINVAL; 171 171 172 172 mutex_lock(&data->update_lock);
+3 -3
drivers/hwmon/gpio-fan.c
··· 224 224 int speed_index; 225 225 int ret = count; 226 226 227 - if (strict_strtoul(buf, 10, &pwm) || pwm > 255) 227 + if (kstrtoul(buf, 10, &pwm) || pwm > 255) 228 228 return -EINVAL; 229 229 230 230 mutex_lock(&fan_data->lock); ··· 257 257 struct gpio_fan_data *fan_data = dev_get_drvdata(dev); 258 258 unsigned long val; 259 259 260 - if (strict_strtoul(buf, 10, &val) || val > 1) 260 + if (kstrtoul(buf, 10, &val) || val > 1) 261 261 return -EINVAL; 262 262 263 263 if (fan_data->pwm_enable == val) ··· 314 314 unsigned long rpm; 315 315 int ret = count; 316 316 317 - if (strict_strtoul(buf, 10, &rpm)) 317 + if (kstrtoul(buf, 10, &rpm)) 318 318 return -EINVAL; 319 319 320 320 mutex_lock(&fan_data->lock);
+1 -1
drivers/hwmon/ibmaem.c
··· 904 904 unsigned long temp; 905 905 int res; 906 906 907 - res = strict_strtoul(buf, 10, &temp); 907 + res = kstrtoul(buf, 10, &temp); 908 908 if (res) 909 909 return res; 910 910
+17 -17
drivers/hwmon/it87.c
··· 444 444 struct it87_data *data = dev_get_drvdata(dev); 445 445 unsigned long val; 446 446 447 - if (strict_strtoul(buf, 10, &val) < 0) 447 + if (kstrtoul(buf, 10, &val) < 0) 448 448 return -EINVAL; 449 449 450 450 mutex_lock(&data->update_lock); ··· 463 463 struct it87_data *data = dev_get_drvdata(dev); 464 464 unsigned long val; 465 465 466 - if (strict_strtoul(buf, 10, &val) < 0) 466 + if (kstrtoul(buf, 10, &val) < 0) 467 467 return -EINVAL; 468 468 469 469 mutex_lock(&data->update_lock); ··· 539 539 struct it87_data *data = dev_get_drvdata(dev); 540 540 long val; 541 541 542 - if (strict_strtol(buf, 10, &val) < 0) 542 + if (kstrtol(buf, 10, &val) < 0) 543 543 return -EINVAL; 544 544 545 545 mutex_lock(&data->update_lock); ··· 557 557 struct it87_data *data = dev_get_drvdata(dev); 558 558 long val; 559 559 560 - if (strict_strtol(buf, 10, &val) < 0) 560 + if (kstrtol(buf, 10, &val) < 0) 561 561 return -EINVAL; 562 562 563 563 mutex_lock(&data->update_lock); ··· 604 604 long val; 605 605 u8 reg; 606 606 607 - if (strict_strtol(buf, 10, &val) < 0) 607 + if (kstrtol(buf, 10, &val) < 0) 608 608 return -EINVAL; 609 609 610 610 reg = it87_read_value(data, IT87_REG_TEMP_ENABLE); ··· 718 718 long val; 719 719 u8 reg; 720 720 721 - if (strict_strtol(buf, 10, &val) < 0) 721 + if (kstrtol(buf, 10, &val) < 0) 722 722 return -EINVAL; 723 723 724 724 mutex_lock(&data->update_lock); ··· 751 751 int min; 752 752 u8 old; 753 753 754 - if (strict_strtoul(buf, 10, &val) < 0) 754 + if (kstrtoul(buf, 10, &val) < 0) 755 755 return -EINVAL; 756 756 757 757 mutex_lock(&data->update_lock); ··· 820 820 struct it87_data *data = dev_get_drvdata(dev); 821 821 long val; 822 822 823 - if (strict_strtol(buf, 10, &val) < 0 || val < 0 || val > 2) 823 + if (kstrtol(buf, 10, &val) < 0 || val < 0 || val > 2) 824 824 return -EINVAL; 825 825 826 826 /* Check trip points before switching to automatic mode */ ··· 866 866 struct it87_data *data = dev_get_drvdata(dev); 867 867 long val; 868 868 869 - if (strict_strtol(buf, 10, &val) < 0 || val < 0 || val > 255) 869 + if (kstrtol(buf, 10, &val) < 0 || val < 0 || val > 255) 870 870 return -EINVAL; 871 871 872 872 mutex_lock(&data->update_lock); ··· 900 900 unsigned long val; 901 901 int i; 902 902 903 - if (strict_strtoul(buf, 10, &val) < 0) 903 + if (kstrtoul(buf, 10, &val) < 0) 904 904 return -EINVAL; 905 905 906 906 /* Search for the nearest available frequency */ ··· 949 949 return -EINVAL; 950 950 } 951 951 952 - if (strict_strtol(buf, 10, &val) < 0) 952 + if (kstrtol(buf, 10, &val) < 0) 953 953 return -EINVAL; 954 954 955 955 switch (val) { ··· 1001 1001 int point = sensor_attr->index; 1002 1002 long val; 1003 1003 1004 - if (strict_strtol(buf, 10, &val) < 0 || val < 0 || val > 255) 1004 + if (kstrtol(buf, 10, &val) < 0 || val < 0 || val > 255) 1005 1005 return -EINVAL; 1006 1006 1007 1007 mutex_lock(&data->update_lock); ··· 1034 1034 int point = sensor_attr->index; 1035 1035 long val; 1036 1036 1037 - if (strict_strtol(buf, 10, &val) < 0 || val < -128000 || val > 127000) 1037 + if (kstrtol(buf, 10, &val) < 0 || val < -128000 || val > 127000) 1038 1038 return -EINVAL; 1039 1039 1040 1040 mutex_lock(&data->update_lock); ··· 1126 1126 struct it87_data *data = dev_get_drvdata(dev); 1127 1127 long val; 1128 1128 1129 - if (strict_strtol(buf, 10, &val) < 0) 1129 + if (kstrtol(buf, 10, &val) < 0) 1130 1130 return -EINVAL; 1131 1131 1132 1132 mutex_lock(&data->update_lock); ··· 1180 1180 long val; 1181 1181 int config; 1182 1182 1183 - if (strict_strtol(buf, 10, &val) < 0 || val != 0) 1183 + if (kstrtol(buf, 10, &val) < 0 || val != 0) 1184 1184 return -EINVAL; 1185 1185 1186 1186 mutex_lock(&data->update_lock); ··· 1231 1231 struct it87_data *data = dev_get_drvdata(dev); 1232 1232 long val; 1233 1233 1234 - if (strict_strtol(buf, 10, &val) < 0 1234 + if (kstrtol(buf, 10, &val) < 0 1235 1235 || (val != 0 && val != 1)) 1236 1236 return -EINVAL; 1237 1237 ··· 1278 1278 struct it87_data *data = dev_get_drvdata(dev); 1279 1279 unsigned long val; 1280 1280 1281 - if (strict_strtoul(buf, 10, &val) < 0) 1281 + if (kstrtoul(buf, 10, &val) < 0) 1282 1282 return -EINVAL; 1283 1283 1284 1284 data->vrm = val;
+2 -2
drivers/hwmon/jc42.c
··· 309 309 struct jc42_data *data = i2c_get_clientdata(client); \ 310 310 int err, ret = count; \ 311 311 long val; \ 312 - if (strict_strtol(buf, 10, &val) < 0) \ 312 + if (kstrtol(buf, 10, &val) < 0) \ 313 313 return -EINVAL; \ 314 314 mutex_lock(&data->update_lock); \ 315 315 data->value = jc42_temp_to_reg(val, data->extended); \ ··· 337 337 int err; 338 338 int ret = count; 339 339 340 - if (strict_strtoul(buf, 10, &val) < 0) 340 + if (kstrtoul(buf, 10, &val) < 0) 341 341 return -EINVAL; 342 342 343 343 diff = jc42_temp_from_reg(data->temp_crit) - val;
+1 -1
drivers/hwmon/lm73.c
··· 50 50 long temp; 51 51 short value; 52 52 53 - int status = strict_strtol(buf, 10, &temp); 53 + int status = kstrtol(buf, 10, &temp); 54 54 if (status < 0) 55 55 return status; 56 56
+17 -8
drivers/hwmon/lm75.c
··· 93 93 { 94 94 struct sensor_device_attribute *attr = to_sensor_dev_attr(da); 95 95 struct lm75_data *data = lm75_update_device(dev); 96 + 97 + if (IS_ERR(data)) 98 + return PTR_ERR(data); 99 + 96 100 return sprintf(buf, "%d\n", 97 101 LM75_TEMP_FROM_REG(data->temp[attr->index])); 98 102 } ··· 111 107 long temp; 112 108 int error; 113 109 114 - error = strict_strtol(buf, 10, &temp); 110 + error = kstrtol(buf, 10, &temp); 115 111 if (error) 116 112 return error; 117 113 ··· 406 402 { 407 403 struct i2c_client *client = to_i2c_client(dev); 408 404 struct lm75_data *data = i2c_get_clientdata(client); 405 + struct lm75_data *ret = data; 409 406 410 407 mutex_lock(&data->update_lock); 411 408 ··· 419 414 int status; 420 415 421 416 status = lm75_read_value(client, LM75_REG_TEMP[i]); 422 - if (status < 0) 423 - dev_dbg(&client->dev, "reg %d, err %d\n", 424 - LM75_REG_TEMP[i], status); 425 - else 426 - data->temp[i] = status; 417 + if (unlikely(status < 0)) { 418 + dev_dbg(dev, 419 + "LM75: Failed to read value: reg %d, error %d\n", 420 + LM75_REG_TEMP[i], status); 421 + ret = ERR_PTR(status); 422 + data->valid = 0; 423 + goto abort; 424 + } 425 + data->temp[i] = status; 427 426 } 428 427 data->last_updated = jiffies; 429 428 data->valid = 1; 430 429 } 431 430 431 + abort: 432 432 mutex_unlock(&data->update_lock); 433 - 434 - return data; 433 + return ret; 435 434 } 436 435 437 436 /*-----------------------------------------------------------------------*/
+2 -3
drivers/hwmon/lm75.h
··· 1 1 /* 2 2 lm75.h - Part of lm_sensors, Linux kernel modules for hardware 3 - monitoring 3 + monitoring 4 4 Copyright (c) 2003 Mark M. Hoffman <mhoffman@lightlink.com> 5 5 6 6 This program is free software; you can redistribute it and/or modify ··· 37 37 static inline u16 LM75_TEMP_TO_REG(long temp) 38 38 { 39 39 int ntemp = SENSORS_LIMIT(temp, LM75_TEMP_MIN, LM75_TEMP_MAX); 40 - ntemp += (ntemp<0 ? -250 : 250); 40 + ntemp += (ntemp < 0 ? -250 : 250); 41 41 return (u16)((ntemp / 500) << 7); 42 42 } 43 43 ··· 47 47 guarantee arithmetic shift and preserve the sign */ 48 48 return ((s16)reg / 128) * 500; 49 49 } 50 -
+42 -28
drivers/hwmon/lm80.c
··· 66 66 these macros are called: arguments may be evaluated more than once. 67 67 Fixing this is just not worth it. */ 68 68 69 - #define IN_TO_REG(val) (SENSORS_LIMIT(((val)+5)/10,0,255)) 70 - #define IN_FROM_REG(val) ((val)*10) 69 + #define IN_TO_REG(val) (SENSORS_LIMIT(((val) + 5) / 10, 0, 255)) 70 + #define IN_FROM_REG(val) ((val) * 10) 71 71 72 72 static inline unsigned char FAN_TO_REG(unsigned rpm, unsigned div) 73 73 { 74 74 if (rpm == 0) 75 75 return 255; 76 76 rpm = SENSORS_LIMIT(rpm, 1, 1000000); 77 - return SENSORS_LIMIT((1350000 + rpm*div / 2) / (rpm*div), 1, 254); 77 + return SENSORS_LIMIT((1350000 + rpm * div / 2) / (rpm * div), 1, 254); 78 78 } 79 79 80 - #define FAN_FROM_REG(val,div) ((val)==0?-1:\ 81 - (val)==255?0:1350000/((div)*(val))) 80 + #define FAN_FROM_REG(val, div) ((val) == 0 ? -1 : \ 81 + (val) == 255 ? 0 : 1350000/((div) * (val))) 82 82 83 83 static inline long TEMP_FROM_REG(u16 temp) 84 84 { ··· 93 93 return res / 10; 94 94 } 95 95 96 - #define TEMP_LIMIT_FROM_REG(val) (((val)>0x80?(val)-0x100:(val))*1000) 96 + #define TEMP_LIMIT_FROM_REG(val) (((val) > 0x80 ? \ 97 + (val) - 0x100 : (val)) * 1000) 97 98 98 - #define TEMP_LIMIT_TO_REG(val) SENSORS_LIMIT((val)<0?\ 99 - ((val)-500)/1000:((val)+500)/1000,0,255) 99 + #define TEMP_LIMIT_TO_REG(val) SENSORS_LIMIT((val) < 0 ? \ 100 + ((val) - 500) / 1000 : ((val) + 500) / 1000, 0, 255) 100 101 101 102 #define DIV_FROM_REG(val) (1 << (val)) 102 103 ··· 165 164 */ 166 165 167 166 #define show_in(suffix, value) \ 168 - static ssize_t show_in_##suffix(struct device *dev, struct device_attribute *attr, char *buf) \ 167 + static ssize_t show_in_##suffix(struct device *dev, \ 168 + struct device_attribute *attr, char *buf) \ 169 169 { \ 170 170 int nr = to_sensor_dev_attr(attr)->index; \ 171 171 struct lm80_data *data = lm80_update_device(dev); \ ··· 177 175 show_in(input, in) 178 176 179 177 #define set_in(suffix, value, reg) \ 180 - static ssize_t set_in_##suffix(struct device *dev, struct device_attribute *attr, const char *buf, \ 181 - size_t count) \ 178 + static ssize_t set_in_##suffix(struct device *dev, \ 179 + struct device_attribute *attr, const char *buf, size_t count) \ 182 180 { \ 183 181 int nr = to_sensor_dev_attr(attr)->index; \ 184 182 struct i2c_client *client = to_i2c_client(dev); \ 185 183 struct lm80_data *data = i2c_get_clientdata(client); \ 186 184 long val = simple_strtol(buf, NULL, 10); \ 187 - \ 185 + \ 188 186 mutex_lock(&data->update_lock);\ 189 187 data->value[nr] = IN_TO_REG(val); \ 190 188 lm80_write_value(client, reg(nr), data->value[nr]); \ ··· 195 193 set_in(max, in_max, LM80_REG_IN_MAX) 196 194 197 195 #define show_fan(suffix, value) \ 198 - static ssize_t show_fan_##suffix(struct device *dev, struct device_attribute *attr, char *buf) \ 196 + static ssize_t show_fan_##suffix(struct device *dev, \ 197 + struct device_attribute *attr, char *buf) \ 199 198 { \ 200 199 int nr = to_sensor_dev_attr(attr)->index; \ 201 200 struct lm80_data *data = lm80_update_device(dev); \ ··· 248 245 DIV_FROM_REG(data->fan_div[nr])); 249 246 250 247 switch (val) { 251 - case 1: data->fan_div[nr] = 0; break; 252 - case 2: data->fan_div[nr] = 1; break; 253 - case 4: data->fan_div[nr] = 2; break; 254 - case 8: data->fan_div[nr] = 3; break; 248 + case 1: 249 + data->fan_div[nr] = 0; 250 + break; 251 + case 2: 252 + data->fan_div[nr] = 1; 253 + break; 254 + case 4: 255 + data->fan_div[nr] = 2; 256 + break; 257 + case 8: 258 + data->fan_div[nr] = 3; 259 + break; 255 260 default: 256 261 dev_err(&client->dev, "fan_div value %ld not " 257 262 "supported. Choose one of 1, 2, 4 or 8!\n", val); ··· 279 268 return count; 280 269 } 281 270 282 - static ssize_t show_temp_input1(struct device *dev, struct device_attribute *attr, char *buf) 271 + static ssize_t show_temp_input1(struct device *dev, 272 + struct device_attribute *attr, char *buf) 283 273 { 284 274 struct lm80_data *data = lm80_update_device(dev); 285 275 return sprintf(buf, "%ld\n", TEMP_FROM_REG(data->temp)); 286 276 } 287 277 288 278 #define show_temp(suffix, value) \ 289 - static ssize_t show_temp_##suffix(struct device *dev, struct device_attribute *attr, char *buf) \ 279 + static ssize_t show_temp_##suffix(struct device *dev, \ 280 + struct device_attribute *attr, char *buf) \ 290 281 { \ 291 282 struct lm80_data *data = lm80_update_device(dev); \ 292 283 return sprintf(buf, "%d\n", TEMP_LIMIT_FROM_REG(data->value)); \ ··· 299 286 show_temp(os_hyst, temp_os_hyst); 300 287 301 288 #define set_temp(suffix, value, reg) \ 302 - static ssize_t set_temp_##suffix(struct device *dev, struct device_attribute *attr, const char *buf, \ 303 - size_t count) \ 289 + static ssize_t set_temp_##suffix(struct device *dev, \ 290 + struct device_attribute *attr, const char *buf, size_t count) \ 304 291 { \ 305 292 struct i2c_client *client = to_i2c_client(dev); \ 306 293 struct lm80_data *data = i2c_get_clientdata(client); \ 307 294 long val = simple_strtoul(buf, NULL, 10); \ 308 - \ 295 + \ 309 296 mutex_lock(&data->update_lock); \ 310 297 data->value = TEMP_LIMIT_TO_REG(val); \ 311 298 lm80_write_value(client, reg, data->value); \ ··· 379 366 show_fan_div, set_fan_div, 1); 380 367 static DEVICE_ATTR(temp1_input, S_IRUGO, show_temp_input1, NULL); 381 368 static DEVICE_ATTR(temp1_max, S_IWUSR | S_IRUGO, show_temp_hot_max, 382 - set_temp_hot_max); 369 + set_temp_hot_max); 383 370 static DEVICE_ATTR(temp1_max_hyst, S_IWUSR | S_IRUGO, show_temp_hot_hyst, 384 - set_temp_hot_hyst); 371 + set_temp_hot_hyst); 385 372 static DEVICE_ATTR(temp1_crit, S_IWUSR | S_IRUGO, show_temp_os_max, 386 - set_temp_os_max); 373 + set_temp_os_max); 387 374 static DEVICE_ATTR(temp1_crit_hyst, S_IWUSR | S_IRUGO, show_temp_os_hyst, 388 - set_temp_os_hyst); 375 + set_temp_os_hyst); 389 376 static DEVICE_ATTR(alarms, S_IRUGO, show_alarms, NULL); 390 377 static SENSOR_DEVICE_ATTR(in0_alarm, S_IRUGO, show_alarm, NULL, 0); 391 378 static SENSOR_DEVICE_ATTR(in1_alarm, S_IRUGO, show_alarm, NULL, 1); ··· 472 459 if ((i2c_smbus_read_byte_data(client, i + 0x40) != cur) 473 460 || (i2c_smbus_read_byte_data(client, i + 0x80) != cur) 474 461 || (i2c_smbus_read_byte_data(client, i + 0xc0) != cur)) 475 - return -ENODEV; 462 + return -ENODEV; 476 463 } 477 464 478 465 strlcpy(info->type, "lm80", I2C_NAME_SIZE); ··· 503 490 data->fan_min[1] = lm80_read_value(client, LM80_REG_FAN_MIN(2)); 504 491 505 492 /* Register sysfs hooks */ 506 - if ((err = sysfs_create_group(&client->dev.kobj, &lm80_group))) 493 + err = sysfs_create_group(&client->dev.kobj, &lm80_group); 494 + if (err) 507 495 goto error_free; 508 496 509 497 data->hwmon_dev = hwmon_device_register(&client->dev);
+5 -5
drivers/hwmon/lm90.c
··· 730 730 long val; 731 731 int err; 732 732 733 - err = strict_strtol(buf, 10, &val); 733 + err = kstrtol(buf, 10, &val); 734 734 if (err < 0) 735 735 return err; 736 736 ··· 798 798 long val; 799 799 int err; 800 800 801 - err = strict_strtol(buf, 10, &val); 801 + err = kstrtol(buf, 10, &val); 802 802 if (err < 0) 803 803 return err; 804 804 ··· 859 859 int err; 860 860 int temp; 861 861 862 - err = strict_strtol(buf, 10, &val); 862 + err = kstrtol(buf, 10, &val); 863 863 if (err < 0) 864 864 return err; 865 865 ··· 912 912 unsigned long val; 913 913 int err; 914 914 915 - err = strict_strtoul(buf, 10, &val); 915 + err = kstrtoul(buf, 10, &val); 916 916 if (err) 917 917 return err; 918 918 ··· 1080 1080 long val; 1081 1081 int err; 1082 1082 1083 - err = strict_strtol(buf, 10, &val); 1083 + err = kstrtol(buf, 10, &val); 1084 1084 if (err < 0) 1085 1085 return err; 1086 1086
+4 -4
drivers/hwmon/lm95241.c
··· 169 169 int shift; 170 170 u8 mask = to_sensor_dev_attr(attr)->index; 171 171 172 - if (strict_strtoul(buf, 10, &val) < 0) 172 + if (kstrtoul(buf, 10, &val) < 0) 173 173 return -EINVAL; 174 174 if (val != 1 && val != 2) 175 175 return -EINVAL; ··· 216 216 struct lm95241_data *data = i2c_get_clientdata(client); 217 217 long val; 218 218 219 - if (strict_strtol(buf, 10, &val) < 0) 219 + if (kstrtol(buf, 10, &val) < 0) 220 220 return -EINVAL; 221 221 if (val < -128000) 222 222 return -EINVAL; ··· 254 254 struct lm95241_data *data = i2c_get_clientdata(client); 255 255 long val; 256 256 257 - if (strict_strtol(buf, 10, &val) < 0) 257 + if (kstrtol(buf, 10, &val) < 0) 258 258 return -EINVAL; 259 259 if (val >= 256000) 260 260 return -EINVAL; ··· 290 290 struct lm95241_data *data = i2c_get_clientdata(client); 291 291 unsigned long val; 292 292 293 - if (strict_strtoul(buf, 10, &val) < 0) 293 + if (kstrtoul(buf, 10, &val) < 0) 294 294 return -EINVAL; 295 295 296 296 data->interval = val * HZ / 1000;
+4 -4
drivers/hwmon/lm95245.c
··· 254 254 int index = to_sensor_dev_attr(attr)->index; 255 255 unsigned long val; 256 256 257 - if (strict_strtoul(buf, 10, &val) < 0) 257 + if (kstrtoul(buf, 10, &val) < 0) 258 258 return -EINVAL; 259 259 260 260 val /= 1000; ··· 279 279 struct lm95245_data *data = i2c_get_clientdata(client); 280 280 unsigned long val; 281 281 282 - if (strict_strtoul(buf, 10, &val) < 0) 282 + if (kstrtoul(buf, 10, &val) < 0) 283 283 return -EINVAL; 284 284 285 285 val /= 1000; ··· 316 316 struct lm95245_data *data = i2c_get_clientdata(client); 317 317 unsigned long val; 318 318 319 - if (strict_strtoul(buf, 10, &val) < 0) 319 + if (kstrtoul(buf, 10, &val) < 0) 320 320 return -EINVAL; 321 321 if (val != 1 && val != 2) 322 322 return -EINVAL; ··· 363 363 struct lm95245_data *data = i2c_get_clientdata(client); 364 364 unsigned long val; 365 365 366 - if (strict_strtoul(buf, 10, &val) < 0) 366 + if (kstrtoul(buf, 10, &val) < 0) 367 367 return -EINVAL; 368 368 369 369 mutex_lock(&data->update_lock);
+1
drivers/hwmon/ltc4261.c
··· 85 85 "Failed to read ADC value: error %d\n", 86 86 val); 87 87 ret = ERR_PTR(val); 88 + data->valid = 0; 88 89 goto abort; 89 90 } 90 91 data->regs[i] = val;
+1 -1
drivers/hwmon/max1111.c
··· 6 6 * Copyright (C) 2004-2005 Richard Purdie 7 7 * 8 8 * Copyright (C) 2008 Marvell International Ltd. 9 - * Eric Miao <eric.miao@marvell.com> 9 + * Eric Miao <eric.miao@marvell.com> 10 10 * 11 11 * This program is free software; you can redistribute it and/or modify 12 12 * it under the terms of the GNU General Public License version 2 as
+1 -1
drivers/hwmon/max16065.c
··· 230 230 int err; 231 231 int limit; 232 232 233 - err = strict_strtoul(buf, 10, &val); 233 + err = kstrtoul(buf, 10, &val); 234 234 if (unlikely(err < 0)) 235 235 return err; 236 236
+4 -4
drivers/hwmon/max6639.c
··· 208 208 unsigned long val; 209 209 int res; 210 210 211 - res = strict_strtoul(buf, 10, &val); 211 + res = kstrtoul(buf, 10, &val); 212 212 if (res) 213 213 return res; 214 214 ··· 241 241 unsigned long val; 242 242 int res; 243 243 244 - res = strict_strtoul(buf, 10, &val); 244 + res = kstrtoul(buf, 10, &val); 245 245 if (res) 246 246 return res; 247 247 ··· 275 275 unsigned long val; 276 276 int res; 277 277 278 - res = strict_strtoul(buf, 10, &val); 278 + res = kstrtoul(buf, 10, &val); 279 279 if (res) 280 280 return res; 281 281 ··· 308 308 unsigned long val; 309 309 int res; 310 310 311 - res = strict_strtoul(buf, 10, &val); 311 + res = kstrtoul(buf, 10, &val); 312 312 if (res) 313 313 return res; 314 314
+1 -1
drivers/hwmon/max6642.c
··· 234 234 struct max6642_data *data = i2c_get_clientdata(client); 235 235 struct sensor_device_attribute_2 *attr2 = to_sensor_dev_attr_2(attr); 236 236 237 - err = strict_strtoul(buf, 10, &val); 237 + err = kstrtoul(buf, 10, &val); 238 238 if (err < 0) 239 239 return err; 240 240
+3 -3
drivers/hwmon/pc87427.c
··· 418 418 unsigned long val; 419 419 int iobase = data->address[LD_FAN]; 420 420 421 - if (strict_strtoul(buf, 10, &val) < 0) 421 + if (kstrtoul(buf, 10, &val) < 0) 422 422 return -EINVAL; 423 423 424 424 mutex_lock(&data->lock); ··· 572 572 int nr = to_sensor_dev_attr(devattr)->index; 573 573 unsigned long val; 574 574 575 - if (strict_strtoul(buf, 10, &val) < 0 || val > 2) 575 + if (kstrtoul(buf, 10, &val) < 0 || val > 2) 576 576 return -EINVAL; 577 577 /* Can't go to automatic mode if it isn't configured */ 578 578 if (val == 2 && !(data->pwm_auto_ok & (1 << nr))) ··· 604 604 int iobase = data->address[LD_FAN]; 605 605 u8 mode; 606 606 607 - if (strict_strtoul(buf, 10, &val) < 0 || val > 0xff) 607 + if (kstrtoul(buf, 10, &val) < 0 || val > 0xff) 608 608 return -EINVAL; 609 609 610 610 mutex_lock(&data->lock);
+5 -4
drivers/hwmon/pmbus/Kconfig
··· 19 19 default y 20 20 help 21 21 If you say yes here you get hardware monitoring support for generic 22 - PMBus devices, including but not limited to ADP4000, BMR450, BMR451, 23 - BMR453, BMR454, NCP4200, and NCP4208. 22 + PMBus devices, including but not limited to ADP4000, BMR453, BMR454, 23 + NCP4200, and NCP4208. 24 24 25 25 This driver can also be built as a module. If so, the module will 26 26 be called pmbus. ··· 113 113 default n 114 114 help 115 115 If you say yes here you get hardware monitoring support for Intersil 116 - ZL2004, ZL2006, ZL2008, ZL2105, ZL2106, ZL6100, and ZL6105 Digital 117 - DC/DC Controllers. 116 + ZL2004, ZL2005, ZL2006, ZL2008, ZL2105, ZL2106, ZL6100, and ZL6105 117 + Digital DC/DC Controllers, as well as for Ericsson BMR450, BMR451, 118 + BMR462, BMR463, and BMR464. 118 119 119 120 This driver can also be built as a module. If so, the module will 120 121 be called zl6100.
+50 -21
drivers/hwmon/pmbus/adm1275.c
··· 170 170 return ret; 171 171 } 172 172 173 + static const struct i2c_device_id adm1275_id[] = { 174 + { "adm1275", adm1275 }, 175 + { "adm1276", adm1276 }, 176 + { } 177 + }; 178 + MODULE_DEVICE_TABLE(i2c, adm1275_id); 179 + 173 180 static int adm1275_probe(struct i2c_client *client, 174 181 const struct i2c_device_id *id) 175 182 { 183 + u8 block_buffer[I2C_SMBUS_BLOCK_MAX + 1]; 176 184 int config, device_config; 177 185 int ret; 178 186 struct pmbus_driver_info *info; 179 187 struct adm1275_data *data; 188 + const struct i2c_device_id *mid; 180 189 181 190 if (!i2c_check_functionality(client->adapter, 182 - I2C_FUNC_SMBUS_READ_BYTE_DATA)) 191 + I2C_FUNC_SMBUS_READ_BYTE_DATA 192 + | I2C_FUNC_SMBUS_BLOCK_DATA)) 183 193 return -ENODEV; 194 + 195 + ret = i2c_smbus_read_block_data(client, PMBUS_MFR_ID, block_buffer); 196 + if (ret < 0) { 197 + dev_err(&client->dev, "Failed to read Manufacturer ID\n"); 198 + return ret; 199 + } 200 + if (ret != 3 || strncmp(block_buffer, "ADI", 3)) { 201 + dev_err(&client->dev, "Unsupported Manufacturer ID\n"); 202 + return -ENODEV; 203 + } 204 + 205 + ret = i2c_smbus_read_block_data(client, PMBUS_MFR_MODEL, block_buffer); 206 + if (ret < 0) { 207 + dev_err(&client->dev, "Failed to read Manufacturer Model\n"); 208 + return ret; 209 + } 210 + for (mid = adm1275_id; mid->name[0]; mid++) { 211 + if (!strncasecmp(mid->name, block_buffer, strlen(mid->name))) 212 + break; 213 + } 214 + if (!mid->name[0]) { 215 + dev_err(&client->dev, "Unsupported device\n"); 216 + return -ENODEV; 217 + } 218 + 219 + if (id->driver_data != mid->driver_data) 220 + dev_notice(&client->dev, 221 + "Device mismatch: Configured %s, detected %s\n", 222 + id->name, mid->name); 223 + 224 + config = i2c_smbus_read_byte_data(client, ADM1275_PMON_CONFIG); 225 + if (config < 0) 226 + return config; 227 + 228 + device_config = i2c_smbus_read_byte_data(client, ADM1275_DEVICE_CONFIG); 229 + if (device_config < 0) 230 + return device_config; 184 231 185 232 data = kzalloc(sizeof(struct adm1275_data), GFP_KERNEL); 186 233 if (!data) 187 234 return -ENOMEM; 188 235 189 - config = i2c_smbus_read_byte_data(client, ADM1275_PMON_CONFIG); 190 - if (config < 0) { 191 - ret = config; 192 - goto err_mem; 193 - } 236 + data->id = mid->driver_data; 194 237 195 - device_config = i2c_smbus_read_byte_data(client, ADM1275_DEVICE_CONFIG); 196 - if (device_config < 0) { 197 - ret = device_config; 198 - goto err_mem; 199 - } 200 - 201 - data->id = id->driver_data; 202 238 info = &data->info; 203 239 204 240 info->pages = 1; ··· 269 233 if (device_config & ADM1275_IOUT_WARN2_SELECT) 270 234 data->have_oc_fault = true; 271 235 272 - switch (id->driver_data) { 236 + switch (data->id) { 273 237 case adm1275: 274 238 if (config & ADM1275_VIN_VOUT_SELECT) 275 239 info->func[0] |= ··· 316 280 kfree(data); 317 281 return 0; 318 282 } 319 - 320 - static const struct i2c_device_id adm1275_id[] = { 321 - { "adm1275", adm1275 }, 322 - { "adm1276", adm1276 }, 323 - { } 324 - }; 325 - MODULE_DEVICE_TABLE(i2c, adm1275_id); 326 283 327 284 static struct i2c_driver adm1275_driver = { 328 285 .driver = {
-2
drivers/hwmon/pmbus/pmbus.c
··· 200 200 */ 201 201 static const struct i2c_device_id pmbus_id[] = { 202 202 {"adp4000", 1}, 203 - {"bmr450", 1}, 204 - {"bmr451", 1}, 205 203 {"bmr453", 1}, 206 204 {"bmr454", 1}, 207 205 {"ncp4200", 1},
+36 -7
drivers/hwmon/pmbus/zl6100.c
··· 28 28 #include <linux/delay.h> 29 29 #include "pmbus.h" 30 30 31 - enum chips { zl2004, zl2006, zl2008, zl2105, zl2106, zl6100, zl6105 }; 31 + enum chips { zl2004, zl2005, zl2006, zl2008, zl2105, zl2106, zl6100, zl6105 }; 32 32 33 33 struct zl6100_data { 34 34 int id; ··· 38 38 39 39 #define to_zl6100_data(x) container_of(x, struct zl6100_data, info) 40 40 41 + #define ZL6100_MFR_CONFIG 0xd0 41 42 #define ZL6100_DEVICE_ID 0xe4 43 + 44 + #define ZL6100_MFR_XTEMP_ENABLE (1 << 7) 42 45 43 46 #define ZL6100_WAIT_TIME 1000 /* uS */ 44 47 ··· 67 64 68 65 if (page || reg >= PMBUS_VIRT_BASE) 69 66 return -ENXIO; 67 + 68 + if (data->id == zl2005) { 69 + /* 70 + * Limit register detection is not reliable on ZL2005. 71 + * Make sure registers are not erroneously detected. 72 + */ 73 + switch (reg) { 74 + case PMBUS_VOUT_OV_WARN_LIMIT: 75 + case PMBUS_VOUT_UV_WARN_LIMIT: 76 + case PMBUS_IOUT_OC_WARN_LIMIT: 77 + return -ENXIO; 78 + } 79 + } 70 80 71 81 zl6100_wait(data); 72 82 ret = pmbus_read_word_data(client, page, reg); ··· 138 122 } 139 123 140 124 static const struct i2c_device_id zl6100_id[] = { 125 + {"bmr450", zl2005}, 126 + {"bmr451", zl2005}, 127 + {"bmr462", zl2008}, 128 + {"bmr463", zl2008}, 129 + {"bmr464", zl2008}, 141 130 {"zl2004", zl2004}, 131 + {"zl2005", zl2005}, 142 132 {"zl2006", zl2006}, 143 133 {"zl2008", zl2008}, 144 134 {"zl2105", zl2105}, ··· 165 143 const struct i2c_device_id *mid; 166 144 167 145 if (!i2c_check_functionality(client->adapter, 168 - I2C_FUNC_SMBUS_READ_BYTE_DATA 146 + I2C_FUNC_SMBUS_READ_WORD_DATA 169 147 | I2C_FUNC_SMBUS_READ_BLOCK_DATA)) 170 148 return -ENODEV; 171 149 ··· 199 177 data->id = mid->driver_data; 200 178 201 179 /* 202 - * ZL2008, ZL2105, and ZL6100 are known to require a wait time 180 + * ZL2005, ZL2008, ZL2105, and ZL6100 are known to require a wait time 203 181 * between I2C accesses. ZL2004 and ZL6105 are known to be safe. 182 + * Other chips have not yet been tested. 204 183 * 205 184 * Only clear the wait time for chips known to be safe. The wait time 206 185 * can be cleared later for additional chips if tests show that it ··· 213 190 /* 214 191 * Since there was a direct I2C device access above, wait before 215 192 * accessing the chip again. 216 - * Set the timestamp, wait, then set it again. This should provide 217 - * enough buffer time to be safe. 218 193 */ 219 194 data->access = ktime_get(); 220 195 zl6100_wait(data); 221 - data->access = ktime_get(); 222 196 223 197 info = &data->info; 224 198 ··· 223 203 info->func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_STATUS_INPUT 224 204 | PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT 225 205 | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT 226 - | PMBUS_HAVE_TEMP | PMBUS_HAVE_TEMP2 | PMBUS_HAVE_STATUS_TEMP; 206 + | PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; 207 + 208 + ret = i2c_smbus_read_word_data(client, ZL6100_MFR_CONFIG); 209 + if (ret < 0) 210 + goto err_mem; 211 + if (ret & ZL6100_MFR_XTEMP_ENABLE) 212 + info->func[0] |= PMBUS_HAVE_TEMP2; 213 + 214 + data->access = ktime_get(); 215 + zl6100_wait(data); 227 216 228 217 info->read_word_data = zl6100_read_word_data; 229 218 info->read_byte_data = zl6100_read_byte_data;
+1 -1
drivers/hwmon/sht15.c
··· 683 683 long value; 684 684 u8 status; 685 685 686 - if (strict_strtol(buf, 10, &value)) 686 + if (kstrtol(buf, 10, &value)) 687 687 return -EINVAL; 688 688 689 689 mutex_lock(&data->read_lock);
+1 -1
drivers/hwmon/tmp102.c
··· 112 112 long val; 113 113 int status; 114 114 115 - if (strict_strtol(buf, 10, &val) < 0) 115 + if (kstrtol(buf, 10, &val) < 0) 116 116 return -EINVAL; 117 117 val = SENSORS_LIMIT(val, -256000, 255000); 118 118
+5 -5
drivers/hwmon/tmp401.c
··· 334 334 long val; 335 335 u16 reg; 336 336 337 - if (strict_strtol(buf, 10, &val)) 337 + if (kstrtol(buf, 10, &val)) 338 338 return -EINVAL; 339 339 340 340 reg = tmp401_temp_to_register(val, data->config); ··· 361 361 long val; 362 362 u16 reg; 363 363 364 - if (strict_strtol(buf, 10, &val)) 364 + if (kstrtol(buf, 10, &val)) 365 365 return -EINVAL; 366 366 367 367 reg = tmp401_temp_to_register(val, data->config); ··· 388 388 long val; 389 389 u8 reg; 390 390 391 - if (strict_strtol(buf, 10, &val)) 391 + if (kstrtol(buf, 10, &val)) 392 392 return -EINVAL; 393 393 394 394 reg = tmp401_crit_temp_to_register(val, data->config); ··· 413 413 long val; 414 414 u8 reg; 415 415 416 - if (strict_strtol(buf, 10, &val)) 416 + if (kstrtol(buf, 10, &val)) 417 417 return -EINVAL; 418 418 419 419 if (data->config & TMP401_CONFIG_RANGE) ··· 447 447 { 448 448 long val; 449 449 450 - if (strict_strtol(buf, 10, &val)) 450 + if (kstrtol(buf, 10, &val)) 451 451 return -EINVAL; 452 452 453 453 if (val != 1) {
+11 -11
drivers/hwmon/w83627ehf.c
··· 937 937 int nr = sensor_attr->index; \ 938 938 unsigned long val; \ 939 939 int err; \ 940 - err = strict_strtoul(buf, 10, &val); \ 940 + err = kstrtoul(buf, 10, &val); \ 941 941 if (err < 0) \ 942 942 return err; \ 943 943 mutex_lock(&data->update_lock); \ ··· 1054 1054 unsigned int reg; 1055 1055 u8 new_div; 1056 1056 1057 - err = strict_strtoul(buf, 10, &val); 1057 + err = kstrtoul(buf, 10, &val); 1058 1058 if (err < 0) 1059 1059 return err; 1060 1060 ··· 1199 1199 int nr = sensor_attr->index; \ 1200 1200 int err; \ 1201 1201 long val; \ 1202 - err = strict_strtol(buf, 10, &val); \ 1202 + err = kstrtol(buf, 10, &val); \ 1203 1203 if (err < 0) \ 1204 1204 return err; \ 1205 1205 mutex_lock(&data->update_lock); \ ··· 1324 1324 int err; 1325 1325 u16 reg; 1326 1326 1327 - err = strict_strtoul(buf, 10, &val); 1327 + err = kstrtoul(buf, 10, &val); 1328 1328 if (err < 0) 1329 1329 return err; 1330 1330 ··· 1351 1351 unsigned long val; 1352 1352 int err; 1353 1353 1354 - err = strict_strtoul(buf, 10, &val); 1354 + err = kstrtoul(buf, 10, &val); 1355 1355 if (err < 0) 1356 1356 return err; 1357 1357 ··· 1376 1376 int err; 1377 1377 u16 reg; 1378 1378 1379 - err = strict_strtoul(buf, 10, &val); 1379 + err = kstrtoul(buf, 10, &val); 1380 1380 if (err < 0) 1381 1381 return err; 1382 1382 ··· 1430 1430 long val; 1431 1431 int err; 1432 1432 1433 - err = strict_strtol(buf, 10, &val); 1433 + err = kstrtol(buf, 10, &val); 1434 1434 if (err < 0) 1435 1435 return err; 1436 1436 ··· 1455 1455 long val; 1456 1456 int err; 1457 1457 1458 - err = strict_strtol(buf, 10, &val); 1458 + err = kstrtol(buf, 10, &val); 1459 1459 if (err < 0) 1460 1460 return err; 1461 1461 ··· 1556 1556 int nr = sensor_attr->index; \ 1557 1557 unsigned long val; \ 1558 1558 int err; \ 1559 - err = strict_strtoul(buf, 10, &val); \ 1559 + err = kstrtoul(buf, 10, &val); \ 1560 1560 if (err < 0) \ 1561 1561 return err; \ 1562 1562 val = SENSORS_LIMIT(val, 1, 255); \ ··· 1595 1595 int nr = sensor_attr->index; \ 1596 1596 unsigned long val; \ 1597 1597 int err; \ 1598 - err = strict_strtoul(buf, 10, &val); \ 1598 + err = kstrtoul(buf, 10, &val); \ 1599 1599 if (err < 0) \ 1600 1600 return err; \ 1601 1601 val = step_time_to_reg(val, data->pwm_mode[nr]); \ ··· 1702 1702 unsigned long val; 1703 1703 u16 reg, mask; 1704 1704 1705 - if (strict_strtoul(buf, 10, &val) || val != 0) 1705 + if (kstrtoul(buf, 10, &val) || val != 0) 1706 1706 return -EINVAL; 1707 1707 1708 1708 mask = to_sensor_dev_attr_2(attr)->nr;
+4 -4
drivers/hwmon/w83791d.c
··· 711 711 int nr = sensor_attr->index; 712 712 unsigned long val; 713 713 714 - if (strict_strtoul(buf, 10, &val)) 714 + if (kstrtoul(buf, 10, &val)) 715 715 return -EINVAL; 716 716 717 717 mutex_lock(&data->update_lock); ··· 756 756 u8 val_shift = 0; 757 757 u8 keep_mask = 0; 758 758 759 - int ret = strict_strtoul(buf, 10, &val); 759 + int ret = kstrtoul(buf, 10, &val); 760 760 761 761 if (ret || val < 1 || val > 3) 762 762 return -EINVAL; ··· 819 819 unsigned long val; 820 820 u8 target_mask; 821 821 822 - if (strict_strtoul(buf, 10, &val)) 822 + if (kstrtoul(buf, 10, &val)) 823 823 return -EINVAL; 824 824 825 825 mutex_lock(&data->update_lock); ··· 863 863 u8 val_shift = 0; 864 864 u8 keep_mask = 0; 865 865 866 - if (strict_strtoul(buf, 10, &val)) 866 + if (kstrtoul(buf, 10, &val)) 867 867 return -EINVAL; 868 868 869 869 switch (nr) {
+1 -1
drivers/hwmon/w83792d.c
··· 749 749 unsigned long val; 750 750 u8 reg; 751 751 752 - if (strict_strtoul(buf, 10, &val) || val != 0) 752 + if (kstrtoul(buf, 10, &val) || val != 0) 753 753 return -EINVAL; 754 754 755 755 mutex_lock(&data->update_lock);
+1 -1
drivers/hwmon/w83793.c
··· 450 450 unsigned long val; 451 451 u8 reg; 452 452 453 - if (strict_strtoul(buf, 10, &val) || val != 0) 453 + if (kstrtoul(buf, 10, &val) || val != 0) 454 454 return -EINVAL; 455 455 456 456 mutex_lock(&data->update_lock);
+16 -16
drivers/hwmon/w83795.c
··· 730 730 u8 beep_bit = 1 << shift; 731 731 unsigned long val; 732 732 733 - if (strict_strtoul(buf, 10, &val) < 0) 733 + if (kstrtoul(buf, 10, &val) < 0) 734 734 return -EINVAL; 735 735 if (val != 0 && val != 1) 736 736 return -EINVAL; ··· 755 755 struct w83795_data *data = i2c_get_clientdata(client); 756 756 unsigned long val; 757 757 758 - if (strict_strtoul(buf, 10, &val) < 0 || val != 0) 758 + if (kstrtoul(buf, 10, &val) < 0 || val != 0) 759 759 return -EINVAL; 760 760 761 761 mutex_lock(&data->update_lock); ··· 801 801 struct w83795_data *data = i2c_get_clientdata(client); 802 802 unsigned long val; 803 803 804 - if (strict_strtoul(buf, 10, &val)) 804 + if (kstrtoul(buf, 10, &val)) 805 805 return -EINVAL; 806 806 val = fan_to_reg(val); 807 807 ··· 863 863 int index = sensor_attr->index; 864 864 unsigned long val; 865 865 866 - if (strict_strtoul(buf, 10, &val) < 0) 866 + if (kstrtoul(buf, 10, &val) < 0) 867 867 return -EINVAL; 868 868 869 869 mutex_lock(&data->update_lock); ··· 924 924 unsigned long val; 925 925 int i; 926 926 927 - if (strict_strtoul(buf, 10, &val) < 0) 927 + if (kstrtoul(buf, 10, &val) < 0) 928 928 return -EINVAL; 929 929 if (val < 1 || val > 2) 930 930 return -EINVAL; ··· 1021 1021 unsigned long channel; 1022 1022 u8 val = index / 2; 1023 1023 1024 - if (strict_strtoul(buf, 10, &channel) < 0 || 1024 + if (kstrtoul(buf, 10, &channel) < 0 || 1025 1025 channel < 1 || channel > 14) 1026 1026 return -EINVAL; 1027 1027 ··· 1088 1088 int index = sensor_attr->index; 1089 1089 unsigned long tmp; 1090 1090 1091 - if (strict_strtoul(buf, 10, &tmp) < 0) 1091 + if (kstrtoul(buf, 10, &tmp) < 0) 1092 1092 return -EINVAL; 1093 1093 1094 1094 switch (nr) { ··· 1149 1149 int index = sensor_attr->index; 1150 1150 unsigned long val; 1151 1151 1152 - if (strict_strtoul(buf, 10, &val) < 0) 1152 + if (kstrtoul(buf, 10, &val) < 0) 1153 1153 return -EINVAL; 1154 1154 1155 1155 mutex_lock(&data->update_lock); ··· 1198 1198 unsigned long val; 1199 1199 u8 tmp; 1200 1200 1201 - if (strict_strtoul(buf, 10, &val) < 0) 1201 + if (kstrtoul(buf, 10, &val) < 0) 1202 1202 return -EINVAL; 1203 1203 val /= 1000; 1204 1204 ··· 1257 1257 int index = sensor_attr->index; 1258 1258 unsigned long val; 1259 1259 1260 - if (strict_strtoul(buf, 10, &val) < 0) 1260 + if (kstrtoul(buf, 10, &val) < 0) 1261 1261 return -EINVAL; 1262 1262 1263 1263 mutex_lock(&data->update_lock); ··· 1293 1293 int index = sensor_attr->index; 1294 1294 unsigned long val; 1295 1295 1296 - if (strict_strtoul(buf, 10, &val) < 0) 1296 + if (kstrtoul(buf, 10, &val) < 0) 1297 1297 return -EINVAL; 1298 1298 val /= 1000; 1299 1299 ··· 1333 1333 struct w83795_data *data = i2c_get_clientdata(client); 1334 1334 long tmp; 1335 1335 1336 - if (strict_strtol(buf, 10, &tmp) < 0) 1336 + if (kstrtol(buf, 10, &tmp) < 0) 1337 1337 return -EINVAL; 1338 1338 1339 1339 mutex_lock(&data->update_lock); ··· 1394 1394 struct w83795_data *data = i2c_get_clientdata(client); 1395 1395 long tmp; 1396 1396 1397 - if (strict_strtol(buf, 10, &tmp) < 0) 1397 + if (kstrtol(buf, 10, &tmp) < 0) 1398 1398 return -EINVAL; 1399 1399 1400 1400 mutex_lock(&data->update_lock); ··· 1436 1436 unsigned long val; 1437 1437 u8 tmp; 1438 1438 1439 - if (strict_strtoul(buf, 10, &val) < 0) 1439 + if (kstrtoul(buf, 10, &val) < 0) 1440 1440 return -EINVAL; 1441 1441 if ((val != 4) && (val != 3)) 1442 1442 return -EINVAL; ··· 1512 1512 u8 tmp; 1513 1513 u8 lsb_idx; 1514 1514 1515 - if (strict_strtoul(buf, 10, &val) < 0) 1515 + if (kstrtoul(buf, 10, &val) < 0) 1516 1516 return -EINVAL; 1517 1517 val = in_to_reg(index, val); 1518 1518 ··· 1569 1569 struct w83795_data *data = i2c_get_clientdata(client); 1570 1570 unsigned long val; 1571 1571 1572 - if (strict_strtoul(buf, 10, &val) < 0) 1572 + if (kstrtoul(buf, 10, &val) < 0) 1573 1573 return -EINVAL; 1574 1574 1575 1575 switch (nr) {