From: Thomas Chou Date: Mon, 9 Nov 2015 00:00:00 +0000 (+0800) Subject: net: altera_tse: wait sgdma in altera_tse_recv X-Git-Url: http://git.dujemihanovic.xyz/%22http:/www.sics.se/static/git-logo.png?a=commitdiff_plain;h=577662f0845d5fa701261879c7d18c8073cf9e7d;p=u-boot.git net: altera_tse: wait sgdma in altera_tse_recv Move the sgdma wait from free_pkt to recv. This is the proper place to wait recv sgdma done. Signed-off-by: Thomas Chou Reviewed-by: Marek Vasut --- diff --git a/drivers/net/altera_tse.c b/drivers/net/altera_tse.c index fe8c524829..8ec0beb3f2 100644 --- a/drivers/net/altera_tse.c +++ b/drivers/net/altera_tse.c @@ -186,6 +186,7 @@ static int altera_tse_recv(struct udevice *dev, int flags, uchar **packetp) if (rx_desc->descriptor_status & ALT_SGDMA_DESCRIPTOR_STATUS_TERMINATED_BY_EOP_MSK) { + alt_sgdma_wait_transfer(priv->sgdma_rx); packet_length = rx_desc->actual_bytes_transferred; debug("recv %d bytes\n", packet_length); *packetp = priv->rx_buf; @@ -203,7 +204,6 @@ static int altera_tse_free_pkt(struct udevice *dev, uchar *packet, struct alt_sgdma_descriptor *rx_desc = priv->rx_desc; unsigned long rx_buf = (unsigned long)priv->rx_buf; - alt_sgdma_wait_transfer(priv->sgdma_rx); invalidate_dcache_range(rx_buf, rx_buf + PKTSIZE_ALIGN); alt_sgdma_construct_descriptor( rx_desc,