struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
        struct adm1029_data *data = adm1029_update_device(dev);
        u16 val;
-       if (data->fan[attr->index] == 0 || data->fan_div[attr->index] == 0
+       if (data->fan[attr->index] == 0
+           || (data->fan_div[attr->index] & 0xC0) == 0
            || data->fan[attr->index] == 255) {
                return sprintf(buf, "0\n");
        }
 {
        struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
        struct adm1029_data *data = adm1029_update_device(dev);
-       if (data->fan_div[attr->index] == 0)
+       if ((data->fan_div[attr->index] & 0xC0) == 0)
                return sprintf(buf, "0\n");
        return sprintf(buf, "%d\n", DIV_FROM_REG(data->fan_div[attr->index]));
 }