diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-04-04 09:03:41 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-04-04 09:03:41 -0700 |
commit | 20d9d9a0544436b1b8c94689c01d746d6bd5525c (patch) | |
tree | 3a6db09d7855c77b1bc70d46fa6263ffaeef10c1 /drivers/hwmon/adm1031.c | |
parent | 7114a72ff850ac6f8f5336c510a5a874c9eadf42 (diff) | |
parent | e16de9137c8beab02d78fb4fa82bb96e9f3d0ac3 (diff) |
Merge tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
Pull hwmon patches from Guenter Roeck:
- Fix crash in ad7314 driver
- Add support for AMD Trinity CPUs to k10temp driver
- Fix __initdata/__initconst mixup in w83627ehf driver
- Fix runtime warnings in acpi_power_meter and max6639 drivers
- Fix build warnings in adm1031, f75375s, sht15, and gpio-fan drivers
* tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
hwmon: (ad7314) Adds missing spi_dev initialization
hwmon: (k10temp) Add support for AMD Trinity CPUs
hwmon: (w83627ehf) mark const init data with __initconst instead of __initdata
hwmon: (acpi_power_meter) fix lockdep spew due to non-static lock class
hwmon: (adm1031) Fix compiler warning
hwmon: (f75375s) Fix warning message seen in some configurations
hwmon: (max6639) Convert to dev_pm_ops
hwmon: (sht15) Fix Kconfig dependencies
hwmon: (gpio-fan) Fix Kconfig dependencies
Diffstat (limited to 'drivers/hwmon/adm1031.c')
-rw-r--r-- | drivers/hwmon/adm1031.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/drivers/hwmon/adm1031.c b/drivers/hwmon/adm1031.c index ff37363ea5bc..44e1fd7f3d81 100644 --- a/drivers/hwmon/adm1031.c +++ b/drivers/hwmon/adm1031.c @@ -233,18 +233,15 @@ static const auto_chan_table_t auto_channel_select_table_adm1030 = { * nearest match if no exact match where found. */ static int -get_fan_auto_nearest(struct adm1031_data *data, - int chan, u8 val, u8 reg, u8 *new_reg) +get_fan_auto_nearest(struct adm1031_data *data, int chan, u8 val, u8 reg) { int i; int first_match = -1, exact_match = -1; u8 other_reg_val = (*data->chan_select_table)[FAN_CHAN_FROM_REG(reg)][chan ? 0 : 1]; - if (val == 0) { - *new_reg = 0; + if (val == 0) return 0; - } for (i = 0; i < 8; i++) { if ((val == (*data->chan_select_table)[i][chan]) && @@ -264,13 +261,11 @@ get_fan_auto_nearest(struct adm1031_data *data, } if (exact_match >= 0) - *new_reg = exact_match; + return exact_match; else if (first_match >= 0) - *new_reg = first_match; - else - return -EINVAL; + return first_match; - return 0; + return -EINVAL; } static ssize_t show_fan_auto_channel(struct device *dev, @@ -301,11 +296,12 @@ set_fan_auto_channel(struct device *dev, struct device_attribute *attr, mutex_lock(&data->update_lock); - ret = get_fan_auto_nearest(data, nr, val, data->conf1, ®); - if (ret) { + ret = get_fan_auto_nearest(data, nr, val, data->conf1); + if (ret < 0) { mutex_unlock(&data->update_lock); return ret; } + reg = ret; data->conf1 = FAN_CHAN_TO_REG(reg, data->conf1); if ((data->conf1 & ADM1031_CONF1_AUTO_MODE) ^ (old_fan_mode & ADM1031_CONF1_AUTO_MODE)) { |