vserver 1.9.5.x5
[linux-2.6.git] / drivers / i2c / chips / adm1026.c
index e2d13fa..58f8acd 100644 (file)
@@ -452,6 +452,14 @@ void adm1026_init_client(struct i2c_client *client)
                client->id, value);
        data->config1 = value;
        adm1026_write_value(client, ADM1026_REG_CONFIG1, value);
+
+       /* initialize fan_div[] to hardware defaults */
+       value = adm1026_read_value(client, ADM1026_REG_FAN_DIV_0_3) |
+               (adm1026_read_value(client, ADM1026_REG_FAN_DIV_4_7) << 8);
+       for (i = 0;i <= 7;++i) {
+               data->fan_div[i] = DIV_FROM_REG(value & 0x03);
+               value >>= 2;
+       }
 }
 
 void adm1026_print_gpio(struct i2c_client *client)
@@ -459,8 +467,7 @@ void adm1026_print_gpio(struct i2c_client *client)
        struct adm1026_data *data = i2c_get_clientdata(client);
        int  i;
 
-       dev_dbg(&client->dev, "(%d): GPIO config is:",
-                           client->id);
+       dev_dbg(&client->dev, "(%d): GPIO config is:", client->id);
        for (i = 0;i <= 7;++i) {
                if (data->config2 & (1 << i)) {
                        dev_dbg(&client->dev, "\t(%d): %sGP%s%d\n", client->id,