projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ath10k: rename board_data in struct ath10k
[cascardo/linux.git]
/
drivers
/
net
/
wireless
/
ath
/
ath10k
/
core.h
diff --git
a/drivers/net/wireless/ath/ath10k/core.h
b/drivers/net/wireless/ath/ath10k/core.h
index
174c4b4
..
90d9399
100644
(file)
--- a/
drivers/net/wireless/ath/ath10k/core.h
+++ b/
drivers/net/wireless/ath/ath10k/core.h
@@
-43,27
+43,23
@@
/* Antenna noise floor */
#define ATH10K_DEFAULT_NOISE_FLOOR -95
/* Antenna noise floor */
#define ATH10K_DEFAULT_NOISE_FLOOR -95
+#define ATH10K_MAX_NUM_MGMT_PENDING 16
+
struct ath10k;
struct ath10k_skb_cb {
dma_addr_t paddr;
bool is_mapped;
bool is_aborted;
struct ath10k;
struct ath10k_skb_cb {
dma_addr_t paddr;
bool is_mapped;
bool is_aborted;
+ u8 vdev_id;
struct {
struct {
- u8 vdev_id;
- u16 msdu_id;
u8 tid;
bool is_offchan;
u8 tid;
bool is_offchan;
- bool is_conf;
- bool discard;
- bool no_ack;
- u8 refcount;
- struct sk_buff *txfrag;
- struct sk_buff *msdu;
- } __packed htt;
- /* 4 bytes left on 64bit arch */
+ u8 frag_len;
+ u8 pad_len;
+ } __packed htt;
} __packed;
static inline struct ath10k_skb_cb *ATH10K_SKB_CB(struct sk_buff *skb)
} __packed;
static inline struct ath10k_skb_cb *ATH10K_SKB_CB(struct sk_buff *skb)
@@
-108,15
+104,26
@@
struct ath10k_bmi {
bool done_sent;
};
bool done_sent;
};
+#define ATH10K_MAX_MEM_REQS 16
+
+struct ath10k_mem_chunk {
+ void *vaddr;
+ dma_addr_t paddr;
+ u32 len;
+ u32 req_id;
+};
+
struct ath10k_wmi {
enum ath10k_htc_ep_id eid;
struct completion service_ready;
struct completion unified_ready;
struct ath10k_wmi {
enum ath10k_htc_ep_id eid;
struct completion service_ready;
struct completion unified_ready;
- atomic_t pending_tx_count;
- wait_queue_head_t wq;
+ wait_queue_head_t tx_credits_wq;
+ struct wmi_cmd_map *cmd;
+ struct wmi_vdev_param_map *vdev_param;
+ struct wmi_pdev_param_map *pdev_param;
-
struct sk_buff_head wmi_event_list
;
- struct
work_struct wmi_event_work
;
+
u32 num_mem_chunks
;
+ struct
ath10k_mem_chunk mem_chunks[ATH10K_MAX_MEM_REQS]
;
};
struct ath10k_peer_stat {
};
struct ath10k_peer_stat {
@@
-203,6
+210,7
@@
struct ath10k_vif {
enum wmi_vdev_subtype vdev_subtype;
u32 beacon_interval;
u32 dtim_period;
enum wmi_vdev_subtype vdev_subtype;
u32 beacon_interval;
u32 dtim_period;
+ struct sk_buff *beacon;
struct ath10k *ar;
struct ieee80211_vif *vif;
struct ath10k *ar;
struct ieee80211_vif *vif;
@@
-246,6
+254,9
@@
struct ath10k_debug {
u32 wmi_service_bitmap[WMI_SERVICE_BM_SIZE];
struct completion event_stats_compl;
u32 wmi_service_bitmap[WMI_SERVICE_BM_SIZE];
struct completion event_stats_compl;
+
+ unsigned long htt_stats_mask;
+ struct delayed_work htt_stats_dwork;
};
enum ath10k_state {
};
enum ath10k_state {
@@
-274,6
+285,12
@@
enum ath10k_fw_features {
/* wmi_mgmt_rx_hdr contains extra RSSI information */
ATH10K_FW_FEATURE_EXT_WMI_MGMT_RX = 0,
/* wmi_mgmt_rx_hdr contains extra RSSI information */
ATH10K_FW_FEATURE_EXT_WMI_MGMT_RX = 0,
+ /* firmware from 10X branch */
+ ATH10K_FW_FEATURE_WMI_10X = 1,
+
+ /* firmware support tx frame management over WMI, otherwise it's HTT */
+ ATH10K_FW_FEATURE_HAS_WMI_MGMT_TX = 2,
+
/* keep last */
ATH10K_FW_FEATURE_COUNT,
};
/* keep last */
ATH10K_FW_FEATURE_COUNT,
};
@@
-330,7
+347,7
@@
struct ath10k {
} fw;
} hw_params;
} fw;
} hw_params;
- const struct firmware *board
_data
;
+ const struct firmware *board;
const struct firmware *otp;
const struct firmware *firmware;
const struct firmware *otp;
const struct firmware *firmware;
@@
-383,6
+400,9
@@
struct ath10k {
struct completion offchan_tx_completed;
struct sk_buff *offchan_tx_skb;
struct completion offchan_tx_completed;
struct sk_buff *offchan_tx_skb;
+ struct work_struct wmi_mgmt_tx_work;
+ struct sk_buff_head wmi_mgmt_tx_queue;
+
enum ath10k_state state;
struct work_struct restart_work;
enum ath10k_state state;
struct work_struct restart_work;