diff options
Diffstat (limited to 'package/kernel/mac80211/patches/371-brcmfmac-remove-dummy-cache-flush-invalidate-functio.patch')
-rw-r--r-- | package/kernel/mac80211/patches/371-brcmfmac-remove-dummy-cache-flush-invalidate-functio.patch | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/371-brcmfmac-remove-dummy-cache-flush-invalidate-functio.patch b/package/kernel/mac80211/patches/371-brcmfmac-remove-dummy-cache-flush-invalidate-functio.patch new file mode 100644 index 0000000000..8c8eebe44f --- /dev/null +++ b/package/kernel/mac80211/patches/371-brcmfmac-remove-dummy-cache-flush-invalidate-functio.patch @@ -0,0 +1,120 @@ +From: Franky Lin <frankyl@broadcom.com> +Date: Wed, 20 May 2015 14:09:50 +0200 +Subject: [PATCH] brcmfmac: remove dummy cache flush/invalidate function + +brcmf_dma_flush and brcmf_dma_invalidate_cache are not necessary and +have never been implemented. + +Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> +Reviewed-by: Hante Meuleman <meuleman@broadcom.com> +Reviewed-by: Arend Van Spriel <arend@broadcom.com> +Signed-off-by: Franky Lin <frankyl@broadcom.com> +Signed-off-by: Arend van Spriel <arend@broadcom.com> +Signed-off-by: Kalle Valo <kvalo@codeaurora.org> +--- + +--- a/drivers/net/wireless/brcm80211/brcmfmac/commonring.c ++++ b/drivers/net/wireless/brcm80211/brcmfmac/commonring.c +@@ -22,17 +22,6 @@ + #include "core.h" + #include "commonring.h" + +- +-/* dma flushing needs implementation for mips and arm platforms. Should +- * be put in util. Note, this is not real flushing. It is virtual non +- * cached memory. Only write buffers should have to be drained. Though +- * this may be different depending on platform...... +- * SEE ALSO msgbuf.c +- */ +-#define brcmf_dma_flush(addr, len) +-#define brcmf_dma_invalidate_cache(addr, len) +- +- + void brcmf_commonring_register_cb(struct brcmf_commonring *commonring, + int (*cr_ring_bell)(void *ctx), + int (*cr_update_rptr)(void *ctx), +@@ -206,14 +195,9 @@ int brcmf_commonring_write_complete(stru + address = commonring->buf_addr; + address += (commonring->f_ptr * commonring->item_len); + if (commonring->f_ptr > commonring->w_ptr) { +- brcmf_dma_flush(address, +- (commonring->depth - commonring->f_ptr) * +- commonring->item_len); + address = commonring->buf_addr; + commonring->f_ptr = 0; + } +- brcmf_dma_flush(address, (commonring->w_ptr - commonring->f_ptr) * +- commonring->item_len); + + commonring->f_ptr = commonring->w_ptr; + +@@ -258,8 +242,6 @@ void *brcmf_commonring_get_read_ptr(stru + if (commonring->r_ptr == commonring->depth) + commonring->r_ptr = 0; + +- brcmf_dma_invalidate_cache(ret_addr, *n_ items * commonring->item_len); +- + return ret_addr; + } + +--- a/drivers/net/wireless/brcm80211/brcmfmac/msgbuf.c ++++ b/drivers/net/wireless/brcm80211/brcmfmac/msgbuf.c +@@ -278,16 +278,6 @@ struct brcmf_msgbuf_pktids { + struct brcmf_msgbuf_pktid *array; + }; + +- +-/* dma flushing needs implementation for mips and arm platforms. Should +- * be put in util. Note, this is not real flushing. It is virtual non +- * cached memory. Only write buffers should have to be drained. Though +- * this may be different depending on platform...... +- */ +-#define brcmf_dma_flush(addr, len) +-#define brcmf_dma_invalidate_cache(addr, len) +- +- + static void brcmf_msgbuf_rxbuf_ioctlresp_post(struct brcmf_msgbuf *msgbuf); + + +@@ -462,7 +452,6 @@ static int brcmf_msgbuf_tx_ioctl(struct + memcpy(msgbuf->ioctbuf, buf, buf_len); + else + memset(msgbuf->ioctbuf, 0, buf_len); +- brcmf_dma_flush(ioctl_buf, buf_len); + + err = brcmf_commonring_write_complete(commonring); + brcmf_commonring_unlock(commonring); +--- a/drivers/net/wireless/brcm80211/brcmfmac/pcie.c ++++ b/drivers/net/wireless/brcm80211/brcmfmac/pcie.c +@@ -276,15 +276,6 @@ static const u32 brcmf_ring_itemsize[BRC + }; + + +-/* dma flushing needs implementation for mips and arm platforms. Should +- * be put in util. Note, this is not real flushing. It is virtual non +- * cached memory. Only write buffers should have to be drained. Though +- * this may be different depending on platform...... +- */ +-#define brcmf_dma_flush(addr, len) +-#define brcmf_dma_invalidate_cache(addr, len) +- +- + static u32 + brcmf_pcie_read_reg32(struct brcmf_pciedev_info *devinfo, u32 reg_offset) + { +@@ -1174,7 +1165,6 @@ static int brcmf_pcie_init_scratchbuffer + goto fail; + + memset(devinfo->shared.scratch, 0, BRCMF_DMA_D2H_SCRATCH_BUF_LEN); +- brcmf_dma_flush(devinfo->shared.scratch, BRCMF_DMA_D2H_SCRATCH_BUF_LEN); + + addr = devinfo->shared.tcm_base_address + + BRCMF_SHARED_DMA_SCRATCH_ADDR_OFFSET; +@@ -1192,7 +1182,6 @@ static int brcmf_pcie_init_scratchbuffer + goto fail; + + memset(devinfo->shared.ringupd, 0, BRCMF_DMA_D2H_RINGUPD_BUF_LEN); +- brcmf_dma_flush(devinfo->shared.ringupd, BRCMF_DMA_D2H_RINGUPD_BUF_LEN); + + addr = devinfo->shared.tcm_base_address + + BRCMF_SHARED_DMA_RINGUPD_ADDR_OFFSET; |