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: Albert Aribaud <albert.aribaud@free.fr> Acked-by: Prafulla Wadaskar <prafulla@marvell.com> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
This commit is contained in:
parent
ca08054e80
commit
c19a20d5bd
|
@ -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));
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue