diff options
Diffstat (limited to 'common/temp_sensor.c')
-rw-r--r-- | common/temp_sensor.c | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/common/temp_sensor.c b/common/temp_sensor.c index cdad3ebd1f..333ed1d266 100644 --- a/common/temp_sensor.c +++ b/common/temp_sensor.c @@ -25,17 +25,16 @@ */ extern const struct temp_sensor_t temp_sensors[TEMP_SENSOR_COUNT]; - -int temp_sensor_read(enum temp_sensor_id id) +int temp_sensor_read(enum temp_sensor_id id, int *temp_ptr) { const struct temp_sensor_t *sensor; if (id < 0 || id >= TEMP_SENSOR_COUNT) - return -1; + return EC_ERROR_INVAL; sensor = temp_sensors + id; - return sensor->read(sensor->idx); -} + return sensor->read(sensor->idx, temp_ptr); +} int temp_sensor_powered(enum temp_sensor_id id) { @@ -52,7 +51,6 @@ int temp_sensor_powered(enum temp_sensor_id id) return 1; } - void poll_slow_sensors(void) { /* Poll every second */ @@ -72,7 +70,6 @@ static void poll_fast_sensors(void) #endif } - static void update_mapped_memory(void) { int i, t; @@ -94,15 +91,13 @@ static void update_mapped_memory(void) continue; } - t = temp_sensor_read(i); - if (t == -1) + if (temp_sensor_read(i, &t)) *mptr = EC_TEMP_SENSOR_ERROR; else *mptr = t - EC_TEMP_SENSOR_OFFSET; } } - void temp_sensor_task(void) { int i; @@ -149,21 +144,20 @@ void temp_sensor_task(void) static int command_temps(int argc, char **argv) { - int i; - int rv = EC_SUCCESS; - int t; + int t, i; + int rv, rv1 = EC_SUCCESS; for (i = 0; i < TEMP_SENSOR_COUNT; ++i) { ccprintf(" %-20s: ", temp_sensors[i].name); - t = temp_sensor_read(i); - if (t < 0) { - ccprintf("Error\n"); - rv = EC_ERROR_UNKNOWN; + rv = temp_sensor_read(i, &t); + if (rv) { + ccprintf("Error %d\n", rv); + rv1 = rv; } else ccprintf("%d K = %d C\n", t, t - 273); } - return rv; + return rv1; } DECLARE_CONSOLE_COMMAND(temps, command_temps, NULL, |