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>
This commit is contained in:
		 Chuanhong Guo
					Chuanhong Guo
				
			
				
					committed by
					
						 Petr Štetiar
						Petr Štetiar
					
				
			
			
				
	
			
			
			 Petr Štetiar
						Petr Štetiar
					
				
			
						parent
						
							8d3af284e0
						
					
				
				
					commit
					4eaa3626a8
				
			| @@ -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++; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user