From: Christian Lamparter Date: Thu, 13 Sep 2012 22:29:46 +0000 (+0200) Subject: Merge branch 'master' into radar X-Git-Url: https://jxself.org/git/?a=commitdiff_plain;ds=sidebyside;h=d7eb06db9a6f2a82ae3aacc8e01faacc53b370d9;hp=-c;p=carl9170fw.git Merge branch 'master' into radar Conflicts: tools/src/CMakeLists.txt --- d7eb06db9a6f2a82ae3aacc8e01faacc53b370d9 diff --combined carlfw/src/fw.c index bebb39e,8f0b33e..8124588 --- a/carlfw/src/fw.c +++ b/carlfw/src/fw.c @@@ -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) + @@@ -102,15 -100,6 +102,15 @@@ .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 c35f5ad,80e7e21..2f63ae0 --- a/carlfw/src/main.c +++ b/carlfw/src/main.c @@@ -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 */ @@@ -231,8 -204,6 +231,8 @@@ handle_timer(); tally_update(); + + radar_pattern_generator(); } } @@@ -246,7 -217,7 +246,7 @@@ * 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 4605aa4,d141521..19ec508 --- a/tools/src/CMakeLists.txt +++ b/tools/src/CMakeLists.txt @@@ -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 )