pxa168_eth: 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. Note that this driver seems to entirely lack dma_map_single error handling, but that is left for another time. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
74e0deb89a
commit
e86b76f633
@ -201,6 +201,7 @@ struct tx_desc {
|
||||
};
|
||||
|
||||
struct pxa168_eth_private {
|
||||
struct platform_device *pdev;
|
||||
int port_num; /* User Ethernet port number */
|
||||
int phy_addr;
|
||||
int phy_speed;
|
||||
@ -331,7 +332,7 @@ static void rxq_refill(struct net_device *dev)
|
||||
used_rx_desc = pep->rx_used_desc_q;
|
||||
p_used_rx_desc = &pep->p_rx_desc_area[used_rx_desc];
|
||||
size = skb_end_pointer(skb) - skb->data;
|
||||
p_used_rx_desc->buf_ptr = dma_map_single(NULL,
|
||||
p_used_rx_desc->buf_ptr = dma_map_single(&pep->pdev->dev,
|
||||
skb->data,
|
||||
size,
|
||||
DMA_FROM_DEVICE);
|
||||
@ -743,7 +744,7 @@ static int txq_reclaim(struct net_device *dev, int force)
|
||||
netdev_err(dev, "Error in TX\n");
|
||||
dev->stats.tx_errors++;
|
||||
}
|
||||
dma_unmap_single(NULL, addr, count, DMA_TO_DEVICE);
|
||||
dma_unmap_single(&pep->pdev->dev, addr, count, DMA_TO_DEVICE);
|
||||
if (skb)
|
||||
dev_kfree_skb_irq(skb);
|
||||
released++;
|
||||
@ -805,7 +806,7 @@ static int rxq_process(struct net_device *dev, int budget)
|
||||
if (rx_next_curr_desc == rx_used_desc)
|
||||
pep->rx_resource_err = 1;
|
||||
pep->rx_desc_count--;
|
||||
dma_unmap_single(NULL, rx_desc->buf_ptr,
|
||||
dma_unmap_single(&pep->pdev->dev, rx_desc->buf_ptr,
|
||||
rx_desc->buf_size,
|
||||
DMA_FROM_DEVICE);
|
||||
received_packets++;
|
||||
@ -1274,7 +1275,8 @@ pxa168_eth_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
length = skb->len;
|
||||
pep->tx_skb[tx_index] = skb;
|
||||
desc->byte_cnt = length;
|
||||
desc->buf_ptr = dma_map_single(NULL, skb->data, length, DMA_TO_DEVICE);
|
||||
desc->buf_ptr = dma_map_single(&pep->pdev->dev, skb->data, length,
|
||||
DMA_TO_DEVICE);
|
||||
|
||||
skb_tx_timestamp(skb);
|
||||
|
||||
@ -1528,6 +1530,7 @@ static int pxa168_eth_probe(struct platform_device *pdev)
|
||||
if (err)
|
||||
goto err_free_mdio;
|
||||
|
||||
pep->pdev = pdev;
|
||||
SET_NETDEV_DEV(dev, &pdev->dev);
|
||||
pxa168_init_hw(pep);
|
||||
err = register_netdev(dev);
|
||||
|
Loading…
Reference in New Issue
Block a user