icE1usb fw/gpsdo: Never use invalid measurements to feed loop
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: I9c7b81c6e2e600ed49ac766fa33df23747dd339e
diff --git a/firmware/ice40-riscv/icE1usb/gpsdo.c b/firmware/ice40-riscv/icE1usb/gpsdo.c
index cd9866c..7e3682f 100644
--- a/firmware/ice40-riscv/icE1usb/gpsdo.c
+++ b/firmware/ice40-riscv/icE1usb/gpsdo.c
@@ -286,10 +286,11 @@
} else {
/* Count invalid measurements and if too many of
* them, we go back to hold-over */
- if (++g_gpsdo.meas.invalid >= MAX_INVALID) {
+ if (++g_gpsdo.meas.invalid >= MAX_INVALID)
g_gpsdo.state = STATE_HOLD_OVER;
- return;
- }
+
+ /* In all cases, invalid measurements are not used */
+ return;
}
g_gpsdo.meas.invalid = 0;