diff options
author | Chris D Schimp <silverchris@gmail.com> | 2012-02-20 17:44:59 -0500 |
---|---|---|
committer | Guenter Roeck <guenter.roeck@ericsson.com> | 2012-02-21 14:30:45 -0800 |
commit | 2f2da1ac0ba5b6cc6e1957c4da5ff20e67d8442b (patch) | |
tree | 65b73e866a23e28baa613288a6ca2016d78de580 | |
parent | b63d97a36edb1aecf8c13e5f5783feff4d64c24b (diff) | |
download | talos-op-linux-2f2da1ac0ba5b6cc6e1957c4da5ff20e67d8442b.tar.gz talos-op-linux-2f2da1ac0ba5b6cc6e1957c4da5ff20e67d8442b.zip |
hwmon: (max6639) Fix PPR register initialization to set both channels
Initialize PPR register for both channels, and set correct PPR register bits.
Also remove unnecessary variable initializations.
Signed-off-by: Chris D Schimp <silverchris@gmail.com>
[guenter.roeck@ericsson.com: Merged two patches into one]
Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
Cc: stable@vger.kernel.org # 3.0+
Acked-by: Roland Stigge <stigge@antcom.de>
-rw-r--r-- | drivers/hwmon/max6639.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/hwmon/max6639.c b/drivers/hwmon/max6639.c index 13e58a1992cf..a6760bacd915 100644 --- a/drivers/hwmon/max6639.c +++ b/drivers/hwmon/max6639.c @@ -429,9 +429,9 @@ static int max6639_init_client(struct i2c_client *client) struct max6639_data *data = i2c_get_clientdata(client); struct max6639_platform_data *max6639_info = client->dev.platform_data; - int i = 0; + int i; int rpm_range = 1; /* default: 4000 RPM */ - int err = 0; + int err; /* Reset chip to default values, see below for GCONFIG setup */ err = i2c_smbus_write_byte_data(client, MAX6639_REG_GCONFIG, @@ -446,11 +446,6 @@ static int max6639_init_client(struct i2c_client *client) else data->ppr = 2; data->ppr -= 1; - err = i2c_smbus_write_byte_data(client, - MAX6639_REG_FAN_PPR(i), - data->ppr << 5); - if (err) - goto exit; if (max6639_info) rpm_range = rpm_range_to_reg(max6639_info->rpm_range); @@ -458,6 +453,13 @@ static int max6639_init_client(struct i2c_client *client) for (i = 0; i < 2; i++) { + /* Set Fan pulse per revolution */ + err = i2c_smbus_write_byte_data(client, + MAX6639_REG_FAN_PPR(i), + data->ppr << 6); + if (err) + goto exit; + /* Fans config PWM, RPM */ err = i2c_smbus_write_byte_data(client, MAX6639_REG_FAN_CONFIG1(i), |