X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=include%2Fshared%2Ffwdesc.h;h=424a4e7fe7ce57e6cb501fab80e8a809039534f4;hb=1739e9d7c5d581c15d1ae331d83352f8998a6a83;hp=b5428d66feb232655d3405dd2907d80235c08202;hpb=f2e3ff4fb3fc8c2f1d6678014a49b048f1e3beaf;p=carl9170fw.git diff --git a/include/shared/fwdesc.h b/include/shared/fwdesc.h index b5428d6..424a4e7 100644 --- a/include/shared/fwdesc.h +++ b/include/shared/fwdesc.h @@ -3,7 +3,7 @@ * * Firmware descriptor format * - * Copyright 2009, 2010, Christian Lamparter + * Copyright 2009-2011 Christian Lamparter * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -69,6 +69,21 @@ enum carl9170fw_feature_list { /* Firmware RX filter | CARL9170_CMD_RX_FILTER */ CARL9170FW_RX_FILTER, + /* Wake up on WLAN */ + CARL9170FW_WOL, + + /* Firmware supports PSM in the 5GHZ Band */ + CARL9170FW_FIXED_5GHZ_PSM, + + /* HW (ANI, CCA, MIB) tally counters */ + CARL9170FW_HW_COUNTERS, + + /* Pattern generator */ + CARL9170FW_PATTERN_GENERATOR, + + /* Firmware will pass BA when BARs are queued */ + CARL9170FW_RX_BA_FILTER, + /* KEEP LAST */ __CARL9170FW_FEATURE_NUM }; @@ -78,6 +93,9 @@ enum carl9170fw_feature_list { #define FIX_MAGIC "FIX\0" #define DBG_MAGIC "DBG\0" #define CHK_MAGIC "CHK\0" +#define TXSQ_MAGIC "TXSQ" +#define WOL_MAGIC "WOL\0" +#define PATTERN_MAGIC "RDR\0" #define LAST_MAGIC "LAST" #define CARL9170FW_SET_DAY(d) (((d) - 1) % 31) @@ -100,7 +118,7 @@ struct carl9170fw_desc_head { (sizeof(struct carl9170fw_desc_head)) #define CARL9170FW_OTUS_DESC_MIN_VER 6 -#define CARL9170FW_OTUS_DESC_CUR_VER 6 +#define CARL9170FW_OTUS_DESC_CUR_VER 7 struct carl9170fw_otus_desc { struct carl9170fw_desc_head head; __le32 feature_set; @@ -162,6 +180,24 @@ struct carl9170fw_dbg_desc { #define CARL9170FW_DBG_DESC_SIZE \ (sizeof(struct carl9170fw_dbg_desc)) +#define CARL9170FW_PATTERN_MAP_NAME_LEN 15 +struct carl9170fw_pattern_map_entry { + u8 index; + char name[CARL9170FW_PATTERN_MAP_NAME_LEN]; +} __packed; + +#define CARL9170FW_PATTERN_DESC_MIN_VER 1 +#define CARL9170FW_PATTERN_DESC_CUR_VER 1 +struct carl9170fw_pattern_desc { + struct carl9170fw_desc_head head; + + __le32 soft_pattern; + __le32 num_patterns; + struct carl9170fw_pattern_map_entry patterns[0]; +} __packed; +#define CARL9170FW_PATTERN_DESC_SIZE \ + (sizeof(struct carl9170fw_pattern_desc)) + #define CARL9170FW_CHK_DESC_MIN_VER 1 #define CARL9170FW_CHK_DESC_CUR_VER 2 struct carl9170fw_chk_desc { @@ -172,6 +208,26 @@ struct carl9170fw_chk_desc { #define CARL9170FW_CHK_DESC_SIZE \ (sizeof(struct carl9170fw_chk_desc)) +#define CARL9170FW_TXSQ_DESC_MIN_VER 1 +#define CARL9170FW_TXSQ_DESC_CUR_VER 1 +struct carl9170fw_txsq_desc { + struct carl9170fw_desc_head head; + + __le32 seq_table_addr; +} __packed; +#define CARL9170FW_TXSQ_DESC_SIZE \ + (sizeof(struct carl9170fw_txsq_desc)) + +#define CARL9170FW_WOL_DESC_MIN_VER 1 +#define CARL9170FW_WOL_DESC_CUR_VER 1 +struct carl9170fw_wol_desc { + struct carl9170fw_desc_head head; + + __le32 supported_triggers; /* CARL9170_WOL_ */ +} __packed; +#define CARL9170FW_WOL_DESC_SIZE \ + (sizeof(struct carl9170fw_wol_desc)) + #define CARL9170FW_LAST_DESC_MIN_VER 1 #define CARL9170FW_LAST_DESC_CUR_VER 2 struct carl9170fw_last_desc {