Commit 5dac33ad authored by Christoph Hellwig's avatar Christoph Hellwig Committed by David S. Miller

moxart_ether: pass struct device to DMA API functions

The DMA API generally relies on a struct device to work properly, and
only barely works without one for legacy reasons.  Pass the easily
available struct device from the platform_device to remedy this.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e86b76f6
...@@ -81,11 +81,13 @@ static void moxart_mac_free_memory(struct net_device *ndev) ...@@ -81,11 +81,13 @@ static void moxart_mac_free_memory(struct net_device *ndev)
priv->rx_buf_size, DMA_FROM_DEVICE); priv->rx_buf_size, DMA_FROM_DEVICE);
if (priv->tx_desc_base) if (priv->tx_desc_base)
dma_free_coherent(NULL, TX_REG_DESC_SIZE * TX_DESC_NUM, dma_free_coherent(&priv->pdev->dev,
TX_REG_DESC_SIZE * TX_DESC_NUM,
priv->tx_desc_base, priv->tx_base); priv->tx_desc_base, priv->tx_base);
if (priv->rx_desc_base) if (priv->rx_desc_base)
dma_free_coherent(NULL, RX_REG_DESC_SIZE * RX_DESC_NUM, dma_free_coherent(&priv->pdev->dev,
RX_REG_DESC_SIZE * RX_DESC_NUM,
priv->rx_desc_base, priv->rx_base); priv->rx_desc_base, priv->rx_base);
kfree(priv->tx_buf_base); kfree(priv->tx_buf_base);
...@@ -476,6 +478,7 @@ static int moxart_mac_probe(struct platform_device *pdev) ...@@ -476,6 +478,7 @@ static int moxart_mac_probe(struct platform_device *pdev)
priv = netdev_priv(ndev); priv = netdev_priv(ndev);
priv->ndev = ndev; priv->ndev = ndev;
priv->pdev = pdev;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0); res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
ndev->base_addr = res->start; ndev->base_addr = res->start;
...@@ -491,7 +494,7 @@ static int moxart_mac_probe(struct platform_device *pdev) ...@@ -491,7 +494,7 @@ static int moxart_mac_probe(struct platform_device *pdev)
priv->tx_buf_size = TX_BUF_SIZE; priv->tx_buf_size = TX_BUF_SIZE;
priv->rx_buf_size = RX_BUF_SIZE; priv->rx_buf_size = RX_BUF_SIZE;
priv->tx_desc_base = dma_alloc_coherent(NULL, TX_REG_DESC_SIZE * priv->tx_desc_base = dma_alloc_coherent(&pdev->dev, TX_REG_DESC_SIZE *
TX_DESC_NUM, &priv->tx_base, TX_DESC_NUM, &priv->tx_base,
GFP_DMA | GFP_KERNEL); GFP_DMA | GFP_KERNEL);
if (!priv->tx_desc_base) { if (!priv->tx_desc_base) {
...@@ -499,7 +502,7 @@ static int moxart_mac_probe(struct platform_device *pdev) ...@@ -499,7 +502,7 @@ static int moxart_mac_probe(struct platform_device *pdev)
goto init_fail; goto init_fail;
} }
priv->rx_desc_base = dma_alloc_coherent(NULL, RX_REG_DESC_SIZE * priv->rx_desc_base = dma_alloc_coherent(&pdev->dev, RX_REG_DESC_SIZE *
RX_DESC_NUM, &priv->rx_base, RX_DESC_NUM, &priv->rx_base,
GFP_DMA | GFP_KERNEL); GFP_DMA | GFP_KERNEL);
if (!priv->rx_desc_base) { if (!priv->rx_desc_base) {
......
...@@ -292,6 +292,7 @@ ...@@ -292,6 +292,7 @@
#define LINK_STATUS 0x4 #define LINK_STATUS 0x4
struct moxart_mac_priv_t { struct moxart_mac_priv_t {
struct platform_device *pdev;
void __iomem *base; void __iomem *base;
unsigned int reg_maccr; unsigned int reg_maccr;
unsigned int reg_imr; unsigned int reg_imr;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment