ramips: add ramips_cleanup_dma helper

SVN-Revision: 18169
lede-17.01
Gabor Juhos 2009-10-26 17:17:29 +00:00
parent defb7c0059
commit f69b042df9
1 changed files with 13 additions and 4 deletions

View File

@ -50,6 +50,18 @@ ramips_fe_rr(unsigned 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
ramips_alloc_dma(struct net_device *dev)
{
@ -297,10 +309,7 @@ ramips_eth_stop(struct net_device *dev)
netif_stop_queue(dev);
tasklet_kill(&priv->tx_housekeeping_tasklet);
tasklet_kill(&priv->rx_tasklet);
dma_free_coherent(NULL, NUM_TX_DESC * sizeof(struct ramips_tx_dma),
priv->tx, priv->phy_tx);
dma_free_coherent(NULL, NUM_RX_DESC * sizeof(struct ramips_rx_dma),
priv->rx, priv->phy_rx);
ramips_cleanup_dma(dev);
printk(KERN_DEBUG "ramips_eth: stopped\n");
return 0;
}