summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/intel/iwlwifi/fw/runtime.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2017-06-01 14:44:40 +0200
committerLuca Coelho <luciano.coelho@intel.com>2017-08-01 12:41:43 +0300
commitd0b813fcdc22d091f8c9eee3a1484dca162667c8 (patch)
tree1a97f3132843a97dda342031c35672f46bfa4565 /drivers/net/wireless/intel/iwlwifi/fw/runtime.h
parent235acb1894321f91c771464d90c4010a9bef90bb (diff)
iwlwifi: refactor shared mem parsing
Refactor the shared memory command parsing into common code. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/fw/runtime.h')
-rw-r--r--drivers/net/wireless/intel/iwlwifi/fw/runtime.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/fw/runtime.h b/drivers/net/wireless/intel/iwlwifi/fw/runtime.h
index c5d564305d30..185902ce7e13 100644
--- a/drivers/net/wireless/intel/iwlwifi/fw/runtime.h
+++ b/drivers/net/wireless/intel/iwlwifi/fw/runtime.h
@@ -63,6 +63,19 @@
#include "img.h"
#include "api.h"
+#define MAX_NUM_LMAC 2
+struct iwl_fwrt_shared_mem_cfg {
+ int num_lmacs;
+ int num_txfifo_entries;
+ struct {
+ u32 txfifo_size[TX_FIFO_MAX_NUM];
+ u32 rxfifo1_size;
+ } lmac[MAX_NUM_LMAC];
+ u32 rxfifo2_size;
+ u32 internal_txfifo_addr;
+ u32 internal_txfifo_size[TX_FIFO_INTERNAL_MAX_NUM];
+};
+
/**
* struct iwl_fw_runtime - runtime data for firmware
* @fw: firmware image
@@ -71,6 +84,7 @@
* @fw_paging_db: paging database
* @num_of_paging_blk: number of paging blocks
* @num_of_pages_in_last_blk: number of pages in the last block
+ * @smem_cfg: saved firmware SMEM configuration
*/
struct iwl_fw_runtime {
struct iwl_trans *trans;
@@ -81,6 +95,9 @@ struct iwl_fw_runtime {
struct iwl_fw_paging fw_paging_db[NUM_OF_FW_PAGING_BLOCKS];
u16 num_of_paging_blk;
u16 num_of_pages_in_last_blk;
+
+ /* memory configuration */
+ struct iwl_fwrt_shared_mem_cfg smem_cfg;
};
static inline void iwl_fw_runtime_init(struct iwl_fw_runtime *fwrt,
@@ -96,4 +113,6 @@ static inline void iwl_fw_runtime_init(struct iwl_fw_runtime *fwrt,
int iwl_init_paging(struct iwl_fw_runtime *fwrt, enum iwl_ucode_type type);
void iwl_free_fw_paging(struct iwl_fw_runtime *fwrt);
+void iwl_get_shared_mem_conf(struct iwl_fw_runtime *fwrt);
+
#endif /* __iwl_fw_runtime_h__ */