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

hwmon: (w83627ehf) Remove code not needed after nct677* removal

Now the nct677* are gone, we can clean up some flags that are
always the same now and simplify some code.

Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org>
Link: https://lore.kernel.org/r/20191225023225.2785-3-linux@treblig.org
Signed-off-by: Guenter Roeck <linux@roeck-us.net>

authored by

Dr. David Alan Gilbert and committed by
Guenter Roeck
69595502 3207408a

+32 -106
+32 -106
drivers/hwmon/w83627ehf.c
··· 65 65 module_param(force_id, ushort, 0); 66 66 MODULE_PARM_DESC(force_id, "Override the detected device ID"); 67 67 68 - static unsigned short fan_debounce; 69 - module_param(fan_debounce, ushort, 0); 70 - MODULE_PARM_DESC(fan_debounce, "Enable debouncing for fan RPM signal"); 71 - 72 68 #define DRVNAME "w83627ehf" 73 69 74 70 /* ··· 305 309 struct w83627ehf_data { 306 310 int addr; /* IO base of hw monitor block */ 307 311 const char *name; 308 - enum kinds kind; /* Convenience copy of sio_data->kind */ 309 312 310 313 struct mutex lock; 311 314 ··· 315 320 u8 temp_src[NUM_REG_TEMP]; 316 321 const char * const *temp_label; 317 322 318 - const u16 *REG_PWM; 319 - const u16 *REG_TARGET; 320 - const u16 *REG_FAN; 321 - const u16 *REG_FAN_MIN; 322 - const u16 *REG_FAN_START_OUTPUT; 323 - const u16 *REG_FAN_STOP_OUTPUT; 324 - const u16 *REG_FAN_STOP_TIME; 325 323 const u16 *REG_FAN_MAX_OUTPUT; 326 324 const u16 *REG_FAN_STEP_OUTPUT; 327 325 const u16 *scale_in; 328 - 329 - unsigned int (*fan_from_reg)(u16 reg, unsigned int divreg); 330 - unsigned int (*fan_from_reg_min)(u16 reg, unsigned int divreg); 331 326 332 327 struct mutex update_lock; 333 328 char valid; /* !=0 if following fields are valid */ ··· 334 349 u8 fan_div[5]; 335 350 u8 has_fan; /* some fan inputs can be disabled */ 336 351 u8 has_fan_min; /* some fans don't have min register */ 337 - bool has_fan_div; 338 352 u8 temp_type[3]; 339 353 s8 temp_offset[3]; 340 354 s16 temp[9]; ··· 511 527 } 512 528 } 513 529 514 - static void w83627ehf_write_fan_div_common(struct device *dev, 515 - struct w83627ehf_data *data, int nr) 516 - { 517 - w83627ehf_write_fan_div(data, nr); 518 - } 519 - 520 530 static void w83627ehf_update_fan_div(struct w83627ehf_data *data) 521 531 { 522 532 int i; ··· 536 558 } 537 559 } 538 560 539 - static void w83627ehf_update_fan_div_common(struct device *dev, 540 - struct w83627ehf_data *data) 541 - { 542 - w83627ehf_update_fan_div(data); 543 - } 544 - 545 561 static void w83627ehf_update_pwm(struct w83627ehf_data *data) 546 562 { 547 563 int i; ··· 556 584 ((pwmcfg >> W83627EHF_PWM_MODE_SHIFT[i]) & 1) ? 0 : 1; 557 585 data->pwm_enable[i] = ((pwmcfg >> W83627EHF_PWM_ENABLE_SHIFT[i]) 558 586 & 3) + 1; 559 - data->pwm[i] = w83627ehf_read_value(data, data->REG_PWM[i]); 587 + data->pwm[i] = w83627ehf_read_value(data, W83627EHF_REG_PWM[i]); 560 588 561 589 data->tolerance[i] = (tolerance >> (i == 1 ? 4 : 0)) & 0x0f; 562 590 } 563 - } 564 - 565 - static void w83627ehf_update_pwm_common(struct device *dev, 566 - struct w83627ehf_data *data) 567 - { 568 - w83627ehf_update_pwm(data); 569 591 } 570 592 571 593 static struct w83627ehf_data *w83627ehf_update_device(struct device *dev) ··· 572 606 if (time_after(jiffies, data->last_updated + HZ + HZ/2) 573 607 || !data->valid) { 574 608 /* Fan clock dividers */ 575 - w83627ehf_update_fan_div_common(dev, data); 609 + w83627ehf_update_fan_div(data); 576 610 577 611 /* Measured voltages and limits */ 578 612 for (i = 0; i < data->in_num; i++) { ··· 594 628 if (!(data->has_fan & (1 << i))) 595 629 continue; 596 630 597 - reg = w83627ehf_read_value(data, data->REG_FAN[i]); 598 - data->rpm[i] = data->fan_from_reg(reg, 599 - data->fan_div[i]); 631 + reg = w83627ehf_read_value(data, W83627EHF_REG_FAN[i]); 632 + data->rpm[i] = fan_from_reg8(reg, data->fan_div[i]); 600 633 601 634 if (data->has_fan_min & (1 << i)) 602 635 data->fan_min[i] = w83627ehf_read_value(data, 603 - data->REG_FAN_MIN[i]); 636 + W83627EHF_REG_FAN_MIN[i]); 604 637 605 638 /* 606 639 * If we failed to measure the fan speed and clock 607 640 * divider can be increased, let's try that for next 608 641 * time 609 642 */ 610 - if (data->has_fan_div 611 - && reg >= 0xff 612 - && data->fan_div[i] < 0x07) { 643 + if (reg >= 0xff && data->fan_div[i] < 0x07) { 613 644 dev_dbg(dev, 614 645 "Increasing fan%d clock divider from %u to %u\n", 615 646 i + 1, div_from_reg(data->fan_div[i]), 616 647 div_from_reg(data->fan_div[i] + 1)); 617 648 data->fan_div[i]++; 618 - w83627ehf_write_fan_div_common(dev, data, i); 649 + w83627ehf_write_fan_div(data, i); 619 650 /* Preserve min limit if possible */ 620 651 if ((data->has_fan_min & (1 << i)) 621 652 && data->fan_min[i] >= 2 622 653 && data->fan_min[i] != 255) 623 654 w83627ehf_write_value(data, 624 - data->REG_FAN_MIN[i], 655 + W83627EHF_REG_FAN_MIN[i], 625 656 (data->fan_min[i] /= 2)); 626 657 } 627 658 } 628 659 629 - w83627ehf_update_pwm_common(dev, data); 660 + w83627ehf_update_pwm(data); 630 661 631 662 for (i = 0; i < data->pwm_num; i++) { 632 663 if (!(data->has_fan & (1 << i))) ··· 631 668 632 669 data->fan_start_output[i] = 633 670 w83627ehf_read_value(data, 634 - data->REG_FAN_START_OUTPUT[i]); 671 + W83627EHF_REG_FAN_START_OUTPUT[i]); 635 672 data->fan_stop_output[i] = 636 673 w83627ehf_read_value(data, 637 - data->REG_FAN_STOP_OUTPUT[i]); 674 + W83627EHF_REG_FAN_STOP_OUTPUT[i]); 638 675 data->fan_stop_time[i] = 639 676 w83627ehf_read_value(data, 640 - data->REG_FAN_STOP_TIME[i]); 677 + W83627EHF_REG_FAN_STOP_TIME[i]); 641 678 642 679 if (data->REG_FAN_MAX_OUTPUT && 643 680 data->REG_FAN_MAX_OUTPUT[i] != 0xff) ··· 653 690 654 691 data->target_temp[i] = 655 692 w83627ehf_read_value(data, 656 - data->REG_TARGET[i]) & 693 + W83627EHF_REG_TARGET[i]) & 657 694 (data->pwm_mode[i] == 1 ? 0x7f : 0xff); 658 695 } 659 696 ··· 726 763 return -EINVAL; 727 764 728 765 mutex_lock(&data->update_lock); 729 - if (!data->has_fan_div) { 730 - /* 731 - * Only NCT6776F for now, so we know that this is a 13 bit 732 - * register 733 - */ 734 - if (!val) { 735 - val = 0xff1f; 736 - } else { 737 - if (val > 1350000U) 738 - val = 135000U; 739 - val = 1350000U / val; 740 - val = (val & 0x1f) | ((val << 3) & 0xff00); 741 - } 742 - data->fan_min[channel] = val; 743 - goto done; /* Leave fan divider alone */ 744 - } 745 766 if (!val) { 746 767 /* No min limit, alarm disabled */ 747 768 data->fan_min[channel] = 255; ··· 741 794 new_div = 7; /* 128 == (1 << 7) */ 742 795 dev_warn(dev, 743 796 "fan%u low limit %lu below minimum %u, set to minimum\n", 744 - channel + 1, val, data->fan_from_reg_min(254, 7)); 797 + channel + 1, val, fan_from_reg8(254, 7)); 745 798 } else if (!reg) { 746 799 /* 747 800 * Speed above this value cannot possibly be represented, ··· 751 804 new_div = 0; /* 1 == (1 << 0) */ 752 805 dev_warn(dev, 753 806 "fan%u low limit %lu above maximum %u, set to maximum\n", 754 - channel + 1, val, data->fan_from_reg_min(1, 0)); 807 + channel + 1, val, fan_from_reg8(1, 0)); 755 808 } else { 756 809 /* 757 810 * Automatically pick the best divider, i.e. the one such ··· 775 828 channel + 1, div_from_reg(data->fan_div[channel]), 776 829 div_from_reg(new_div)); 777 830 data->fan_div[channel] = new_div; 778 - w83627ehf_write_fan_div_common(dev, data, channel); 831 + w83627ehf_write_fan_div(data, channel); 779 832 /* Give the chip time to sample a new speed value */ 780 833 data->last_updated = jiffies; 781 834 } 782 - done: 783 - w83627ehf_write_value(data, data->REG_FAN_MIN[channel], 835 + 836 + w83627ehf_write_value(data, W83627EHF_REG_FAN_MIN[channel], 784 837 data->fan_min[channel]); 785 838 mutex_unlock(&data->update_lock); 786 839 ··· 842 895 843 896 mutex_lock(&data->update_lock); 844 897 data->pwm[channel] = val; 845 - w83627ehf_write_value(data, data->REG_PWM[channel], val); 898 + w83627ehf_write_value(data, W83627EHF_REG_PWM[channel], val); 846 899 mutex_unlock(&data->update_lock); 847 900 return 0; 848 901 } ··· 901 954 902 955 mutex_lock(&data->update_lock); 903 956 data->target_temp[nr] = val; 904 - w83627ehf_write_value(data, data->REG_TARGET[nr], val); 957 + w83627ehf_write_value(data, W83627EHF_REG_TARGET[nr], val); 905 958 mutex_unlock(&data->update_lock); 906 959 return count; 907 960 } ··· 982 1035 val = clamp_val(val, 1, 255); \ 983 1036 mutex_lock(&data->update_lock); \ 984 1037 data->reg[nr] = val; \ 985 - w83627ehf_write_value(data, data->REG_##REG[nr], val); \ 1038 + w83627ehf_write_value(data, REG[nr], val); \ 986 1039 mutex_unlock(&data->update_lock); \ 987 1040 return count; \ 988 1041 } 989 1042 990 - fan_functions(fan_start_output, FAN_START_OUTPUT) 991 - fan_functions(fan_stop_output, FAN_STOP_OUTPUT) 992 - fan_functions(fan_max_output, FAN_MAX_OUTPUT) 993 - fan_functions(fan_step_output, FAN_STEP_OUTPUT) 1043 + fan_functions(fan_start_output, W83627EHF_REG_FAN_START_OUTPUT) 1044 + fan_functions(fan_stop_output, W83627EHF_REG_FAN_STOP_OUTPUT) 1045 + fan_functions(fan_max_output, data->REG_FAN_MAX_OUTPUT) 1046 + fan_functions(fan_step_output, data->REG_FAN_STEP_OUTPUT) 994 1047 995 1048 #define fan_time_functions(reg, REG) \ 996 1049 static ssize_t show_##reg(struct device *dev, struct device_attribute *attr, \ ··· 1021 1074 val = step_time_to_reg(val, data->pwm_mode[nr]); \ 1022 1075 mutex_lock(&data->update_lock); \ 1023 1076 data->reg[nr] = val; \ 1024 - w83627ehf_write_value(data, data->REG_##REG[nr], val); \ 1077 + w83627ehf_write_value(data, REG[nr], val); \ 1025 1078 mutex_unlock(&data->update_lock); \ 1026 1079 return count; \ 1027 1080 } \ 1028 1081 1029 - fan_time_functions(fan_stop_time, FAN_STOP_TIME) 1082 + fan_time_functions(fan_stop_time, W83627EHF_REG_FAN_STOP_TIME) 1030 1083 1031 1084 static SENSOR_DEVICE_ATTR(pwm4_stop_time, 0644, show_fan_stop_time, 1032 1085 store_fan_stop_time, 3); ··· 1502 1555 *val = data->rpm[channel]; 1503 1556 return 0; 1504 1557 case hwmon_fan_min: 1505 - *val = data->fan_from_reg_min(data->fan_min[channel], 1506 - data->fan_div[channel]); 1558 + *val = fan_from_reg8(data->fan_min[channel], 1559 + data->fan_div[channel]); 1507 1560 return 0; 1508 1561 case hwmon_fan_div: 1509 1562 *val = div_from_reg(data->fan_div[channel]); ··· 1728 1781 mutex_init(&data->lock); 1729 1782 mutex_init(&data->update_lock); 1730 1783 data->name = w83627ehf_device_names[sio_data->kind]; 1731 - data->kind = sio_data->kind; 1732 1784 data->bank = 0xff; /* Force initial bank selection */ 1733 1785 platform_set_drvdata(pdev, data); 1734 1786 ··· 1862 1916 } 1863 1917 1864 1918 if (sio_data->kind == w83667hg_b) { 1865 - data->has_fan_div = true; 1866 - data->fan_from_reg = fan_from_reg8; 1867 - data->fan_from_reg_min = fan_from_reg8; 1868 - data->REG_PWM = W83627EHF_REG_PWM; 1869 - data->REG_TARGET = W83627EHF_REG_TARGET; 1870 - data->REG_FAN = W83627EHF_REG_FAN; 1871 - data->REG_FAN_MIN = W83627EHF_REG_FAN_MIN; 1872 - data->REG_FAN_START_OUTPUT = W83627EHF_REG_FAN_START_OUTPUT; 1873 - data->REG_FAN_STOP_OUTPUT = W83627EHF_REG_FAN_STOP_OUTPUT; 1874 - data->REG_FAN_STOP_TIME = W83627EHF_REG_FAN_STOP_TIME; 1875 1919 data->REG_FAN_MAX_OUTPUT = 1876 1920 W83627EHF_REG_FAN_MAX_OUTPUT_W83667_B; 1877 1921 data->REG_FAN_STEP_OUTPUT = 1878 1922 W83627EHF_REG_FAN_STEP_OUTPUT_W83667_B; 1879 1923 } else { 1880 - data->has_fan_div = true; 1881 - data->fan_from_reg = fan_from_reg8; 1882 - data->fan_from_reg_min = fan_from_reg8; 1883 - data->REG_PWM = W83627EHF_REG_PWM; 1884 - data->REG_TARGET = W83627EHF_REG_TARGET; 1885 - data->REG_FAN = W83627EHF_REG_FAN; 1886 - data->REG_FAN_MIN = W83627EHF_REG_FAN_MIN; 1887 - data->REG_FAN_START_OUTPUT = W83627EHF_REG_FAN_START_OUTPUT; 1888 - data->REG_FAN_STOP_OUTPUT = W83627EHF_REG_FAN_STOP_OUTPUT; 1889 - data->REG_FAN_STOP_TIME = W83627EHF_REG_FAN_STOP_TIME; 1890 1924 data->REG_FAN_MAX_OUTPUT = 1891 1925 W83627EHF_REG_FAN_MAX_OUTPUT_COMMON; 1892 1926 data->REG_FAN_STEP_OUTPUT = ··· 1943 2017 superio_exit(sio_data->sioreg); 1944 2018 1945 2019 /* Read fan clock dividers immediately */ 1946 - w83627ehf_update_fan_div_common(dev, data); 2020 + w83627ehf_update_fan_div(data); 1947 2021 1948 2022 /* Read pwm data to save original values */ 1949 - w83627ehf_update_pwm_common(dev, data); 2023 + w83627ehf_update_pwm(data); 1950 2024 for (i = 0; i < data->pwm_num; i++) 1951 2025 data->pwm_enable_orig[i] = data->pwm_enable[i]; 1952 2026 ··· 2008 2082 if (!(data->has_fan_min & (1 << i))) 2009 2083 continue; 2010 2084 2011 - w83627ehf_write_value(data, data->REG_FAN_MIN[i], 2085 + w83627ehf_write_value(data, W83627EHF_REG_FAN_MIN[i], 2012 2086 data->fan_min[i]); 2013 2087 } 2014 2088