diff options
Diffstat (limited to 'package/kernel/mac80211/patches/309-ath10k-remove-shadow-copy-of-CE-descriptors-for-sour.patch')
-rw-r--r-- | package/kernel/mac80211/patches/309-ath10k-remove-shadow-copy-of-CE-descriptors-for-sour.patch | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/package/kernel/mac80211/patches/309-ath10k-remove-shadow-copy-of-CE-descriptors-for-sour.patch b/package/kernel/mac80211/patches/309-ath10k-remove-shadow-copy-of-CE-descriptors-for-sour.patch deleted file mode 100644 index 5bd8833..0000000 --- a/package/kernel/mac80211/patches/309-ath10k-remove-shadow-copy-of-CE-descriptors-for-sour.patch +++ /dev/null @@ -1,90 +0,0 @@ -From: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> -Date: Fri, 23 Oct 2015 18:01:06 +0530 -Subject: [PATCH] ath10k: remove shadow copy of CE descriptors for source - ring - -For the messages from host to target, shadow copy of CE descriptors -are maintained in source ring. Before writing actual CE descriptor, -first shadow copy is filled and then it is copied to CE address space. -To optimize in download path and to reduce d-cache pressure, removing -shadow copy of CE descriptors. This will also reduce driver memory -consumption by 33KB during on device probing. - -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 -@@ -921,27 +921,6 @@ ath10k_ce_alloc_src_ring(struct ath10k * - src_ring->base_addr_ce_space_unaligned, - CE_DESC_RING_ALIGN); - -- /* -- * Also allocate a shadow src ring in regular -- * mem to use for faster access. -- */ -- src_ring->shadow_base_unaligned = -- kmalloc((nentries * sizeof(struct ce_desc) + -- CE_DESC_RING_ALIGN), GFP_KERNEL); -- if (!src_ring->shadow_base_unaligned) { -- dma_free_coherent(ar->dev, -- (nentries * sizeof(struct ce_desc) + -- CE_DESC_RING_ALIGN), -- src_ring->base_addr_owner_space, -- src_ring->base_addr_ce_space); -- kfree(src_ring); -- return ERR_PTR(-ENOMEM); -- } -- -- src_ring->shadow_base = PTR_ALIGN( -- src_ring->shadow_base_unaligned, -- CE_DESC_RING_ALIGN); -- - return src_ring; - } - -@@ -1120,7 +1099,6 @@ void ath10k_ce_free_pipe(struct ath10k * - struct ath10k_ce_pipe *ce_state = &ar_pci->ce_states[ce_id]; - - if (ce_state->src_ring) { -- kfree(ce_state->src_ring->shadow_base_unaligned); - dma_free_coherent(ar->dev, - (ce_state->src_ring->nentries * - sizeof(struct ce_desc) + ---- a/drivers/net/wireless/ath/ath10k/ce.h -+++ b/drivers/net/wireless/ath/ath10k/ce.h -@@ -100,12 +100,6 @@ struct ath10k_ce_ring { - - /* CE address space */ - u32 base_addr_ce_space; -- /* -- * Start of shadow copy of descriptors, within regular memory. -- * Aligned to descriptor-size boundary. -- */ -- void *shadow_base_unaligned; -- struct ce_desc *shadow_base; - - /* keep last */ - void *per_transfer_context[0]; ---- a/drivers/net/wireless/ath/ath10k/pci.c -+++ b/drivers/net/wireless/ath/ath10k/pci.c -@@ -1594,7 +1594,6 @@ static void ath10k_pci_tx_pipe_cleanup(s - struct ath10k_pci *ar_pci; - struct ath10k_ce_pipe *ce_pipe; - struct ath10k_ce_ring *ce_ring; -- struct ce_desc *ce_desc; - struct sk_buff *skb; - int i; - -@@ -1609,10 +1608,6 @@ static void ath10k_pci_tx_pipe_cleanup(s - if (!pci_pipe->buf_sz) - return; - -- ce_desc = ce_ring->shadow_base; -- if (WARN_ON(!ce_desc)) -- return; -- - for (i = 0; i < ce_ring->nentries; i++) { - skb = ce_ring->per_transfer_context[i]; - if (!skb) |