Commit d84a512d authored by Michal Kazior's avatar Michal Kazior Committed by Kalle Valo

ath10k: remove transfer_id from ath10k_hif_cb::tx_completion

Pass the eid argument via skbuff control buffer.
This will make it possible to work with queues of
HTC event buffers.
Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
parent 5f07ea4c
...@@ -79,6 +79,7 @@ static inline const char *ath10k_bus_str(enum ath10k_bus bus) ...@@ -79,6 +79,7 @@ static inline const char *ath10k_bus_str(enum ath10k_bus bus)
struct ath10k_skb_cb { struct ath10k_skb_cb {
dma_addr_t paddr; dma_addr_t paddr;
u8 eid;
u8 vdev_id; u8 vdev_id;
struct { struct {
......
...@@ -32,8 +32,7 @@ struct ath10k_hif_sg_item { ...@@ -32,8 +32,7 @@ struct ath10k_hif_sg_item {
struct ath10k_hif_cb { struct ath10k_hif_cb {
int (*tx_completion)(struct ath10k *ar, int (*tx_completion)(struct ath10k *ar,
struct sk_buff *wbuf, struct sk_buff *wbuf);
unsigned transfer_id);
int (*rx_completion)(struct ath10k *ar, int (*rx_completion)(struct ath10k *ar,
struct sk_buff *wbuf); struct sk_buff *wbuf);
}; };
......
...@@ -160,6 +160,7 @@ int ath10k_htc_send(struct ath10k_htc *htc, ...@@ -160,6 +160,7 @@ int ath10k_htc_send(struct ath10k_htc *htc,
ath10k_htc_prepare_tx_skb(ep, skb); ath10k_htc_prepare_tx_skb(ep, skb);
skb_cb->eid = eid;
skb_cb->paddr = dma_map_single(dev, skb->data, skb->len, DMA_TO_DEVICE); skb_cb->paddr = dma_map_single(dev, skb->data, skb->len, DMA_TO_DEVICE);
ret = dma_mapping_error(dev, skb_cb->paddr); ret = dma_mapping_error(dev, skb_cb->paddr);
if (ret) if (ret)
...@@ -197,15 +198,18 @@ int ath10k_htc_send(struct ath10k_htc *htc, ...@@ -197,15 +198,18 @@ int ath10k_htc_send(struct ath10k_htc *htc,
} }
static int ath10k_htc_tx_completion_handler(struct ath10k *ar, static int ath10k_htc_tx_completion_handler(struct ath10k *ar,
struct sk_buff *skb, struct sk_buff *skb)
unsigned int eid)
{ {
struct ath10k_htc *htc = &ar->htc; struct ath10k_htc *htc = &ar->htc;
struct ath10k_htc_ep *ep = &htc->endpoint[eid]; struct ath10k_skb_cb *skb_cb;
struct ath10k_htc_ep *ep;
if (WARN_ON_ONCE(!skb)) if (WARN_ON_ONCE(!skb))
return 0; return 0;
skb_cb = ATH10K_SKB_CB(skb);
ep = &htc->endpoint[skb_cb->eid];
ath10k_htc_notify_tx_completion(ep, skb); ath10k_htc_notify_tx_completion(ep, skb);
/* the skb now belongs to the completion handler */ /* the skb now belongs to the completion handler */
......
...@@ -835,7 +835,7 @@ static void ath10k_pci_ce_send_done(struct ath10k_ce_pipe *ce_state) ...@@ -835,7 +835,7 @@ static void ath10k_pci_ce_send_done(struct ath10k_ce_pipe *ce_state)
if (transfer_context == NULL) if (transfer_context == NULL)
continue; continue;
cb->tx_completion(ar, transfer_context, transfer_id); cb->tx_completion(ar, transfer_context);
} }
} }
...@@ -1263,7 +1263,7 @@ static void ath10k_pci_tx_pipe_cleanup(struct ath10k_pci_pipe *pci_pipe) ...@@ -1263,7 +1263,7 @@ static void ath10k_pci_tx_pipe_cleanup(struct ath10k_pci_pipe *pci_pipe)
id = MS(__le16_to_cpu(ce_desc[i].flags), id = MS(__le16_to_cpu(ce_desc[i].flags),
CE_DESC_FLAGS_META_DATA); CE_DESC_FLAGS_META_DATA);
ar_pci->msg_callbacks_current.tx_completion(ar, skb, id); ar_pci->msg_callbacks_current.tx_completion(ar, skb);
} }
} }
......
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