diff options
Diffstat (limited to 'drivers/net/mv643xx_eth.c')
| -rw-r--r-- | drivers/net/mv643xx_eth.c | 41 | 
1 files changed, 22 insertions, 19 deletions
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c index d5838528791..1361ddc8d31 100644 --- a/drivers/net/mv643xx_eth.c +++ b/drivers/net/mv643xx_eth.c @@ -571,7 +571,7 @@ static int rxq_process(struct rx_queue *rxq, int budget)  		if (rxq->rx_curr_desc == rxq->rx_ring_size)  			rxq->rx_curr_desc = 0; -		dma_unmap_single(NULL, rx_desc->buf_ptr, +		dma_unmap_single(mp->dev->dev.parent, rx_desc->buf_ptr,  				 rx_desc->buf_size, DMA_FROM_DEVICE);  		rxq->rx_desc_count--;  		rx++; @@ -677,8 +677,9 @@ static int rxq_refill(struct rx_queue *rxq, int budget)  		rx_desc = rxq->rx_desc_area + rx; -		rx_desc->buf_ptr = dma_map_single(NULL, skb->data, -					mp->skb_size, DMA_FROM_DEVICE); +		rx_desc->buf_ptr = dma_map_single(mp->dev->dev.parent, +						  skb->data, mp->skb_size, +						  DMA_FROM_DEVICE);  		rx_desc->buf_size = mp->skb_size;  		rxq->rx_skb[rx] = skb;  		wmb(); @@ -717,6 +718,7 @@ static inline unsigned int has_tiny_unaligned_frags(struct sk_buff *skb)  static void txq_submit_frag_skb(struct tx_queue *txq, struct sk_buff *skb)  { +	struct mv643xx_eth_private *mp = txq_to_mp(txq);  	int nr_frags = skb_shinfo(skb)->nr_frags;  	int frag; @@ -745,10 +747,10 @@ static void txq_submit_frag_skb(struct tx_queue *txq, struct sk_buff *skb)  		desc->l4i_chk = 0;  		desc->byte_cnt = this_frag->size; -		desc->buf_ptr = dma_map_page(NULL, this_frag->page, -						this_frag->page_offset, -						this_frag->size, -						DMA_TO_DEVICE); +		desc->buf_ptr = dma_map_page(mp->dev->dev.parent, +					     this_frag->page, +					     this_frag->page_offset, +					     this_frag->size, DMA_TO_DEVICE);  	}  } @@ -825,7 +827,8 @@ no_csum:  	desc->l4i_chk = l4i_chk;  	desc->byte_cnt = length; -	desc->buf_ptr = dma_map_single(NULL, skb->data, length, DMA_TO_DEVICE); +	desc->buf_ptr = dma_map_single(mp->dev->dev.parent, skb->data, +				       length, DMA_TO_DEVICE);  	__skb_queue_tail(&txq->tx_skb, skb); @@ -955,10 +958,10 @@ static int txq_reclaim(struct tx_queue *txq, int budget, int force)  		}  		if (cmd_sts & TX_FIRST_DESC) { -			dma_unmap_single(NULL, desc->buf_ptr, +			dma_unmap_single(mp->dev->dev.parent, desc->buf_ptr,  					 desc->byte_cnt, DMA_TO_DEVICE);  		} else { -			dma_unmap_page(NULL, desc->buf_ptr, +			dma_unmap_page(mp->dev->dev.parent, desc->buf_ptr,  				       desc->byte_cnt, DMA_TO_DEVICE);  		} @@ -1891,9 +1894,9 @@ static int rxq_init(struct mv643xx_eth_private *mp, int index)  						mp->rx_desc_sram_size);  		rxq->rx_desc_dma = mp->rx_desc_sram_addr;  	} else { -		rxq->rx_desc_area = dma_alloc_coherent(NULL, size, -							&rxq->rx_desc_dma, -							GFP_KERNEL); +		rxq->rx_desc_area = dma_alloc_coherent(mp->dev->dev.parent, +						       size, &rxq->rx_desc_dma, +						       GFP_KERNEL);  	}  	if (rxq->rx_desc_area == NULL) { @@ -1944,7 +1947,7 @@ out_free:  	if (index == 0 && size <= mp->rx_desc_sram_size)  		iounmap(rxq->rx_desc_area);  	else -		dma_free_coherent(NULL, size, +		dma_free_coherent(mp->dev->dev.parent, size,  				  rxq->rx_desc_area,  				  rxq->rx_desc_dma); @@ -1976,7 +1979,7 @@ static void rxq_deinit(struct rx_queue *rxq)  	    rxq->rx_desc_area_size <= mp->rx_desc_sram_size)  		iounmap(rxq->rx_desc_area);  	else -		dma_free_coherent(NULL, rxq->rx_desc_area_size, +		dma_free_coherent(mp->dev->dev.parent, rxq->rx_desc_area_size,  				  rxq->rx_desc_area, rxq->rx_desc_dma);  	kfree(rxq->rx_skb); @@ -2004,9 +2007,9 @@ static int txq_init(struct mv643xx_eth_private *mp, int index)  						mp->tx_desc_sram_size);  		txq->tx_desc_dma = mp->tx_desc_sram_addr;  	} else { -		txq->tx_desc_area = dma_alloc_coherent(NULL, size, -							&txq->tx_desc_dma, -							GFP_KERNEL); +		txq->tx_desc_area = dma_alloc_coherent(mp->dev->dev.parent, +						       size, &txq->tx_desc_dma, +						       GFP_KERNEL);  	}  	if (txq->tx_desc_area == NULL) { @@ -2050,7 +2053,7 @@ static void txq_deinit(struct tx_queue *txq)  	    txq->tx_desc_area_size <= mp->tx_desc_sram_size)  		iounmap(txq->tx_desc_area);  	else -		dma_free_coherent(NULL, txq->tx_desc_area_size, +		dma_free_coherent(mp->dev->dev.parent, txq->tx_desc_area_size,  				  txq->tx_desc_area, txq->tx_desc_dma);  }  |