Merge branch 'master' into radar
authorChristian Lamparter <chunkeey@googlemail.com>
Thu, 13 Sep 2012 22:29:46 +0000 (00:29 +0200)
committerChristian Lamparter <chunkeey@googlemail.com>
Thu, 13 Sep 2012 22:29:46 +0000 (00:29 +0200)
Conflicts:
tools/src/CMakeLists.txt

1  2 
carlfw/src/fw.c
carlfw/src/main.c
tools/src/CMakeLists.txt

diff --combined carlfw/src/fw.c
index bebb39e73d84e3bf6f1d4b2f560eda6f3eb8de30,8f0b33e6b8b6065bef73a5a5c33d6cc1c6dcd860..8124588c731020bc2c48929593218aff5fedd60e
@@@ -31,7 -31,7 +31,7 @@@
                more                                                    \
        }
  
- const struct carl9170_firmware_descriptor __section(fwdsc) carl9170fw_desc = {
+ const struct carl9170_firmware_descriptor __section(fwdsc) __visible carl9170fw_desc = {
        FILL(otus, OTUS,
             .feature_set = cpu_to_le32(BIT(CARL9170FW_DUMMY_FEATURE) |
                                        BIT(CARL9170FW_USB_RESP_EP2) |
@@@ -66,9 -66,6 +66,9 @@@
  #ifdef CONFIG_CARL9170FW_WOL
                                        BIT(CARL9170FW_WOL) |
  #endif /* CONFIG_CARL9170FW_WOL */
 +#ifdef CONFIG_CARL9170FW_RADAR
 +                                      BIT(CARL9170FW_RADAR_PATTERN_GENERATOR) |
 +#endif /* CONFIG_CARL9170FW_RADAR */
                                        (0)),
  
             .miniboot_size = cpu_to_le16(0),
@@@ -94,6 -91,7 +94,6 @@@
        ),
  #endif /* CONFIG_CARL9170FW_WOL */
  
 -
        FILL(motd, MOTD,
             .fw_year_month_day = cpu_to_le32(
                        CARL9170FW_SET_DAY(CARL9170FW_VERSION_DAY) +
             .desc = "Community AR9170 Linux",
             .release = CARL9170FW_VERSION_GIT),
  
 +
 +#ifdef CONFIG_CARL9170FW_RADAR
 +      FILL(radar, RADAR,
 +           .soft_radar = cpu_to_le32(&fw.wlan.soft_radar),
 +           .num_radars = __CARL9170FW_NUM_RADARS,
 +           .radars = { /* filled by the fwprepare tool */ },
 +      ),
 +#endif /* CONFIG_CARL9170FW_RADAR */
 +
        FILL(dbg, DBG,
             .bogoclock_addr = cpu_to_le32(0),
             .counter_addr = cpu_to_le32(&fw.counter),
diff --combined carlfw/src/main.c
index c35f5ad104a9cf4feaf6716c2419783f83e7d9af,80e7e21ee45cee6d807fd7813333db4b35d92df3..2f63ae0b5d0b46d049ac8dfbe9b6d68120df7dd6
@@@ -31,7 -31,6 +31,7 @@@
  #include "wl.h"
  #include "rf.h"
  #include "usb.h"
 +#include "radar.h"
  
  #define AR9170_WATCH_DOG_TIMER                   0x100
  
@@@ -186,32 -185,6 +186,32 @@@ static void tally_update(void
        fw.counter++;
  }
  
 +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(PATTERN, pattern->pulse_pattern);
 +                              //set(MODE, pattern->pulse_mode);
 +                              udelay(pattern->pulse_width);
 +                              //set(MODE, ~pattern->pulse_mode);
 +                              fw.wlan.pattern_index++;
 +                      }
 +              }
 +      }
 +}
 +
  static void __noreturn main_loop(void)
  {
        /* main loop */
                handle_timer();
  
                tally_update();
 +
 +              radar_pattern_generator();
        }
  }
  
   * we put _start() there with the linker script carl9170.lds.
   */
  
- void __section(boot) start(void)
+ void __section(boot) __noreturn __visible start(void)
  {
        clock_set(AHB_40MHZ_OSC, true);
  
diff --combined tools/src/CMakeLists.txt
index 4605aa4b8ba93f92e567fb4365d7f9708488faed,d141521e9652ea231984c12637f34d1fbf43acdf..19ec5082a2cb58e4d397b5cd25c64ee478a1c8c9
@@@ -4,7 -4,7 +4,7 @@@ project(tools
  
  add_custom_target(wol ALL COMMAND gcc wol.c -o wol)
  
- set(tools fwinfo miniboot checksum fwprepare eeprom_fix)
 -set(tools fwinfo miniboot checksum)
++set(tools fwinfo miniboot checksum fwprepare)
  
  foreach(tool ${tools})
        add_executable( ${tool} ${tool}.c )