Skip to content

Commit 4eddf29

Browse files
author
xtraeme
committed
aiboost_refresh_sensors: if value returned is 0, invalidate the sensor too.
1 parent 151fd53 commit 4eddf29

File tree

1 file changed

+13
-14
lines changed

1 file changed

+13
-14
lines changed

sys/dev/acpi/aiboost.c

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* $NetBSD: aiboost.c,v 1.10 2007/07/12 18:50:40 xtraeme Exp $ */
1+
/* $NetBSD: aiboost.c,v 1.11 2007/07/16 16:44:26 xtraeme Exp $ */
22

33
/*-
44
* Copyright (c) 2007 Juan Romero Pardines
@@ -28,7 +28,7 @@
2828
*/
2929

3030
#include <sys/cdefs.h>
31-
__KERNEL_RCSID(0, "$NetBSD: aiboost.c,v 1.10 2007/07/12 18:50:40 xtraeme Exp $");
31+
__KERNEL_RCSID(0, "$NetBSD: aiboost.c,v 1.11 2007/07/16 16:44:26 xtraeme Exp $");
3232

3333
#include <sys/param.h>
3434
#include <sys/systm.h>
@@ -208,14 +208,19 @@ aiboost_refresh_sensors(struct aiboost_softc *sc, envsys_data_t *edata)
208208
j = 0;
209209
i = edata->sensor; /* sensor number */
210210

211+
#define AIBOOST_INVALIDATE_SENSOR() \
212+
do { \
213+
if (val == -1 || val == 0) { \
214+
edata->state = ENVSYS_SINVALID; \
215+
return; \
216+
} \
217+
} while (/* CONSTCOND */ 0)
218+
211219
switch (edata->units) {
212220
case ENVSYS_STEMP:
213221
/* Temperatures */
214222
val = aiboost_get_value(h, "RTMP", sc->sc_aitemp->elem[i].id);
215-
if (val == -1) {
216-
edata->state = ENVSYS_SINVALID;
217-
return;
218-
}
223+
AIBOOST_INVALIDATE_SENSOR();
219224
/* envsys(9) wants mK... convert from Celsius. */
220225
edata->value_cur = val * 100000 + 273150000;
221226
DPRINTF(("%s: temp[%d] value_cur=%d val=%d j=%d\n", __func__,
@@ -225,10 +230,7 @@ aiboost_refresh_sensors(struct aiboost_softc *sc, envsys_data_t *edata)
225230
/* Voltages */
226231
j = i - sc->sc_aitemp->num;
227232
val = aiboost_get_value(h, "RVLT", sc->sc_aivolt->elem[j].id);
228-
if (val == -1) {
229-
edata->state = ENVSYS_SINVALID;
230-
return;
231-
}
233+
AIBOOST_INVALIDATE_SENSOR();
232234
/* envsys(4) wants mV... */
233235
edata->value_cur = val * 10000;
234236
edata->value_cur /= 10;
@@ -239,10 +241,7 @@ aiboost_refresh_sensors(struct aiboost_softc *sc, envsys_data_t *edata)
239241
/* Fans */
240242
j = i - (sc->sc_aitemp->num + sc->sc_aivolt->num);
241243
val = aiboost_get_value(h, "RFAN", sc->sc_aifan->elem[j].id);
242-
if (val == -1) {
243-
edata->state = ENVSYS_SINVALID;
244-
return;
245-
}
244+
AIBOOST_INVALIDATE_SENSOR();
246245
edata->value_cur = val;
247246
DPRINTF(("%s: fan[%d] val=%d j=%d\n", __func__, i, val, j));
248247
break;

0 commit comments

Comments
 (0)