From: Lucas Stach <dev@lynxeye.de>
To: barebox@lists.infradead.org
Subject: [PATCH 19/24] net: xgmac: convert to streaming DMA ops
Date: Sun, 1 Mar 2015 14:17:17 +0100 [thread overview]
Message-ID: <1425215842-6982-20-git-send-email-dev@lynxeye.de> (raw)
In-Reply-To: <1425215842-6982-1-git-send-email-dev@lynxeye.de>
Move to the common streaming DMA ops in order to get rid of
the direct usage of the ARM MMU functions for the cache
maintenance.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
---
drivers/net/xgmac.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/drivers/net/xgmac.c b/drivers/net/xgmac.c
index c1e4da8..f39dc4c 100644
--- a/drivers/net/xgmac.c
+++ b/drivers/net/xgmac.c
@@ -25,7 +25,6 @@
#include <errno.h>
#include <io.h>
#include <linux/err.h>
-#include <asm/mmu.h>
#define TX_NUM_DESC 1
#define RX_NUM_DESC 32
@@ -587,7 +586,7 @@ static int xgmac_send(struct eth_device *edev, void *packet, int length)
struct xgmac_dma_desc *txdesc = &priv->tx_chain[currdesc];
int ret;
- dma_flush_range((ulong) packet, (ulong)packet + length);
+ dma_sync_single_for_device((unsigned long)packet, length, DMA_TO_DEVICE);
desc_set_buf_addr_and_size(txdesc, packet, length);
desc_set_tx_owner(txdesc, TXDESC_FIRST_SEG |
TXDESC_LAST_SEG | TXDESC_CRC_EN_APPEND);
@@ -596,6 +595,7 @@ static int xgmac_send(struct eth_device *edev, void *packet, int length)
writel(1, priv->base + XGMAC_DMA_TX_POLL);
ret = wait_on_timeout(1 * SECOND, !desc_get_owner(txdesc));
+ dma_sync_single_for_cpu((unsigned long)packet, length, DMA_TO_DEVICE);
if (ret) {
dev_err(priv->dev, "TX timeout\n");
return ret;
@@ -611,14 +611,19 @@ static int xgmac_recv(struct eth_device *edev)
u32 currdesc = priv->rx_currdesc;
struct xgmac_dma_desc *rxdesc = &priv->rx_chain[currdesc];
int length = 0;
+ void *buf_addr;
/* check if the host has the desc */
if (desc_get_owner(rxdesc))
return -1; /* something bad happened */
length = desc_get_rx_frame_len(rxdesc);
+ buf_addr = desc_get_buf_addr(rxdesc);
- net_receive(edev, desc_get_buf_addr(rxdesc), length);
+ dma_sync_single_for_cpu((unsigned long)buf_addr, length, DMA_FROM_DEVICE);
+ net_receive(edev, buf_addr, length);
+ dma_sync_single_for_device((unsigned long)buf_addr, length,
+ DMA_FROM_DEVICE);
/* set descriptor back to owned by XGMAC */
desc_set_rx_owner(rxdesc);
--
2.1.0
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next prev parent reply other threads:[~2015-03-01 13:19 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-01 13:16 [PATCH 00/24] Phasing out direct usage of asm/mmu.h on ARM Lucas Stach
2015-03-01 13:16 ` [PATCH 01/24] usb: gadget: include common.h in header Lucas Stach
2015-03-01 13:17 ` [PATCH 02/24] ARM: move virt<->phys translation to io.h Lucas Stach
2015-03-01 13:17 ` [PATCH 03/24] dma: add streaming DMA ops Lucas Stach
2015-03-01 13:17 ` [PATCH 04/24] ARM: move DMA alloc functions to dma.h Lucas Stach
2015-03-01 13:17 ` [PATCH 05/24] ARM: implement streaming DMA ops Lucas Stach
2015-03-01 13:17 ` [PATCH 06/24] AHCI: convert to " Lucas Stach
2015-03-01 13:17 ` [PATCH 07/24] MCI: dw-mmc: " Lucas Stach
2015-03-01 13:17 ` [PATCH 08/24] MCI: imx: " Lucas Stach
2015-03-01 13:17 ` [PATCH 09/24] MCI: tegra-sdmmc: " Lucas Stach
2015-03-01 13:17 ` [PATCH 10/24] net: arc-emac: " Lucas Stach
2015-03-01 13:17 ` [PATCH 11/24] net: cpsw: " Lucas Stach
2015-03-02 8:37 ` Jan Weitzel
2015-03-01 13:17 ` [PATCH 12/24] net: at91_ether: " Lucas Stach
2015-03-01 13:17 ` [PATCH 13/24] net: davinci_emac: " Lucas Stach
2015-03-01 13:17 ` [PATCH 14/24] net: designware: " Lucas Stach
2015-03-01 13:17 ` [PATCH 15/24] net: fec: " Lucas Stach
2015-03-01 13:17 ` [PATCH 16/24] net: macb: " Lucas Stach
2015-03-01 13:17 ` [PATCH 17/24] net: orion-gbe: " Lucas Stach
2015-03-01 13:17 ` [PATCH 18/24] net: rtl8169: " Lucas Stach
2015-03-01 13:17 ` Lucas Stach [this message]
2015-03-01 13:17 ` [PATCH 20/24] usb: gadget: fsl_udc: " Lucas Stach
2015-03-01 13:17 ` [PATCH 21/24] usb: host: ehci: " Lucas Stach
2015-03-01 13:17 ` [PATCH 22/24] usb: host: ohci: " Lucas Stach
2015-03-01 13:17 ` [PATCH 23/24] ARM: bcm2835: mbox: " Lucas Stach
2015-03-01 13:17 ` [PATCH 24/24] ARM: MMU: unexport cache maintenance functions Lucas Stach
2015-03-03 8:37 ` [PATCH 00/24] Phasing out direct usage of asm/mmu.h on ARM Sascha Hauer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1425215842-6982-20-git-send-email-dev@lynxeye.de \
--to=dev@lynxeye.de \
--cc=barebox@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.