[ar71xx] ag71xx driver: don't use dma_cache_wback_inv
authorGabor Juhos <juhosg@openwrt.org>
Fri, 5 Dec 2008 10:39:46 +0000 (10:39 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Fri, 5 Dec 2008 10:39:46 +0000 (10:39 +0000)
SVN-Revision: 13523

target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h
target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_main.c

index ac2c871..40715c9 100644 (file)
@@ -37,7 +37,7 @@
 #define ETH_FCS_LEN    4
 
 #define AG71XX_DRV_NAME                "ag71xx"
 #define ETH_FCS_LEN    4
 
 #define AG71XX_DRV_NAME                "ag71xx"
-#define AG71XX_DRV_VERSION     "0.5.6"
+#define AG71XX_DRV_VERSION     "0.5.7"
 
 #define AG71XX_NAPI_TX         1
 
 
 #define AG71XX_NAPI_TX         1
 
index 6793b4d..16dc029 100644 (file)
@@ -196,6 +196,9 @@ static int ag71xx_ring_rx_init(struct ag71xx *ag)
                        break;
                }
 
                        break;
                }
 
+               dma_map_single(NULL, skb->data, AG71XX_RX_PKT_SIZE,
+                               DMA_FROM_DEVICE);
+
                skb->dev = ag->dev;
                skb_reserve(skb, AG71XX_RX_PKT_RESERVE);
 
                skb->dev = ag->dev;
                skb_reserve(skb, AG71XX_RX_PKT_RESERVE);
 
@@ -234,8 +237,12 @@ static int ag71xx_ring_rx_refill(struct ag71xx *ag)
                                break;
                        }
 
                                break;
                        }
 
+                       dma_map_single(NULL, skb->data, AG71XX_RX_PKT_SIZE,
+                                       DMA_FROM_DEVICE);
+
                        skb_reserve(skb, AG71XX_RX_PKT_RESERVE);
                        skb->dev = ag->dev;
                        skb_reserve(skb, AG71XX_RX_PKT_RESERVE);
                        skb->dev = ag->dev;
+
                        ring->buf[i].skb = skb;
                        ring->descs[i].data = virt_to_phys(skb->data);
                }
                        ring->buf[i].skb = skb;
                        ring->descs[i].data = virt_to_phys(skb->data);
                }
@@ -468,7 +475,7 @@ static int ag71xx_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
                goto err_drop;
        }
 
                goto err_drop;
        }
 
-       dma_cache_wback_inv((unsigned long)skb->data, skb->len);
+       dma_map_single(NULL, skb->data, skb->len, DMA_TO_DEVICE);
 
        ring->buf[i].skb = skb;
 
 
        ring->buf[i].skb = skb;
 
@@ -621,8 +628,6 @@ static int ag71xx_rx_packets(struct ag71xx *ag, int limit)
                pktlen = ag71xx_desc_pktlen(desc);
                pktlen -= ETH_FCS_LEN;
 
                pktlen = ag71xx_desc_pktlen(desc);
                pktlen -= ETH_FCS_LEN;
 
-               /* TODO: move it into the refill function */
-               dma_cache_wback_inv((unsigned long)skb->data, pktlen);
                skb_put(skb, pktlen);
 
                skb->dev = dev;
                skb_put(skb, pktlen);
 
                skb->dev = dev;