summaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorSam Yang <r52096@freescale.com>2009-03-17 10:24:59 +0800
committerSam Yang <r52096@freescale.com>2009-03-17 10:34:22 +0800
commite10eb45d290c472ccb07e8cded9153519e2e2245 (patch)
treeed472991ad97916d9da95a296bee73596a4f76e3 /drivers/net
parent2d1dd61bb31dda4a02ea3d3bf70df0c67c9cb628 (diff)
ENGR00109161 fec: fix cache operations for receive
dma_map_single was doing a clean+invalidate instead of invalidate. This causes receive checksum errors in the IP stack. Signed-off-by: Rob Herring <r.herring@freescale.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/fec.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/fec.c b/drivers/net/fec.c
index ea80b5407a1d..9c257fb2578c 100644
--- a/drivers/net/fec.c
+++ b/drivers/net/fec.c
@@ -2209,7 +2209,7 @@ static void __inline__ fec_localhw_setup(struct net_device *dev)
*/
static void __inline__ fec_dcache_inv_range(void * start, void * end)
{
- dma_sync_single(NULL, (unsigned long)__pa(start), (unsigned long) (end-start), DMA_FROM_DEVICE);
+ dmac_inv_range(start, end);
return ;
}
@@ -2218,7 +2218,7 @@ static void __inline__ fec_dcache_inv_range(void * start, void * end)
*/
static void __inline__ fec_dcache_flush_range(void * start, void * end)
{
- dma_sync_single(NULL, (unsigned long)__pa(start), (unsigned long) (end-start), DMA_BIDIRECTIONAL);
+ dmac_flush_range(start, end);
return ;
}