carl9170 firmware: reorganize pattern generator
[carl9170fw.git] / carlfw / src / main.c
index b9e558d3bbedf7ee55eecddf60bd8884b777a141..fc44d50af2fddcddf5be8d1d7e74c902838bd761 100644 (file)
@@ -31,7 +31,7 @@
 #include "wl.h"
 #include "rf.h"
 #include "usb.h"
-#include "radar.h"
+#include "pattern_generator.h"
 
 #define AR9170_WATCH_DOG_TIMER            0x100
 
@@ -85,10 +85,13 @@ static void handle_fw(void)
 
 static void tally_update(void)
 {
-       unsigned int boff, time, delta;
+       unsigned int time;
 
        time = get_clock_counter();
+#ifdef CONFIG_CARL9170FW_RADIO_FUNCTIONS
        if (fw.phy.state == CARL9170_PHY_ON) {
+               unsigned int boff, delta;
+
                delta = (time - fw.tally_clock);
 
                fw.tally.active += delta;
@@ -99,43 +102,11 @@ static void tally_update(void)
                if (boff & AR9170_MAC_BACKOFF_CCA)
                        fw.tally.cca += delta;
        }
-
+#endif /* CONFIG_CARL9170FW_RADIO_FUNCTIONS */
        fw.tally_clock = time;
        fw.counter++;
 }
 
-#ifdef CONFIG_CARL9170FW_RADAR
-static void radar_pattern_generator(void)
-{
-       if (fw.phy.state == CARL9170_PHY_ON) {
-               if (fw.wlan.soft_radar == NO_RADAR ||
-                   fw.wlan.soft_radar >= __CARL9170FW_NUM_RADARS)
-                       return;
-
-               const struct radar_info *radar = &radars[fw.wlan.soft_radar];
-               if (radar->pulses >= fw.wlan.pattern_index) {
-                       fw.wlan.pattern_index = 0;
-               }
-
-               if (radar->pulses > fw.wlan.pattern_index) {
-                       const struct radar_info_pattern *pattern = &radar->pattern[fw.wlan.pattern_index];
-                       if (is_after_usecs(fw.wlan.radar_last, pattern->pulse_interval)) {
-                               fw.wlan.radar_last = get_clock_counter();
-                               set(0x1C3BC0, pattern->pulse_pattern);
-                               set(0x1C3BBC, pattern->pulse_mode);
-                               udelay(pattern->pulse_width);
-                               set(0x1C3BBC, ~pattern->pulse_mode);
-                               fw.wlan.pattern_index++;
-                       }
-               }
-       }
-}
-#else
-static void radar_pattern_generator(void)
-{
-}
-#endif /* CONFIG_CARL9170FW_RADAR */
-
 static void __noreturn main_loop(void)
 {
        /* main loop */