* [U-Boot] [PATCH V2] kirkwood_egiga: bugfix: add DMA sequence points
@ 2010-07-10 13:41 Albert Aribaud
2010-07-10 14:18 ` Prafulla Wadaskar
2010-07-12 7:03 ` Ben Warren
0 siblings, 2 replies; 3+ messages in thread
From: Albert Aribaud @ 2010-07-10 13:41 UTC (permalink / raw)
To: u-boot
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>
---
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));
/*
--
1.6.4.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [U-Boot] [PATCH V2] kirkwood_egiga: bugfix: add DMA sequence points
2010-07-10 13:41 [U-Boot] [PATCH V2] kirkwood_egiga: bugfix: add DMA sequence points Albert Aribaud
@ 2010-07-10 14:18 ` Prafulla Wadaskar
2010-07-12 7:03 ` Ben Warren
1 sibling, 0 replies; 3+ messages in thread
From: Prafulla Wadaskar @ 2010-07-10 14:18 UTC (permalink / raw)
To: u-boot
> -----Original Message-----
> From: u-boot-bounces at lists.denx.de
> [mailto:u-boot-bounces at lists.denx.de] On Behalf Of Albert Aribaud
> Sent: Saturday, July 10, 2010 7:11 PM
> To: u-boot at lists.denx.de
> 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 <albert.aribaud@free.fr>
> ---
> 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 <prafulla@marvell.com>
Regards..
Prafulla . .
^ permalink raw reply [flat|nested] 3+ messages in thread
* [U-Boot] [PATCH V2] kirkwood_egiga: bugfix: add DMA sequence points
2010-07-10 13:41 [U-Boot] [PATCH V2] kirkwood_egiga: bugfix: add DMA sequence points Albert Aribaud
2010-07-10 14:18 ` Prafulla Wadaskar
@ 2010-07-12 7:03 ` Ben Warren
1 sibling, 0 replies; 3+ messages in thread
From: Ben Warren @ 2010-07-12 7:03 UTC (permalink / raw)
To: u-boot
Hi Albert,
On 7/10/2010 6:41 AM, Albert Aribaud wrote:
> 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>
> ---
> PATCHSET HISTORY
>
> V1: initial submit
> V2: fixed badly placed isb()
>
> drivers/net/kirkwood_egiga.c | 9 ++++++++-
> 1 files changed, 8 insertions(+), 1 deletions(-)
Applied to net repo.
thanks,
Ben
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-07-12 7:03 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-10 13:41 [U-Boot] [PATCH V2] kirkwood_egiga: bugfix: add DMA sequence points Albert Aribaud
2010-07-10 14:18 ` Prafulla Wadaskar
2010-07-12 7:03 ` Ben Warren
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox