ath: fix DFS timestamp wraparound reset condition
authorZefir Kurtisi <zefir.kurtisi@neratec.com>
Tue, 29 Sep 2015 10:29:49 +0000 (12:29 +0200)
committerKalle Valo <kvalo@qca.qualcomm.com>
Fri, 9 Oct 2015 08:47:31 +0000 (11:47 +0300)
The DFS pattern detector ought to reset the
detector lines when a pulse is added with
lower time stamp than the previous (which
indicates a TSF restart).

This did not work so far and is fixed with
this patch.

The modification does not change detection
performance within the driver, since it
only ensures early reset (which is later
performed by the PRI detectors anyway).
It is relevant for synthetic tests and
statistical evaluations, where millions
of pulse patterns are processed and an
early reset helps reducing load.

Signed-off-by: Zefir Kurtisi <zefir.kurtisi@neratec.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/dfs_pattern_detector.c

index 9d687121b2bfb2f753aa517035b793c33e12f9a1..2303ef96299d5bfe6eed3624a5c8e44a0630f943 100644 (file)
@@ -284,10 +284,10 @@ dpd_add_pulse(struct dfs_pattern_detector *dpd, struct pulse_event *event)
        if (cd == NULL)
                return false;
 
-       dpd->last_pulse_ts = event->ts;
        /* reset detector on time stamp wraparound, caused by TSF reset */
        if (event->ts < dpd->last_pulse_ts)
                dpd_reset(dpd);
+       dpd->last_pulse_ts = event->ts;
 
        /* do type individual pattern matching */
        for (i = 0; i < dpd->num_radar_types; i++) {