Skip to content
Permalink
Browse files

ath79: ag71xx: pass correct device pointer to dma functions

linux 4.19 doesn't accept a NULL device for these functions.
It also complains that the device struct in net_device doesn't have
a dma_mask set.
Pass the device struct from platform_device for these functions.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
  • Loading branch information...
981213 authored and ynezz committed Dec 13, 2018
1 parent 8d3af28 commit 4eaa3626a82149420d34b535dc673a2b6861da55
Showing with 7 additions and 7 deletions.
  1. +7 −7 target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c
@@ -162,7 +162,7 @@ static void ag71xx_ring_rx_clean(struct ag71xx *ag)

for (i = 0; i < ring_size; i++)
if (ring->buf[i].rx_buf) {
dma_unmap_single(&ag->dev->dev, ring->buf[i].dma_addr,
dma_unmap_single(&ag->pdev->dev, ring->buf[i].dma_addr,
ag->rx_buf_size, DMA_FROM_DEVICE);
skb_free_frag(ring->buf[i].rx_buf);
}
@@ -187,7 +187,7 @@ static bool ag71xx_fill_rx_buf(struct ag71xx *ag, struct ag71xx_buf *buf,
return false;

buf->rx_buf = data;
buf->dma_addr = dma_map_single(&ag->dev->dev, data, ag->rx_buf_size,
buf->dma_addr = dma_map_single(&ag->pdev->dev, data, ag->rx_buf_size,
DMA_FROM_DEVICE);
desc->data = (u32) buf->dma_addr + offset;
return true;
@@ -276,7 +276,7 @@ static int ag71xx_rings_init(struct ag71xx *ag)
if (!tx->buf)
return -ENOMEM;

tx->descs_cpu = dma_alloc_coherent(NULL, ring_size * AG71XX_DESC_SIZE,
tx->descs_cpu = dma_alloc_coherent(&ag->pdev->dev, ring_size * AG71XX_DESC_SIZE,
&tx->descs_dma, GFP_ATOMIC);
if (!tx->descs_cpu) {
kfree(tx->buf);
@@ -299,7 +299,7 @@ static void ag71xx_rings_free(struct ag71xx *ag)
int ring_size = BIT(tx->order) + BIT(rx->order);

if (tx->descs_cpu)
dma_free_coherent(NULL, ring_size * AG71XX_DESC_SIZE,
dma_free_coherent(&ag->pdev->dev, ring_size * AG71XX_DESC_SIZE,
tx->descs_cpu, tx->descs_dma);

kfree(tx->buf);
@@ -892,7 +892,7 @@ static netdev_tx_t ag71xx_hard_start_xmit(struct sk_buff *skb,
goto err_drop;
}

dma_addr = dma_map_single(&dev->dev, skb->data, skb->len,
dma_addr = dma_map_single(&ag->pdev->dev, skb->data, skb->len,
DMA_TO_DEVICE);

i = ring->curr & ring_mask;
@@ -934,7 +934,7 @@ static netdev_tx_t ag71xx_hard_start_xmit(struct sk_buff *skb,
return NETDEV_TX_OK;

err_drop_unmap:
dma_unmap_single(&dev->dev, dma_addr, skb->len, DMA_TO_DEVICE);
dma_unmap_single(&ag->pdev->dev, dma_addr, skb->len, DMA_TO_DEVICE);

err_drop:
dev->stats.tx_dropped++;
@@ -1147,7 +1147,7 @@ static int ag71xx_rx_packets(struct ag71xx *ag, int limit)
pktlen = desc->ctrl & pktlen_mask;
pktlen -= ETH_FCS_LEN;

dma_unmap_single(&dev->dev, ring->buf[i].dma_addr,
dma_unmap_single(&ag->pdev->dev, ring->buf[i].dma_addr,
ag->rx_buf_size, DMA_FROM_DEVICE);

dev->stats.rx_packets++;

0 comments on commit 4eaa362

Please sign in to comment.
You can’t perform that action at this time.