/* fan4 and fan5 share some pins with the GPIO and serial flash */
 
-       fan5pin = superio_inb(sio_data->sioreg, 0x24) & 0x2;
-       fan4pin = superio_inb(sio_data->sioreg, 0x29) & 0x6;
+       fan5pin = !(superio_inb(sio_data->sioreg, 0x24) & 0x2);
+       fan4pin = !(superio_inb(sio_data->sioreg, 0x29) & 0x6);
        superio_exit(sio_data->sioreg);
 
        /* It looks like fan4 and fan5 pins can be alternatively used
 
        data->has_fan = 0x07; /* fan1, fan2 and fan3 */
        i = w83627ehf_read_value(data, W83627EHF_REG_FANDIV1);
-       if ((i & (1 << 2)) && (!fan4pin))
+       if ((i & (1 << 2)) && fan4pin)
                data->has_fan |= (1 << 3);
-       if (!(i & (1 << 1)) && (!fan5pin))
+       if (!(i & (1 << 1)) && fan5pin)
                data->has_fan |= (1 << 4);
 
        /* Read fan clock dividers immediately */