diff --git a/prog/sensors/chips.c b/prog/sensors/chips.c index 239a5b9f..57a17f97 100644 --- a/prog/sensors/chips.c +++ b/prog/sensors/chips.c @@ -3916,44 +3916,33 @@ void print_smsc47m1(const sensors_chip_name *name) void print_pc87360(const sensors_chip_name *name) { char *label = NULL; - double cur, min, fdiv; + double cur, min, fdiv, tmp; int status, valid; - if (!sensors_get_feature(*name, SENSORS_PC87360_FAN1_STATUS, &cur)) - status = cur + 0.5; - else { - printf("ERROR: Can't get FAN1 status data!\n"); - status = 0; - } - if (!sensors_get_label_and_valid(*name, SENSORS_PC87360_FAN1, &label, &valid) && !sensors_get_feature(*name, SENSORS_PC87360_FAN1, &cur) && !sensors_get_feature(*name, SENSORS_PC87360_FAN1_DIV, &fdiv) - && !sensors_get_feature(*name, SENSORS_PC87360_FAN1_MIN, &min)) { + && !sensors_get_feature(*name, SENSORS_PC87360_FAN1_MIN, &min) + && !sensors_get_feature(*name, SENSORS_PC87360_FAN1_STATUS, &tmp)) { if (valid) { print_label(label, 10); + status = tmp + 0.5; printf("%4.0f RPM (min = %4.0f RPM, div = %1.0f) %s\n", cur, min, fdiv, status&PC87360_STATUS_FAN_OVERFLOW?"OVERFLOW": status&PC87360_STATUS_FAN_LOW?"ALARM":""); } - } else - printf("ERROR: Can't get FAN1 data!\n"); - free_the_label(&label); - - if (!sensors_get_feature(*name, SENSORS_PC87360_FAN2_STATUS, &cur)) - status = cur + 0.5; - else { - printf("ERROR: Can't get FAN2 status data!\n"); - status = 0; } + free_the_label(&label); if (!sensors_get_label_and_valid(*name, SENSORS_PC87360_FAN2, &label, &valid) && !sensors_get_feature(*name, SENSORS_PC87360_FAN2, &cur) && !sensors_get_feature(*name, SENSORS_PC87360_FAN2_DIV, &fdiv) - && !sensors_get_feature(*name, SENSORS_PC87360_FAN2_MIN, &min)) { + && !sensors_get_feature(*name, SENSORS_PC87360_FAN2_MIN, &min) + && !sensors_get_feature(*name, SENSORS_PC87360_FAN2_STATUS, &tmp)) { if (valid) { print_label(label, 10); + status = tmp + 0.5; printf("%4.0f RPM (min = %4.0f RPM, div = %1.0f) %s\n", cur, min, fdiv, status&PC87360_STATUS_FAN_OVERFLOW?"OVERFLOW": @@ -3967,31 +3956,25 @@ void print_pc87360(const sensors_chip_name *name) void print_pc87364(const sensors_chip_name *name) { char *label = NULL; - double cur, min, fdiv; + double cur, min, fdiv, tmp; int status, valid; print_pc87360(name); - if (!sensors_get_feature(*name, SENSORS_PC87360_FAN3_STATUS, &cur)) - status = cur + 0.5; - else { - printf("ERROR: Can't get FAN3 status data!\n"); - status = 0; - } - if (!sensors_get_label_and_valid(*name, SENSORS_PC87360_FAN3, &label, &valid) && !sensors_get_feature(*name, SENSORS_PC87360_FAN3, &cur) && !sensors_get_feature(*name, SENSORS_PC87360_FAN3_DIV, &fdiv) - && !sensors_get_feature(*name, SENSORS_PC87360_FAN3_MIN, &min)) { + && !sensors_get_feature(*name, SENSORS_PC87360_FAN3_MIN, &min) + && !sensors_get_feature(*name, SENSORS_PC87360_FAN3_STATUS, &tmp)) { if (valid) { print_label(label, 10); + status = tmp + 0.5; printf("%4.0f RPM (min = %4.0f RPM, div = %1.0f) %s\n", cur, min, fdiv, status&PC87360_STATUS_FAN_OVERFLOW?"OVERFLOW": status&PC87360_STATUS_FAN_LOW?"ALARM":""); } - } else - printf("ERROR: Can't get FAN3 data!\n"); + } free_the_label(&label); }