Skip to content
Snippets Groups Projects
Commit c19a20d5 authored by Albert Aribaud's avatar Albert Aribaud Committed by Ben Warren
Browse files

kirkwood_egiga: bugfix: add DMA sequence points


Insert isb() sequence points to ensure DMA descriptors
are filled in and set up before actual DMA occurs.

Signed-off-by: default avatarAlbert Aribaud <albert.aribaud@free.fr>
Acked-by: default avatarPrafulla Wadaskar <prafulla@marvell.com>
Signed-off-by: default avatarBen Warren <biggerbadderben@gmail.com>
parent ca08054e
No related branches found
No related tags found
No related merge requests found
......@@ -447,6 +447,8 @@ static int kwgbe_init(struct eth_device *dev)
/* Assignment of Rx CRDB of given RXUQ */
KWGBEREG_WR(regs->rxcdp[RXUQ], (u32) dkwgbe->p_rxdesc_curr);
/* ensure previous write is done before enabling Rx DMA */
isb();
/* Enable port Rx. */
KWGBEREG_WR(regs->rqc, (1 << RXUQ));
......@@ -536,8 +538,13 @@ static int kwgbe_send(struct eth_device *dev, volatile void *dataptr,
p_txdesc->buf_ptr = (u8 *) p;
p_txdesc->byte_cnt = datasize;
/* Apply send command using zeroth TXUQ */
/* Set this tc desc as zeroth TXUQ */
KWGBEREG_WR(regs->tcqdp[TXUQ], (u32) p_txdesc);
/* ensure tx desc writes above are performed before we start Tx DMA */
isb();
/* Apply send command using zeroth TXUQ */
KWGBEREG_WR(regs->tqc, (1 << TXUQ));
/*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment