hwmon/w83793: Fix the fan input detection
authorRudolf Marek <r.marek@assembler.cz>
Thu, 18 Jan 2007 21:14:24 +0000 (22:14 +0100)
committerJean Delvare <khali@arrakis.delvare>
Thu, 18 Jan 2007 21:14:24 +0000 (22:14 +0100)
Catch the cases when alternative pins are used to route the
fan9-12 input.

Signed-off-by: Rudolf Marek <r.marek@assembler.cz>
Signed-off-by: Gong Jun <jgong@winbond.com>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
drivers/hwmon/w83793.c

index c2b7834ecaa96613984411c687bdd619fd86180e..7cadef8cd87ded58d9fe979b8765a8e3aaf22b7c 100644 (file)
@@ -1327,6 +1327,20 @@ static int w83793_detect(struct i2c_adapter *adapter, int address, int kind)
                data->has_pwm |= 0x80;
        }
 
+       tmp = w83793_read_value(client, W83793_REG_FANIN_SEL);
+       if ((tmp & 0x01) && (val & 0x08)) {     /* fan 9, second location */
+               data->has_fan |= 0x100;
+       }
+       if ((tmp & 0x02) && (val & 0x10)) {     /* fan 10, second location */
+               data->has_fan |= 0x200;
+       }
+       if ((tmp & 0x04) && (val & 0x20)) {     /* fan 11, second location */
+               data->has_fan |= 0x400;
+       }
+       if ((tmp & 0x08) && (val & 0x40)) {     /* fan 12, second location */
+               data->has_fan |= 0x800;
+       }
+
        /* check the temp1-6 mode, ignore former AMDSI selected inputs */
        tmp = w83793_read_value(client,W83793_REG_TEMP_MODE[0]);
        if (tmp & 0x01)