> -----Original Message-----
> From: [email protected] 
> [mailto:[email protected]] On Behalf Of Albert Aribaud
> Sent: Saturday, July 10, 2010 7:11 PM
> To: [email protected]
> Subject: [U-Boot] [PATCH V2] 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 <[email protected]>
> ---
> PATCHSET HISTORY
> 
> V1: initial submit
> V2: fixed badly placed isb()
> 
>  drivers/net/kirkwood_egiga.c |    9 ++++++++-
>  1 files changed, 8 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/net/kirkwood_egiga.c 
> b/drivers/net/kirkwood_egiga.c
> index 932792e..ea0c522 100644
> --- a/drivers/net/kirkwood_egiga.c
> +++ b/drivers/net/kirkwood_egiga.c
> @@ -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));
>  
>       /*

Acked-by: Prafulla Wadaskar <[email protected]>

Regards..
Prafulla . .
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to