Merge branch 'master' into radar
authorChristian Lamparter <chunkeey@googlemail.com>
Sat, 7 Jul 2012 15:47:25 +0000 (17:47 +0200)
committerChristian Lamparter <chunkeey@googlemail.com>
Sat, 7 Jul 2012 15:47:25 +0000 (17:47 +0200)
Conflicts:
carlfw/include/carl9170.h
include/shared/fwdesc.h
include/shared/version.h
tools/src/fwinfo.c

1  2 
carlfw/include/carl9170.h
carlfw/src/fw.c
include/shared/fwdesc.h
tools/src/fwinfo.c

index df41f8461bf4e1acbfb1fadf7c63a2234de74e58,cb16415c5adbeed7a0350f99f680ccda3f19b453..300d291a1c97d2a0e475813b7df3ca9e21aafe75
@@@ -33,7 -33,6 +33,7 @@@
  #include "dma.h"
  #include "usb.h"
  #include "cmd.h"
 +#include "radar.h"
  
  struct carl9170_bar_ctx {
        uint8_t ta[6];
@@@ -144,9 -143,7 +144,11 @@@ struct firmware_context_struct 
                             ba_head_idx,
                             queued_ba;
  
+               unsigned int queued_bar;
++
 +              unsigned int soft_radar,
 +                           radar_last,
 +                           pattern_index;
        } wlan;
  
        struct {
diff --combined carlfw/src/fw.c
index c91914113e7f290ef345dd39091c4d4524ceb002,5bde67505e2b0250003382d24dfb2a8afdc2179b..bebb39e73d84e3bf6f1d4b2f560eda6f3eb8de30
@@@ -38,6 -38,7 +38,7 @@@ const struct carl9170_firmware_descript
                                        BIT(CARL9170FW_HANDLE_BACK_REQ) |
                                        BIT(CARL9170FW_RX_FILTER) |
                                        BIT(CARL9170FW_HW_COUNTERS) |
+                                       BIT(CARL9170FW_RX_BA_FILTER) |
                                        BIT(CARL9170FW_USB_INIT_FIRMWARE) |
  #ifdef CONFIG_CARL9170FW_USB_UP_STREAM
                                        BIT(CARL9170FW_USB_UP_STREAM) |
@@@ -65,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),
@@@ -93,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 include/shared/fwdesc.h
index 903a346bebd54061785f2909eb24fb254abdf584,66848d47c88e993c2c04d328699e94249c5bad61..f73373eca25cc42b4d68035a394240f959d2b489
@@@ -78,9 -78,9 +78,12 @@@ enum carl9170fw_feature_list 
        /* HW (ANI, CCA, MIB) tally counters */
        CARL9170FW_HW_COUNTERS,
  
 +      /* Radar pattern generator */
 +      CARL9170FW_RADAR_PATTERN_GENERATOR,
 +
+       /* Firmware will pass BA when BARs are queued */
+       CARL9170FW_RX_BA_FILTER,
        /* KEEP LAST */
        __CARL9170FW_FEATURE_NUM
  };
@@@ -92,7 -92,6 +95,7 @@@
  #define CHK_MAGIC     "CHK\0"
  #define TXSQ_MAGIC    "TXSQ"
  #define WOL_MAGIC     "WOL\0"
 +#define RADAR_MAGIC   "RDR\0"
  #define LAST_MAGIC    "LAST"
  
  #define CARL9170FW_SET_DAY(d) (((d) - 1) % 31)
@@@ -177,25 -176,6 +180,25 @@@ struct carl9170fw_dbg_desc 
  #define CARL9170FW_DBG_DESC_SIZE                      \
        (sizeof(struct carl9170fw_dbg_desc))
  
 +#define CARL9170FW_RADAR_MAP_NAME_LEN         15
 +struct carl9170fw_radar_map_entry {
 +      u8 index;
 +      char name[CARL9170FW_RADAR_MAP_NAME_LEN];
 +} __packed;
 +
 +#define CARL9170FW_RADAR_DESC_MIN_VER                 1
 +#define CARL9170FW_RADAR_DESC_CUR_VER                 1
 +struct carl9170fw_radar_desc {
 +      struct carl9170fw_desc_head head;
 +
 +      __le32 soft_radar;
 +      __le32 num_radars;
 +      struct carl9170fw_radar_map_entry radars[0];
 +      /* Put your debugging definitions here */
 +} __packed;
 +#define CARL9170FW_RADAR_DESC_SIZE                    \
 +      (sizeof(struct carl9170fw_radar_desc))
 +
  #define CARL9170FW_CHK_DESC_MIN_VER                   1
  #define CARL9170FW_CHK_DESC_CUR_VER                   2
  struct carl9170fw_chk_desc {
diff --combined tools/src/fwinfo.c
index 0f674f72075c5ed7c2a953163a6dd3d6fa09c257,0d5cd0947922d92243c61645a3b0ecb7f88827ed..b2441f7cce837b83fdaa595d9181d25553d4d91c
@@@ -68,7 -68,7 +68,8 @@@ static const struct feature_list known_
        CHECK_FOR_FEATURE(CARL9170FW_WOL),
        CHECK_FOR_FEATURE(CARL9170FW_FIXED_5GHZ_PSM),
        CHECK_FOR_FEATURE(CARL9170FW_HW_COUNTERS),
+       CHECK_FOR_FEATURE(CARL9170FW_RX_BA_FILTER),
 +      CHECK_FOR_FEATURE(CARL9170FW_RADAR_PATTERN_GENERATOR),
  };
  
  static void check_feature_list(const struct carl9170fw_desc_head *head,
@@@ -207,25 -207,6 +208,25 @@@ static void show_chk_desc(const struct 
                le32_to_cpu(chk->fw_crc32));
  }
  
 +static void show_radar_desc(const struct carl9170fw_desc_head *head,
 +                        struct carlfw *fw __unused)
 +{
 +      const struct carl9170fw_radar_desc *radar = (const void *) head;
 +      const struct carl9170fw_radar_map_entry *map = radar->radars;
 +      int map_entries = (head->length - sizeof(*radar)) / sizeof(*map);
 +      int i;
 +
 +      fprintf(stdout, "\tRadar index register: %08x\n",
 +              le32_to_cpu(radar->soft_radar));
 +      fprintf(stdout, "\tNumber of supported radar patterns: %08x\n",
 +              le32_to_cpu(radar->num_radars));
 +
 +      for (i = 0; i < map_entries; i++) {
 +              fprintf(stdout, "\t\tindex:0x%x, description:%s\n",
 +                      map[i].index, map[i].name);
 +      }
 +}
 +
  static void show_last_desc(const struct carl9170fw_desc_head *head,
                           struct carlfw *fw __unused)
  
@@@ -256,7 -237,6 +257,7 @@@ static const struct 
        ADD_HANDLER(FIX, show_fix_desc),
        ADD_HANDLER(CHK, show_chk_desc),
        ADD_HANDLER(WOL, show_wol_desc),
 +      ADD_HANDLER(RADAR, show_radar_desc),
        ADD_HANDLER(LAST, show_last_desc),
  };