diff options
-rw-r--r-- | drivers/hwmon/w83795.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/drivers/hwmon/w83795.c b/drivers/hwmon/w83795.c index 393f1025f6c8..76e89c7bc465 100644 --- a/drivers/hwmon/w83795.c +++ b/drivers/hwmon/w83795.c @@ -1470,7 +1470,7 @@ store_sf_setup(struct device *dev, struct device_attribute *attr, SENSOR_ATTR_2(fan##index##_beep, S_IWUSR | S_IRUGO, \ show_alarm_beep, store_beep, BEEP_ENABLE, index + 31) } -#define SENSOR_ATTR_PWM(index) \ +#define SENSOR_ATTR_PWM(index) { \ SENSOR_ATTR_2(pwm##index, S_IWUSR | S_IRUGO, show_pwm, \ store_pwm, PWM_OUTPUT, index - 1), \ SENSOR_ATTR_2(pwm##index##_nonstop, S_IWUSR | S_IRUGO, \ @@ -1482,7 +1482,7 @@ store_sf_setup(struct device *dev, struct device_attribute *attr, SENSOR_ATTR_2(fan##index##_div, S_IWUSR | S_IRUGO, \ show_pwm, store_pwm, PWM_DIV, index - 1), \ SENSOR_ATTR_2(pwm##index##_enable, S_IWUSR | S_IRUGO, \ - show_pwm_enable, store_pwm_enable, NOT_USED, index - 1) + show_pwm_enable, store_pwm_enable, NOT_USED, index - 1) } #define SENSOR_ATTR_FANIN_TARGET(index) \ SENSOR_ATTR_2(speed_cruise##index##_target, S_IWUSR | S_IRUGO, \ @@ -1641,13 +1641,11 @@ static struct sensor_device_attribute_2 w83795_static[] = { SENSOR_ATTR_FANIN_TARGET(6), SENSOR_ATTR_FANIN_TARGET(7), SENSOR_ATTR_FANIN_TARGET(8), - SENSOR_ATTR_PWM(1), - SENSOR_ATTR_PWM(2), }; -/* all registers existed in 795g than 795adg, - * like PWM3 - PWM8 */ -static struct sensor_device_attribute_2 w83795_left_reg[] = { +static struct sensor_device_attribute_2 w83795_pwm[][6] = { + SENSOR_ATTR_PWM(1), + SENSOR_ATTR_PWM(2), SENSOR_ATTR_PWM(3), SENSOR_ATTR_PWM(4), SENSOR_ATTR_PWM(5), @@ -1809,9 +1807,9 @@ static int w83795_handle_files(struct device *dev, int (*fn)(struct device *, return err; } - if (data->chip_type == w83795g) { - for (i = 0; i < ARRAY_SIZE(w83795_left_reg); i++) { - err = fn(dev, &w83795_left_reg[i].dev_attr); + for (i = 0; i < data->has_pwm; i++) { + for (j = 0; j < ARRAY_SIZE(w83795_pwm[0]); j++) { + err = fn(dev, &w83795_pwm[i][j].dev_attr); if (err) return err; } |