diff options
Diffstat (limited to 'package/kernel/mac80211/patches/308-ath10k-cleanup-copy-engine-send-completion.patch')
-rw-r--r-- | package/kernel/mac80211/patches/308-ath10k-cleanup-copy-engine-send-completion.patch | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/package/kernel/mac80211/patches/308-ath10k-cleanup-copy-engine-send-completion.patch b/package/kernel/mac80211/patches/308-ath10k-cleanup-copy-engine-send-completion.patch deleted file mode 100644 index e758665..0000000 --- a/package/kernel/mac80211/patches/308-ath10k-cleanup-copy-engine-send-completion.patch +++ /dev/null @@ -1,165 +0,0 @@ -From: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> -Date: Fri, 23 Oct 2015 18:01:05 +0530 -Subject: [PATCH] ath10k: cleanup copy engine send completion - -The physical address necessary to unmap DMA ('bufferp') is stored -in ath10k_skb_cb as 'paddr'. ath10k doesn't rely on the meta/transfer_id -when handling send completion (htc ep id is stored in sk_buff control -buffer). So the unused output arguments {bufferp, nbytesp and transfer_idp} -are removed from CE send completion. This change is needed before removing -the shadow copy of copy engine (CE) descriptors in follow up patch. - -Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> -Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com> ---- - ---- a/drivers/net/wireless/ath/ath10k/ce.c -+++ b/drivers/net/wireless/ath/ath10k/ce.c -@@ -578,17 +578,13 @@ int ath10k_ce_revoke_recv_next(struct at - * The caller takes responsibility for any necessary locking. - */ - int ath10k_ce_completed_send_next_nolock(struct ath10k_ce_pipe *ce_state, -- void **per_transfer_contextp, -- u32 *bufferp, -- unsigned int *nbytesp, -- unsigned int *transfer_idp) -+ void **per_transfer_contextp) - { - struct ath10k_ce_ring *src_ring = ce_state->src_ring; - u32 ctrl_addr = ce_state->ctrl_addr; - struct ath10k *ar = ce_state->ar; - unsigned int nentries_mask = src_ring->nentries_mask; - unsigned int sw_index = src_ring->sw_index; -- struct ce_desc *sdesc, *sbase; - unsigned int read_index; - - if (src_ring->hw_index == sw_index) { -@@ -613,15 +609,6 @@ int ath10k_ce_completed_send_next_nolock - if (read_index == sw_index) - return -EIO; - -- sbase = src_ring->base_addr_owner_space; -- sdesc = CE_SRC_RING_TO_DESC(sbase, sw_index); -- -- /* Return data from completed source descriptor */ -- *bufferp = __le32_to_cpu(sdesc->addr); -- *nbytesp = __le16_to_cpu(sdesc->nbytes); -- *transfer_idp = MS(__le16_to_cpu(sdesc->flags), -- CE_DESC_FLAGS_META_DATA); -- - if (per_transfer_contextp) - *per_transfer_contextp = - src_ring->per_transfer_context[sw_index]; -@@ -696,10 +683,7 @@ int ath10k_ce_cancel_send_next(struct at - } - - int ath10k_ce_completed_send_next(struct ath10k_ce_pipe *ce_state, -- void **per_transfer_contextp, -- u32 *bufferp, -- unsigned int *nbytesp, -- unsigned int *transfer_idp) -+ void **per_transfer_contextp) - { - struct ath10k *ar = ce_state->ar; - struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); -@@ -707,9 +691,7 @@ int ath10k_ce_completed_send_next(struct - - spin_lock_bh(&ar_pci->ce_lock); - ret = ath10k_ce_completed_send_next_nolock(ce_state, -- per_transfer_contextp, -- bufferp, nbytesp, -- transfer_idp); -+ per_transfer_contextp); - spin_unlock_bh(&ar_pci->ce_lock); - - return ret; ---- a/drivers/net/wireless/ath/ath10k/ce.h -+++ b/drivers/net/wireless/ath/ath10k/ce.h -@@ -192,16 +192,10 @@ int ath10k_ce_completed_recv_next(struct - * Pops 1 completed send buffer from Source ring. - */ - int ath10k_ce_completed_send_next(struct ath10k_ce_pipe *ce_state, -- void **per_transfer_contextp, -- u32 *bufferp, -- unsigned int *nbytesp, -- unsigned int *transfer_idp); -+ void **per_transfer_contextp); - - int ath10k_ce_completed_send_next_nolock(struct ath10k_ce_pipe *ce_state, -- void **per_transfer_contextp, -- u32 *bufferp, -- unsigned int *nbytesp, -- unsigned int *transfer_idp); -+ void **per_transfer_contextp); - - /*==================CE Engine Initialization=======================*/ - ---- a/drivers/net/wireless/ath/ath10k/pci.c -+++ b/drivers/net/wireless/ath/ath10k/pci.c -@@ -910,9 +910,8 @@ static int ath10k_pci_diag_read_mem(stru - goto done; - - i = 0; -- while (ath10k_ce_completed_send_next_nolock(ce_diag, NULL, &buf, -- &completed_nbytes, -- &id) != 0) { -+ while (ath10k_ce_completed_send_next_nolock(ce_diag, -+ NULL) != 0) { - mdelay(1); - if (i++ > DIAG_ACCESS_CE_TIMEOUT_MS) { - ret = -EBUSY; -@@ -1073,9 +1072,8 @@ static int ath10k_pci_diag_write_mem(str - goto done; - - i = 0; -- while (ath10k_ce_completed_send_next_nolock(ce_diag, NULL, &buf, -- &completed_nbytes, -- &id) != 0) { -+ while (ath10k_ce_completed_send_next_nolock(ce_diag, -+ NULL) != 0) { - mdelay(1); - - if (i++ > DIAG_ACCESS_CE_TIMEOUT_MS) { -@@ -1139,13 +1137,9 @@ static void ath10k_pci_htc_tx_cb(struct - struct ath10k *ar = ce_state->ar; - struct sk_buff_head list; - struct sk_buff *skb; -- u32 ce_data; -- unsigned int nbytes; -- unsigned int transfer_id; - - __skb_queue_head_init(&list); -- while (ath10k_ce_completed_send_next(ce_state, (void **)&skb, &ce_data, -- &nbytes, &transfer_id) == 0) { -+ while (ath10k_ce_completed_send_next(ce_state, (void **)&skb) == 0) { - /* no need to call tx completion for NULL pointers */ - if (skb == NULL) - continue; -@@ -1215,12 +1209,8 @@ static void ath10k_pci_htt_tx_cb(struct - { - struct ath10k *ar = ce_state->ar; - struct sk_buff *skb; -- u32 ce_data; -- unsigned int nbytes; -- unsigned int transfer_id; - -- while (ath10k_ce_completed_send_next(ce_state, (void **)&skb, &ce_data, -- &nbytes, &transfer_id) == 0) { -+ while (ath10k_ce_completed_send_next(ce_state, (void **)&skb) == 0) { - /* no need to call tx completion for NULL pointers */ - if (!skb) - continue; -@@ -1796,12 +1786,8 @@ err_dma: - static void ath10k_pci_bmi_send_done(struct ath10k_ce_pipe *ce_state) - { - struct bmi_xfer *xfer; -- u32 ce_data; -- unsigned int nbytes; -- unsigned int transfer_id; - -- if (ath10k_ce_completed_send_next(ce_state, (void **)&xfer, &ce_data, -- &nbytes, &transfer_id)) -+ if (ath10k_ce_completed_send_next(ce_state, (void **)&xfer)) - return; - - xfer->tx_done = true; |