diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath10k/hif.h')
-rw-r--r-- | drivers/net/wireless/ath/ath10k/hif.h | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/drivers/net/wireless/ath/ath10k/hif.h b/drivers/net/wireless/ath/ath10k/hif.h index dcdea68bcc0a..2ac7beacddca 100644 --- a/drivers/net/wireless/ath/ath10k/hif.h +++ b/drivers/net/wireless/ath/ath10k/hif.h | |||
@@ -21,6 +21,14 @@ | |||
21 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
22 | #include "core.h" | 22 | #include "core.h" |
23 | 23 | ||
24 | struct ath10k_hif_sg_item { | ||
25 | u16 transfer_id; | ||
26 | void *transfer_context; /* NULL = tx completion callback not called */ | ||
27 | void *vaddr; /* for debugging mostly */ | ||
28 | u32 paddr; | ||
29 | u16 len; | ||
30 | }; | ||
31 | |||
24 | struct ath10k_hif_cb { | 32 | struct ath10k_hif_cb { |
25 | int (*tx_completion)(struct ath10k *ar, | 33 | int (*tx_completion)(struct ath10k *ar, |
26 | struct sk_buff *wbuf, | 34 | struct sk_buff *wbuf, |
@@ -31,11 +39,9 @@ struct ath10k_hif_cb { | |||
31 | }; | 39 | }; |
32 | 40 | ||
33 | struct ath10k_hif_ops { | 41 | struct ath10k_hif_ops { |
34 | /* Send the head of a buffer to HIF for transmission to the target. */ | 42 | /* send a scatter-gather list to the target */ |
35 | int (*send_head)(struct ath10k *ar, u8 pipe_id, | 43 | int (*tx_sg)(struct ath10k *ar, u8 pipe_id, |
36 | unsigned int transfer_id, | 44 | struct ath10k_hif_sg_item *items, int n_items); |
37 | unsigned int nbytes, | ||
38 | struct sk_buff *buf); | ||
39 | 45 | ||
40 | /* | 46 | /* |
41 | * API to handle HIF-specific BMI message exchanges, this API is | 47 | * API to handle HIF-specific BMI message exchanges, this API is |
@@ -86,12 +92,11 @@ struct ath10k_hif_ops { | |||
86 | }; | 92 | }; |
87 | 93 | ||
88 | 94 | ||
89 | static inline int ath10k_hif_send_head(struct ath10k *ar, u8 pipe_id, | 95 | static inline int ath10k_hif_tx_sg(struct ath10k *ar, u8 pipe_id, |
90 | unsigned int transfer_id, | 96 | struct ath10k_hif_sg_item *items, |
91 | unsigned int nbytes, | 97 | int n_items) |
92 | struct sk_buff *buf) | ||
93 | { | 98 | { |
94 | return ar->hif.ops->send_head(ar, pipe_id, transfer_id, nbytes, buf); | 99 | return ar->hif.ops->tx_sg(ar, pipe_id, items, n_items); |
95 | } | 100 | } |
96 | 101 | ||
97 | static inline int ath10k_hif_exchange_bmi_msg(struct ath10k *ar, | 102 | static inline int ath10k_hif_exchange_bmi_msg(struct ath10k *ar, |