On Mon, Apr 24, 2023 at 02:07:11PM +0000, Miod Vallat wrote: > After suspending a machine with acpithinkpad(4) and resuming, the fan > senors report a value of 65535 (i.e. 0xffff) for a few seconds, and > then start reporting correct values.
I don't see these bogus values on an intel t14 gen3 when I resume into 'systat -s.1 sens', but your diff makes sense and does not break here. OK kn > > The following diff marks the sensor as invalid when such a value is > read. > > Index: acpithinkpad.c > =================================================================== > RCS file: /OpenBSD/src/sys/dev/acpi/acpithinkpad.c,v > retrieving revision 1.71 > diff -u -p -r1.71 acpithinkpad.c > --- acpithinkpad.c 9 Apr 2023 17:50:02 -0000 1.71 > +++ acpithinkpad.c 24 Apr 2023 14:05:18 -0000 > @@ -287,7 +287,12 @@ thinkpad_sensor_refresh(void *arg) > /* Read fan RPM */ > acpiec_read(sc->sc_ec, THINKPAD_ECOFFSET_FANLO, 1, &lo); > acpiec_read(sc->sc_ec, THINKPAD_ECOFFSET_FANHI, 1, &hi); > - sc->sc_sens[THINKPAD_SENSOR_FANRPM].value = ((hi << 8L) + lo); > + if (hi == 0xff && lo == 0xff) { > + sc->sc_sens[THINKPAD_SENSOR_FANRPM].flags = SENSOR_FINVALID; > + } else { > + sc->sc_sens[THINKPAD_SENSOR_FANRPM].value = ((hi << 8L) + lo); > + sc->sc_sens[THINKPAD_SENSOR_FANRPM].flags = 0; > + } > } > > void >