1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-28 00:04:05 +02:00

ramips: add ramips_cleanup_dma helper

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@18169 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
juhosg 2009-10-26 17:17:29 +00:00
parent 7a797f4b8f
commit 1d4a083881

View File

@ -50,6 +50,18 @@ ramips_fe_rr(unsigned reg)
return __raw_readl(ramips_fe_base + reg); return __raw_readl(ramips_fe_base + reg);
} }
static void
ramips_cleanup_dma(struct net_device *dev)
{
struct raeth_priv *priv = netdev_priv(dev);
dma_free_coherent(NULL, NUM_RX_DESC * sizeof(struct ramips_rx_dma),
priv->rx, priv->phy_rx);
dma_free_coherent(NULL, NUM_TX_DESC * sizeof(struct ramips_tx_dma),
priv->tx, priv->phy_tx);
}
static int static int
ramips_alloc_dma(struct net_device *dev) ramips_alloc_dma(struct net_device *dev)
{ {
@ -297,10 +309,7 @@ ramips_eth_stop(struct net_device *dev)
netif_stop_queue(dev); netif_stop_queue(dev);
tasklet_kill(&priv->tx_housekeeping_tasklet); tasklet_kill(&priv->tx_housekeeping_tasklet);
tasklet_kill(&priv->rx_tasklet); tasklet_kill(&priv->rx_tasklet);
dma_free_coherent(NULL, NUM_TX_DESC * sizeof(struct ramips_tx_dma), ramips_cleanup_dma(dev);
priv->tx, priv->phy_tx);
dma_free_coherent(NULL, NUM_RX_DESC * sizeof(struct ramips_rx_dma),
priv->rx, priv->phy_rx);
printk(KERN_DEBUG "ramips_eth: stopped\n"); printk(KERN_DEBUG "ramips_eth: stopped\n");
return 0; return 0;
} }