diff --git a/atp.c b/atp.c index 832c1e6..f97d658 100644 --- a/atp.c +++ b/atp.c @@ -996,17 +996,16 @@ fg_interpret_sensor_data(struct atp_softc *sc, u_int data_len) * be used as pressure readings subsequently. */ status_bits = sc->sc_sensor_data[params->data_len - 1]; - if (((params->prot == FG_TRACKPAD_TYPE_GEYSER3) || - (params->prot == FG_TRACKPAD_TYPE_GEYSER4)) && + if ((((params->prot == FG_TRACKPAD_TYPE_GEYSER3) || + (params->prot == FG_TRACKPAD_TYPE_GEYSER4)) && + (status_bits & FG_STATUS_BASE_UPDATE)) || ((sc->sc_state & ATP_VALID) == 0)) { - if (status_bits & FG_STATUS_BASE_UPDATE) { - memcpy(sc->sc_base_x, sc->sc_cur_x, - params->n_xsensors * sizeof(*sc->sc_base_x)); - memcpy(sc->sc_base_y, sc->sc_cur_y, - params->n_ysensors * sizeof(*sc->sc_base_y)); - sc->sc_state |= ATP_VALID; - return; - } + memcpy(sc->sc_base_x, sc->sc_cur_x, + params->n_xsensors * sizeof(*sc->sc_base_x)); + memcpy(sc->sc_base_y, sc->sc_cur_y, + params->n_ysensors * sizeof(*sc->sc_base_y)); + sc->sc_state |= ATP_VALID; + return; } /* Get pressure readings and detect p-spans for both axes. */