Commit 9a5511d5 authored by Erik Stromdahl's avatar Erik Stromdahl Committed by Kalle Valo

ath10k: add inlined wrappers for htt rx ops

Added for the same reason as the TX wrappers.
Signed-off-by: default avatarErik Stromdahl <erik.stromdahl@gmail.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 5df6e131
...@@ -1916,6 +1916,43 @@ struct ath10k_htt_rx_ops { ...@@ -1916,6 +1916,43 @@ struct ath10k_htt_rx_ops {
void (*htt_reset_paddrs_ring)(struct ath10k_htt *htt, int idx); void (*htt_reset_paddrs_ring)(struct ath10k_htt *htt, int idx);
}; };
static inline size_t ath10k_htt_get_rx_ring_size(struct ath10k_htt *htt)
{
if (!htt->rx_ops->htt_get_rx_ring_size)
return 0;
return htt->rx_ops->htt_get_rx_ring_size(htt);
}
static inline void ath10k_htt_config_paddrs_ring(struct ath10k_htt *htt,
void *vaddr)
{
if (htt->rx_ops->htt_config_paddrs_ring)
htt->rx_ops->htt_config_paddrs_ring(htt, vaddr);
}
static inline void ath10k_htt_set_paddrs_ring(struct ath10k_htt *htt,
dma_addr_t paddr,
int idx)
{
if (htt->rx_ops->htt_set_paddrs_ring)
htt->rx_ops->htt_set_paddrs_ring(htt, paddr, idx);
}
static inline void *ath10k_htt_get_vaddr_ring(struct ath10k_htt *htt)
{
if (!htt->rx_ops->htt_get_vaddr_ring)
return NULL;
return htt->rx_ops->htt_get_vaddr_ring(htt);
}
static inline void ath10k_htt_reset_paddrs_ring(struct ath10k_htt *htt, int idx)
{
if (htt->rx_ops->htt_reset_paddrs_ring)
htt->rx_ops->htt_reset_paddrs_ring(htt, idx);
}
#define RX_HTT_HDR_STATUS_LEN 64 #define RX_HTT_HDR_STATUS_LEN 64
/* This structure layout is programmed via rx ring setup /* This structure layout is programmed via rx ring setup
......
...@@ -182,7 +182,7 @@ static int __ath10k_htt_rx_ring_fill_n(struct ath10k_htt *htt, int num) ...@@ -182,7 +182,7 @@ static int __ath10k_htt_rx_ring_fill_n(struct ath10k_htt *htt, int num)
rxcb = ATH10K_SKB_RXCB(skb); rxcb = ATH10K_SKB_RXCB(skb);
rxcb->paddr = paddr; rxcb->paddr = paddr;
htt->rx_ring.netbufs_ring[idx] = skb; htt->rx_ring.netbufs_ring[idx] = skb;
htt->rx_ops->htt_set_paddrs_ring(htt, paddr, idx); ath10k_htt_set_paddrs_ring(htt, paddr, idx);
htt->rx_ring.fill_cnt++; htt->rx_ring.fill_cnt++;
if (htt->rx_ring.in_ord_rx) { if (htt->rx_ring.in_ord_rx) {
...@@ -287,8 +287,8 @@ void ath10k_htt_rx_free(struct ath10k_htt *htt) ...@@ -287,8 +287,8 @@ void ath10k_htt_rx_free(struct ath10k_htt *htt)
ath10k_htt_rx_ring_free(htt); ath10k_htt_rx_ring_free(htt);
dma_free_coherent(htt->ar->dev, dma_free_coherent(htt->ar->dev,
htt->rx_ops->htt_get_rx_ring_size(htt), ath10k_htt_get_rx_ring_size(htt),
htt->rx_ops->htt_get_vaddr_ring(htt), ath10k_htt_get_vaddr_ring(htt),
htt->rx_ring.base_paddr); htt->rx_ring.base_paddr);
dma_free_coherent(htt->ar->dev, dma_free_coherent(htt->ar->dev,
...@@ -315,7 +315,7 @@ static inline struct sk_buff *ath10k_htt_rx_netbuf_pop(struct ath10k_htt *htt) ...@@ -315,7 +315,7 @@ static inline struct sk_buff *ath10k_htt_rx_netbuf_pop(struct ath10k_htt *htt)
idx = htt->rx_ring.sw_rd_idx.msdu_payld; idx = htt->rx_ring.sw_rd_idx.msdu_payld;
msdu = htt->rx_ring.netbufs_ring[idx]; msdu = htt->rx_ring.netbufs_ring[idx];
htt->rx_ring.netbufs_ring[idx] = NULL; htt->rx_ring.netbufs_ring[idx] = NULL;
htt->rx_ops->htt_reset_paddrs_ring(htt, idx); ath10k_htt_reset_paddrs_ring(htt, idx);
idx++; idx++;
idx &= htt->rx_ring.size_mask; idx &= htt->rx_ring.size_mask;
...@@ -587,13 +587,13 @@ int ath10k_htt_rx_alloc(struct ath10k_htt *htt) ...@@ -587,13 +587,13 @@ int ath10k_htt_rx_alloc(struct ath10k_htt *htt)
if (!htt->rx_ring.netbufs_ring) if (!htt->rx_ring.netbufs_ring)
goto err_netbuf; goto err_netbuf;
size = htt->rx_ops->htt_get_rx_ring_size(htt); size = ath10k_htt_get_rx_ring_size(htt);
vaddr_ring = dma_alloc_coherent(htt->ar->dev, size, &paddr, GFP_KERNEL); vaddr_ring = dma_alloc_coherent(htt->ar->dev, size, &paddr, GFP_KERNEL);
if (!vaddr_ring) if (!vaddr_ring)
goto err_dma_ring; goto err_dma_ring;
htt->rx_ops->htt_config_paddrs_ring(htt, vaddr_ring); ath10k_htt_config_paddrs_ring(htt, vaddr_ring);
htt->rx_ring.base_paddr = paddr; htt->rx_ring.base_paddr = paddr;
vaddr = dma_alloc_coherent(htt->ar->dev, vaddr = dma_alloc_coherent(htt->ar->dev,
...@@ -627,7 +627,7 @@ int ath10k_htt_rx_alloc(struct ath10k_htt *htt) ...@@ -627,7 +627,7 @@ int ath10k_htt_rx_alloc(struct ath10k_htt *htt)
err_dma_idx: err_dma_idx:
dma_free_coherent(htt->ar->dev, dma_free_coherent(htt->ar->dev,
htt->rx_ops->htt_get_rx_ring_size(htt), ath10k_htt_get_rx_ring_size(htt),
vaddr_ring, vaddr_ring,
htt->rx_ring.base_paddr); htt->rx_ring.base_paddr);
err_dma_ring: err_dma_ring:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment