aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorChris D Schimp <silverchris@gmail.com>2012-02-20 17:44:59 -0500
committerGuenter Roeck <guenter.roeck@ericsson.com>2012-02-21 14:30:45 -0800
commit2f2da1ac0ba5b6cc6e1957c4da5ff20e67d8442b (patch)
tree65b73e866a23e28baa613288a6ca2016d78de580 /drivers
parenthwmon: (max6639) Fix FAN_FROM_REG calculation (diff)
downloadlinux-dev-2f2da1ac0ba5b6cc6e1957c4da5ff20e67d8442b.tar.xz
linux-dev-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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/hwmon/max6639.c16
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),