diff --git a/drivers/net/altera_tse.c b/drivers/net/altera_tse.c index 54a944bfc4..47d0047fd6 100644 --- a/drivers/net/altera_tse.c +++ b/drivers/net/altera_tse.c @@ -198,6 +198,12 @@ static int alt_sgdma_do_async_transfer(volatile struct alt_sgdma_registers *dev, if (counter >= ALT_TSE_SGDMA_BUSY_WATCHDOG_CNTR) debug("Timeout waiting sgdma in do async!\n"); + /* + * Clear the RUN bit in the control register. This is needed + * to restart the SGDMA engine later on. + */ + dev->control = 0; + /* * Clear any (previous) status register information * that might occlude our error checking later.