|
|
9d0c12 |
From 3eb002458e9cd042f72da3f6d6faba02c4885603 Mon Sep 17 00:00:00 2001
|
|
|
9d0c12 |
From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
|
|
|
9d0c12 |
Date: Sun, 23 Aug 2020 10:03:53 +0200
|
|
|
9d0c12 |
Subject: [PATCH 06/14] net: atheros: switch from 'pci_' to 'dma_' API
|
|
|
9d0c12 |
Git-commit: 85eb5bc33717eea3642148632f3ecbefb7ae6a02
|
|
|
9d0c12 |
Patch-mainline: v5.10-rc1
|
|
|
9d0c12 |
References: git-fixes
|
|
|
9d0c12 |
|
|
|
9d0c12 |
The wrappers in include/linux/pci-dma-compat.h should go away.
|
|
|
9d0c12 |
|
|
|
9d0c12 |
The patch has been generated with the coccinelle script below and has been
|
|
|
9d0c12 |
hand modified to replace GFP_ with a correct flag.
|
|
|
9d0c12 |
It has been compile tested.
|
|
|
9d0c12 |
|
|
|
9d0c12 |
When memory is allocated in 'atl1e_setup_ring_resources()' (atl1e_main.c),
|
|
|
9d0c12 |
'atl1_setup_ring_resources()' (atl1.c) and 'atl2_setup_ring_resources()'
|
|
|
9d0c12 |
(atl2.c) GFP_KERNEL can be used because it can be called from a .ndo_open.
|
|
|
9d0c12 |
|
|
|
9d0c12 |
'atl1_setup_ring_resources()' (atl1.c) can also be called from a
|
|
|
9d0c12 |
'.set_ringparam' (see struct ethtool_ops) where sleep is also allowed.
|
|
|
9d0c12 |
|
|
|
9d0c12 |
Both cases are protected by 'rtnl_lock()' which is a mutex. So these
|
|
|
9d0c12 |
function can sleep.
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
- PCI_DMA_BIDIRECTIONAL
|
|
|
9d0c12 |
+ DMA_BIDIRECTIONAL
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
- PCI_DMA_TODEVICE
|
|
|
9d0c12 |
+ DMA_TO_DEVICE
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
- PCI_DMA_FROMDEVICE
|
|
|
9d0c12 |
+ DMA_FROM_DEVICE
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
- PCI_DMA_NONE
|
|
|
9d0c12 |
+ DMA_NONE
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
expression e1, e2, e3;
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
- pci_alloc_consistent(e1, e2, e3)
|
|
|
9d0c12 |
+ dma_alloc_coherent(&e1->dev, e2, e3, GFP_)
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
expression e1, e2, e3;
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
- pci_zalloc_consistent(e1, e2, e3)
|
|
|
9d0c12 |
+ dma_alloc_coherent(&e1->dev, e2, e3, GFP_)
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
expression e1, e2, e3, e4;
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
- pci_free_consistent(e1, e2, e3, e4)
|
|
|
9d0c12 |
+ dma_free_coherent(&e1->dev, e2, e3, e4)
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
expression e1, e2, e3, e4;
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
- pci_map_single(e1, e2, e3, e4)
|
|
|
9d0c12 |
+ dma_map_single(&e1->dev, e2, e3, e4)
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
expression e1, e2, e3, e4;
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
- pci_unmap_single(e1, e2, e3, e4)
|
|
|
9d0c12 |
+ dma_unmap_single(&e1->dev, e2, e3, e4)
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
expression e1, e2, e3, e4, e5;
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
- pci_map_page(e1, e2, e3, e4, e5)
|
|
|
9d0c12 |
+ dma_map_page(&e1->dev, e2, e3, e4, e5)
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
expression e1, e2, e3, e4;
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
- pci_unmap_page(e1, e2, e3, e4)
|
|
|
9d0c12 |
+ dma_unmap_page(&e1->dev, e2, e3, e4)
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
expression e1, e2, e3, e4;
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
- pci_map_sg(e1, e2, e3, e4)
|
|
|
9d0c12 |
+ dma_map_sg(&e1->dev, e2, e3, e4)
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
expression e1, e2, e3, e4;
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
- pci_unmap_sg(e1, e2, e3, e4)
|
|
|
9d0c12 |
+ dma_unmap_sg(&e1->dev, e2, e3, e4)
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
expression e1, e2, e3, e4;
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
- pci_dma_sync_single_for_cpu(e1, e2, e3, e4)
|
|
|
9d0c12 |
+ dma_sync_single_for_cpu(&e1->dev, e2, e3, e4)
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
expression e1, e2, e3, e4;
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
- pci_dma_sync_single_for_device(e1, e2, e3, e4)
|
|
|
9d0c12 |
+ dma_sync_single_for_device(&e1->dev, e2, e3, e4)
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
expression e1, e2, e3, e4;
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
- pci_dma_sync_sg_for_cpu(e1, e2, e3, e4)
|
|
|
9d0c12 |
+ dma_sync_sg_for_cpu(&e1->dev, e2, e3, e4)
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
expression e1, e2, e3, e4;
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
- pci_dma_sync_sg_for_device(e1, e2, e3, e4)
|
|
|
9d0c12 |
+ dma_sync_sg_for_device(&e1->dev, e2, e3, e4)
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
expression e1, e2;
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
- pci_dma_mapping_error(e1, e2)
|
|
|
9d0c12 |
+ dma_mapping_error(&e1->dev, e2)
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
expression e1, e2;
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
- pci_set_dma_mask(e1, e2)
|
|
|
9d0c12 |
+ dma_set_mask(&e1->dev, e2)
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
expression e1, e2;
|
|
|
9d0c12 |
@@
|
|
|
9d0c12 |
- pci_set_consistent_dma_mask(e1, e2)
|
|
|
9d0c12 |
+ dma_set_coherent_mask(&e1->dev, e2)
|
|
|
9d0c12 |
|
|
|
9d0c12 |
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
|
|
|
9d0c12 |
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
|
9d0c12 |
Signed-off-by: Denis Kirjanov <denis.kirjanov@suse.com>
|
|
|
9d0c12 |
---
|
|
|
9d0c12 |
drivers/net/ethernet/atheros/atl1c/atl1c_main.c | 48 ++++++++++-----------
|
|
|
9d0c12 |
drivers/net/ethernet/atheros/atl1e/atl1e_main.c | 57 +++++++++++++++----------
|
|
|
9d0c12 |
drivers/net/ethernet/atheros/atlx/atl1.c | 48 +++++++++++----------
|
|
|
9d0c12 |
drivers/net/ethernet/atheros/atlx/atl2.c | 12 +++---
|
|
|
9d0c12 |
4 files changed, 88 insertions(+), 77 deletions(-)
|
|
|
9d0c12 |
|
|
|
9d0c12 |
diff --git a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
|
|
|
9d0c12 |
index 179ad62a2bd2..9e970f5f773c 100644
|
|
|
9d0c12 |
--- a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
|
|
|
9d0c12 |
+++ b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
|
|
|
9d0c12 |
@@ -829,16 +829,16 @@ static inline void atl1c_clean_buffer(struct pci_dev *pdev,
|
|
|
9d0c12 |
return;
|
|
|
9d0c12 |
if (buffer_info->dma) {
|
|
|
9d0c12 |
if (buffer_info->flags & ATL1C_PCIMAP_FROMDEVICE)
|
|
|
9d0c12 |
- pci_driection = PCI_DMA_FROMDEVICE;
|
|
|
9d0c12 |
+ pci_driection = DMA_FROM_DEVICE;
|
|
|
9d0c12 |
else
|
|
|
9d0c12 |
- pci_driection = PCI_DMA_TODEVICE;
|
|
|
9d0c12 |
+ pci_driection = DMA_TO_DEVICE;
|
|
|
9d0c12 |
|
|
|
9d0c12 |
if (buffer_info->flags & ATL1C_PCIMAP_SINGLE)
|
|
|
9d0c12 |
- pci_unmap_single(pdev, buffer_info->dma,
|
|
|
9d0c12 |
- buffer_info->length, pci_driection);
|
|
|
9d0c12 |
+ dma_unmap_single(&pdev->dev, buffer_info->dma,
|
|
|
9d0c12 |
+ buffer_info->length, pci_driection);
|
|
|
9d0c12 |
else if (buffer_info->flags & ATL1C_PCIMAP_PAGE)
|
|
|
9d0c12 |
- pci_unmap_page(pdev, buffer_info->dma,
|
|
|
9d0c12 |
- buffer_info->length, pci_driection);
|
|
|
9d0c12 |
+ dma_unmap_page(&pdev->dev, buffer_info->dma,
|
|
|
9d0c12 |
+ buffer_info->length, pci_driection);
|
|
|
9d0c12 |
}
|
|
|
9d0c12 |
if (buffer_info->skb)
|
|
|
9d0c12 |
dev_consume_skb_any(buffer_info->skb);
|
|
|
9d0c12 |
@@ -936,9 +936,8 @@ static void atl1c_free_ring_resources(struct atl1c_adapter *adapter)
|
|
|
9d0c12 |
{
|
|
|
9d0c12 |
struct pci_dev *pdev = adapter->pdev;
|
|
|
9d0c12 |
|
|
|
9d0c12 |
- pci_free_consistent(pdev, adapter->ring_header.size,
|
|
|
9d0c12 |
- adapter->ring_header.desc,
|
|
|
9d0c12 |
- adapter->ring_header.dma);
|
|
|
9d0c12 |
+ dma_free_coherent(&pdev->dev, adapter->ring_header.size,
|
|
|
9d0c12 |
+ adapter->ring_header.desc, adapter->ring_header.dma);
|
|
|
9d0c12 |
adapter->ring_header.desc = NULL;
|
|
|
9d0c12 |
|
|
|
9d0c12 |
/* Note: just free tdp_ring.buffer_info,
|
|
|
9d0c12 |
@@ -1720,10 +1719,9 @@ static int atl1c_alloc_rx_buffer(struct atl1c_adapter *adapter)
|
|
|
9d0c12 |
ATL1C_SET_BUFFER_STATE(buffer_info, ATL1C_BUFFER_BUSY);
|
|
|
9d0c12 |
buffer_info->skb = skb;
|
|
|
9d0c12 |
buffer_info->length = adapter->rx_buffer_len;
|
|
|
9d0c12 |
- mapping = pci_map_single(pdev, vir_addr,
|
|
|
9d0c12 |
- buffer_info->length,
|
|
|
9d0c12 |
- PCI_DMA_FROMDEVICE);
|
|
|
9d0c12 |
- if (unlikely(pci_dma_mapping_error(pdev, mapping))) {
|
|
|
9d0c12 |
+ mapping = dma_map_single(&pdev->dev, vir_addr,
|
|
|
9d0c12 |
+ buffer_info->length, DMA_FROM_DEVICE);
|
|
|
9d0c12 |
+ if (unlikely(dma_mapping_error(&pdev->dev, mapping))) {
|
|
|
9d0c12 |
dev_kfree_skb(skb);
|
|
|
9d0c12 |
buffer_info->skb = NULL;
|
|
|
9d0c12 |
buffer_info->length = 0;
|
|
|
9d0c12 |
@@ -1834,8 +1832,8 @@ static void atl1c_clean_rx_irq(struct atl1c_adapter *adapter,
|
|
|
9d0c12 |
rfd_index = (rrs->word0 >> RRS_RX_RFD_INDEX_SHIFT) &
|
|
|
9d0c12 |
RRS_RX_RFD_INDEX_MASK;
|
|
|
9d0c12 |
buffer_info = &rfd_ring->buffer_info[rfd_index];
|
|
|
9d0c12 |
- pci_unmap_single(pdev, buffer_info->dma,
|
|
|
9d0c12 |
- buffer_info->length, PCI_DMA_FROMDEVICE);
|
|
|
9d0c12 |
+ dma_unmap_single(&pdev->dev, buffer_info->dma,
|
|
|
9d0c12 |
+ buffer_info->length, DMA_FROM_DEVICE);
|
|
|
9d0c12 |
skb = buffer_info->skb;
|
|
|
9d0c12 |
} else {
|
|
|
9d0c12 |
/* TODO */
|
|
|
9d0c12 |
@@ -2111,10 +2109,10 @@ static int atl1c_tx_map(struct atl1c_adapter *adapter,
|
|
|
9d0c12 |
|
|
|
9d0c12 |
buffer_info = atl1c_get_tx_buffer(adapter, use_tpd);
|
|
|
9d0c12 |
buffer_info->length = map_len;
|
|
|
9d0c12 |
- buffer_info->dma = pci_map_single(adapter->pdev,
|
|
|
9d0c12 |
- skb->data, hdr_len, PCI_DMA_TODEVICE);
|
|
|
9d0c12 |
- if (unlikely(pci_dma_mapping_error(adapter->pdev,
|
|
|
9d0c12 |
- buffer_info->dma)))
|
|
|
9d0c12 |
+ buffer_info->dma = dma_map_single(&adapter->pdev->dev,
|
|
|
9d0c12 |
+ skb->data, hdr_len,
|
|
|
9d0c12 |
+ DMA_TO_DEVICE);
|
|
|
9d0c12 |
+ if (unlikely(dma_mapping_error(&adapter->pdev->dev, buffer_info->dma)))
|
|
|
9d0c12 |
goto err_dma;
|
|
|
9d0c12 |
ATL1C_SET_BUFFER_STATE(buffer_info, ATL1C_BUFFER_BUSY);
|
|
|
9d0c12 |
ATL1C_SET_PCIMAP_TYPE(buffer_info, ATL1C_PCIMAP_SINGLE,
|
|
|
9d0c12 |
@@ -2136,10 +2134,10 @@ static int atl1c_tx_map(struct atl1c_adapter *adapter,
|
|
|
9d0c12 |
buffer_info = atl1c_get_tx_buffer(adapter, use_tpd);
|
|
|
9d0c12 |
buffer_info->length = buf_len - mapped_len;
|
|
|
9d0c12 |
buffer_info->dma =
|
|
|
9d0c12 |
- pci_map_single(adapter->pdev, skb->data + mapped_len,
|
|
|
9d0c12 |
- buffer_info->length, PCI_DMA_TODEVICE);
|
|
|
9d0c12 |
- if (unlikely(pci_dma_mapping_error(adapter->pdev,
|
|
|
9d0c12 |
- buffer_info->dma)))
|
|
|
9d0c12 |
+ dma_map_single(&adapter->pdev->dev,
|
|
|
9d0c12 |
+ skb->data + mapped_len,
|
|
|
9d0c12 |
+ buffer_info->length, DMA_TO_DEVICE);
|
|
|
9d0c12 |
+ if (unlikely(dma_mapping_error(&adapter->pdev->dev, buffer_info->dma)))
|
|
|
9d0c12 |
goto err_dma;
|
|
|
9d0c12 |
|
|
|
9d0c12 |
ATL1C_SET_BUFFER_STATE(buffer_info, ATL1C_BUFFER_BUSY);
|
|
|
9d0c12 |
@@ -2555,8 +2553,8 @@ static int atl1c_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|
|
9d0c12 |
* various kernel subsystems to support the mechanics required by a
|
|
|
9d0c12 |
* fixed-high-32-bit system.
|
|
|
9d0c12 |
*/
|
|
|
9d0c12 |
- if ((pci_set_dma_mask(pdev, DMA_BIT_MASK(32)) != 0) ||
|
|
|
9d0c12 |
- (pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)) != 0)) {
|
|
|
9d0c12 |
+ if ((dma_set_mask(&pdev->dev, DMA_BIT_MASK(32)) != 0) ||
|
|
|
9d0c12 |
+ (dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)) != 0)) {
|
|
|
9d0c12 |
dev_err(&pdev->dev, "No usable DMA configuration,aborting\n");
|
|
|
9d0c12 |
goto err_dma;
|
|
|
9d0c12 |
}
|
|
|
9d0c12 |
diff --git a/drivers/net/ethernet/atheros/atl1e/atl1e_main.c b/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
|
|
|
9d0c12 |
index 4f7b65825c15..9c149237d48a 100644
|
|
|
9d0c12 |
--- a/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
|
|
|
9d0c12 |
+++ b/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
|
|
|
9d0c12 |
@@ -658,11 +658,13 @@ static void atl1e_clean_tx_ring(struct atl1e_adapter *adapter)
|
|
|
9d0c12 |
tx_buffer = &tx_ring->tx_buffer[index];
|
|
|
9d0c12 |
if (tx_buffer->dma) {
|
|
|
9d0c12 |
if (tx_buffer->flags & ATL1E_TX_PCIMAP_SINGLE)
|
|
|
9d0c12 |
- pci_unmap_single(pdev, tx_buffer->dma,
|
|
|
9d0c12 |
- tx_buffer->length, PCI_DMA_TODEVICE);
|
|
|
9d0c12 |
+ dma_unmap_single(&pdev->dev, tx_buffer->dma,
|
|
|
9d0c12 |
+ tx_buffer->length,
|
|
|
9d0c12 |
+ DMA_TO_DEVICE);
|
|
|
9d0c12 |
else if (tx_buffer->flags & ATL1E_TX_PCIMAP_PAGE)
|
|
|
9d0c12 |
- pci_unmap_page(pdev, tx_buffer->dma,
|
|
|
9d0c12 |
- tx_buffer->length, PCI_DMA_TODEVICE);
|
|
|
9d0c12 |
+ dma_unmap_page(&pdev->dev, tx_buffer->dma,
|
|
|
9d0c12 |
+ tx_buffer->length,
|
|
|
9d0c12 |
+ DMA_TO_DEVICE);
|
|
|
9d0c12 |
tx_buffer->dma = 0;
|
|
|
9d0c12 |
}
|
|
|
9d0c12 |
}
|
|
|
9d0c12 |
@@ -778,8 +780,8 @@ static void atl1e_free_ring_resources(struct atl1e_adapter *adapter)
|
|
|
9d0c12 |
atl1e_clean_rx_ring(adapter);
|
|
|
9d0c12 |
|
|
|
9d0c12 |
if (adapter->ring_vir_addr) {
|
|
|
9d0c12 |
- pci_free_consistent(pdev, adapter->ring_size,
|
|
|
9d0c12 |
- adapter->ring_vir_addr, adapter->ring_dma);
|
|
|
9d0c12 |
+ dma_free_coherent(&pdev->dev, adapter->ring_size,
|
|
|
9d0c12 |
+ adapter->ring_vir_addr, adapter->ring_dma);
|
|
|
9d0c12 |
adapter->ring_vir_addr = NULL;
|
|
|
9d0c12 |
}
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@ -814,11 +816,12 @@ static int atl1e_setup_ring_resources(struct atl1e_adapter *adapter)
|
|
|
9d0c12 |
/* real ring DMA buffer */
|
|
|
9d0c12 |
|
|
|
9d0c12 |
size = adapter->ring_size;
|
|
|
9d0c12 |
- adapter->ring_vir_addr = pci_zalloc_consistent(pdev, adapter->ring_size,
|
|
|
9d0c12 |
- &adapter->ring_dma);
|
|
|
9d0c12 |
+ adapter->ring_vir_addr = dma_alloc_coherent(&pdev->dev,
|
|
|
9d0c12 |
+ adapter->ring_size,
|
|
|
9d0c12 |
+ &adapter->ring_dma, GFP_KERNEL);
|
|
|
9d0c12 |
if (adapter->ring_vir_addr == NULL) {
|
|
|
9d0c12 |
netdev_err(adapter->netdev,
|
|
|
9d0c12 |
- "pci_alloc_consistent failed, size = D%d\n", size);
|
|
|
9d0c12 |
+ "dma_alloc_coherent failed, size = D%d\n", size);
|
|
|
9d0c12 |
return -ENOMEM;
|
|
|
9d0c12 |
}
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@ -874,8 +877,8 @@ static int atl1e_setup_ring_resources(struct atl1e_adapter *adapter)
|
|
|
9d0c12 |
return 0;
|
|
|
9d0c12 |
failed:
|
|
|
9d0c12 |
if (adapter->ring_vir_addr != NULL) {
|
|
|
9d0c12 |
- pci_free_consistent(pdev, adapter->ring_size,
|
|
|
9d0c12 |
- adapter->ring_vir_addr, adapter->ring_dma);
|
|
|
9d0c12 |
+ dma_free_coherent(&pdev->dev, adapter->ring_size,
|
|
|
9d0c12 |
+ adapter->ring_vir_addr, adapter->ring_dma);
|
|
|
9d0c12 |
adapter->ring_vir_addr = NULL;
|
|
|
9d0c12 |
}
|
|
|
9d0c12 |
return err;
|
|
|
9d0c12 |
@@ -1237,11 +1240,15 @@ static bool atl1e_clean_tx_irq(struct atl1e_adapter *adapter)
|
|
|
9d0c12 |
tx_buffer = &tx_ring->tx_buffer[next_to_clean];
|
|
|
9d0c12 |
if (tx_buffer->dma) {
|
|
|
9d0c12 |
if (tx_buffer->flags & ATL1E_TX_PCIMAP_SINGLE)
|
|
|
9d0c12 |
- pci_unmap_single(adapter->pdev, tx_buffer->dma,
|
|
|
9d0c12 |
- tx_buffer->length, PCI_DMA_TODEVICE);
|
|
|
9d0c12 |
+ dma_unmap_single(&adapter->pdev->dev,
|
|
|
9d0c12 |
+ tx_buffer->dma,
|
|
|
9d0c12 |
+ tx_buffer->length,
|
|
|
9d0c12 |
+ DMA_TO_DEVICE);
|
|
|
9d0c12 |
else if (tx_buffer->flags & ATL1E_TX_PCIMAP_PAGE)
|
|
|
9d0c12 |
- pci_unmap_page(adapter->pdev, tx_buffer->dma,
|
|
|
9d0c12 |
- tx_buffer->length, PCI_DMA_TODEVICE);
|
|
|
9d0c12 |
+ dma_unmap_page(&adapter->pdev->dev,
|
|
|
9d0c12 |
+ tx_buffer->dma,
|
|
|
9d0c12 |
+ tx_buffer->length,
|
|
|
9d0c12 |
+ DMA_TO_DEVICE);
|
|
|
9d0c12 |
tx_buffer->dma = 0;
|
|
|
9d0c12 |
}
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@ -1714,8 +1721,9 @@ static int atl1e_tx_map(struct atl1e_adapter *adapter,
|
|
|
9d0c12 |
|
|
|
9d0c12 |
tx_buffer = atl1e_get_tx_buffer(adapter, use_tpd);
|
|
|
9d0c12 |
tx_buffer->length = map_len;
|
|
|
9d0c12 |
- tx_buffer->dma = pci_map_single(adapter->pdev,
|
|
|
9d0c12 |
- skb->data, hdr_len, PCI_DMA_TODEVICE);
|
|
|
9d0c12 |
+ tx_buffer->dma = dma_map_single(&adapter->pdev->dev,
|
|
|
9d0c12 |
+ skb->data, hdr_len,
|
|
|
9d0c12 |
+ DMA_TO_DEVICE);
|
|
|
9d0c12 |
if (dma_mapping_error(&adapter->pdev->dev, tx_buffer->dma))
|
|
|
9d0c12 |
return -ENOSPC;
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@ -1743,8 +1751,9 @@ static int atl1e_tx_map(struct atl1e_adapter *adapter,
|
|
|
9d0c12 |
((buf_len - mapped_len) >= MAX_TX_BUF_LEN) ?
|
|
|
9d0c12 |
MAX_TX_BUF_LEN : (buf_len - mapped_len);
|
|
|
9d0c12 |
tx_buffer->dma =
|
|
|
9d0c12 |
- pci_map_single(adapter->pdev, skb->data + mapped_len,
|
|
|
9d0c12 |
- map_len, PCI_DMA_TODEVICE);
|
|
|
9d0c12 |
+ dma_map_single(&adapter->pdev->dev,
|
|
|
9d0c12 |
+ skb->data + mapped_len, map_len,
|
|
|
9d0c12 |
+ DMA_TO_DEVICE);
|
|
|
9d0c12 |
|
|
|
9d0c12 |
if (dma_mapping_error(&adapter->pdev->dev, tx_buffer->dma)) {
|
|
|
9d0c12 |
/* We need to unwind the mappings we've done */
|
|
|
9d0c12 |
@@ -1753,8 +1762,10 @@ static int atl1e_tx_map(struct atl1e_adapter *adapter,
|
|
|
9d0c12 |
while (adapter->tx_ring.next_to_use != ring_end) {
|
|
|
9d0c12 |
tpd = atl1e_get_tpd(adapter);
|
|
|
9d0c12 |
tx_buffer = atl1e_get_tx_buffer(adapter, tpd);
|
|
|
9d0c12 |
- pci_unmap_single(adapter->pdev, tx_buffer->dma,
|
|
|
9d0c12 |
- tx_buffer->length, PCI_DMA_TODEVICE);
|
|
|
9d0c12 |
+ dma_unmap_single(&adapter->pdev->dev,
|
|
|
9d0c12 |
+ tx_buffer->dma,
|
|
|
9d0c12 |
+ tx_buffer->length,
|
|
|
9d0c12 |
+ DMA_TO_DEVICE);
|
|
|
9d0c12 |
}
|
|
|
9d0c12 |
/* Reset the tx rings next pointer */
|
|
|
9d0c12 |
adapter->tx_ring.next_to_use = ring_start;
|
|
|
9d0c12 |
@@ -2304,8 +2315,8 @@ static int atl1e_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|
|
9d0c12 |
* various kernel subsystems to support the mechanics required by a
|
|
|
9d0c12 |
* fixed-high-32-bit system.
|
|
|
9d0c12 |
*/
|
|
|
9d0c12 |
- if ((pci_set_dma_mask(pdev, DMA_BIT_MASK(32)) != 0) ||
|
|
|
9d0c12 |
- (pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)) != 0)) {
|
|
|
9d0c12 |
+ if ((dma_set_mask(&pdev->dev, DMA_BIT_MASK(32)) != 0) ||
|
|
|
9d0c12 |
+ (dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)) != 0)) {
|
|
|
9d0c12 |
dev_err(&pdev->dev, "No usable DMA configuration,aborting\n");
|
|
|
9d0c12 |
goto err_dma;
|
|
|
9d0c12 |
}
|
|
|
9d0c12 |
diff --git a/drivers/net/ethernet/atheros/atlx/atl1.c b/drivers/net/ethernet/atheros/atlx/atl1.c
|
|
|
9d0c12 |
index 5f420c17bf3e..55d332c0c9c1 100644
|
|
|
9d0c12 |
--- a/drivers/net/ethernet/atheros/atlx/atl1.c
|
|
|
9d0c12 |
+++ b/drivers/net/ethernet/atheros/atlx/atl1.c
|
|
|
9d0c12 |
@@ -1052,11 +1052,11 @@ static s32 atl1_setup_ring_resources(struct atl1_adapter *adapter)
|
|
|
9d0c12 |
+ sizeof(struct stats_msg_block)
|
|
|
9d0c12 |
+ 40;
|
|
|
9d0c12 |
|
|
|
9d0c12 |
- ring_header->desc = pci_alloc_consistent(pdev, ring_header->size,
|
|
|
9d0c12 |
- &ring_header->dma);
|
|
|
9d0c12 |
+ ring_header->desc = dma_alloc_coherent(&pdev->dev, ring_header->size,
|
|
|
9d0c12 |
+ &ring_header->dma, GFP_KERNEL);
|
|
|
9d0c12 |
if (unlikely(!ring_header->desc)) {
|
|
|
9d0c12 |
if (netif_msg_drv(adapter))
|
|
|
9d0c12 |
- dev_err(&pdev->dev, "pci_alloc_consistent failed\n");
|
|
|
9d0c12 |
+ dev_err(&pdev->dev, "dma_alloc_coherent failed\n");
|
|
|
9d0c12 |
goto err_nomem;
|
|
|
9d0c12 |
}
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@ -1138,8 +1138,8 @@ static void atl1_clean_rx_ring(struct atl1_adapter *adapter)
|
|
|
9d0c12 |
for (i = 0; i < rfd_ring->count; i++) {
|
|
|
9d0c12 |
buffer_info = &rfd_ring->buffer_info[i];
|
|
|
9d0c12 |
if (buffer_info->dma) {
|
|
|
9d0c12 |
- pci_unmap_page(pdev, buffer_info->dma,
|
|
|
9d0c12 |
- buffer_info->length, PCI_DMA_FROMDEVICE);
|
|
|
9d0c12 |
+ dma_unmap_page(&pdev->dev, buffer_info->dma,
|
|
|
9d0c12 |
+ buffer_info->length, DMA_FROM_DEVICE);
|
|
|
9d0c12 |
buffer_info->dma = 0;
|
|
|
9d0c12 |
}
|
|
|
9d0c12 |
if (buffer_info->skb) {
|
|
|
9d0c12 |
@@ -1177,8 +1177,8 @@ static void atl1_clean_tx_ring(struct atl1_adapter *adapter)
|
|
|
9d0c12 |
for (i = 0; i < tpd_ring->count; i++) {
|
|
|
9d0c12 |
buffer_info = &tpd_ring->buffer_info[i];
|
|
|
9d0c12 |
if (buffer_info->dma) {
|
|
|
9d0c12 |
- pci_unmap_page(pdev, buffer_info->dma,
|
|
|
9d0c12 |
- buffer_info->length, PCI_DMA_TODEVICE);
|
|
|
9d0c12 |
+ dma_unmap_page(&pdev->dev, buffer_info->dma,
|
|
|
9d0c12 |
+ buffer_info->length, DMA_TO_DEVICE);
|
|
|
9d0c12 |
buffer_info->dma = 0;
|
|
|
9d0c12 |
}
|
|
|
9d0c12 |
}
|
|
|
9d0c12 |
@@ -1219,8 +1219,8 @@ static void atl1_free_ring_resources(struct atl1_adapter *adapter)
|
|
|
9d0c12 |
atl1_clean_rx_ring(adapter);
|
|
|
9d0c12 |
|
|
|
9d0c12 |
kfree(tpd_ring->buffer_info);
|
|
|
9d0c12 |
- pci_free_consistent(pdev, ring_header->size, ring_header->desc,
|
|
|
9d0c12 |
- ring_header->dma);
|
|
|
9d0c12 |
+ dma_free_coherent(&pdev->dev, ring_header->size, ring_header->desc,
|
|
|
9d0c12 |
+ ring_header->dma);
|
|
|
9d0c12 |
|
|
|
9d0c12 |
tpd_ring->buffer_info = NULL;
|
|
|
9d0c12 |
tpd_ring->desc = NULL;
|
|
|
9d0c12 |
@@ -1868,9 +1868,9 @@ static u16 atl1_alloc_rx_buffers(struct atl1_adapter *adapter)
|
|
|
9d0c12 |
buffer_info->length = (u16) adapter->rx_buffer_len;
|
|
|
9d0c12 |
page = virt_to_page(skb->data);
|
|
|
9d0c12 |
offset = offset_in_page(skb->data);
|
|
|
9d0c12 |
- buffer_info->dma = pci_map_page(pdev, page, offset,
|
|
|
9d0c12 |
+ buffer_info->dma = dma_map_page(&pdev->dev, page, offset,
|
|
|
9d0c12 |
adapter->rx_buffer_len,
|
|
|
9d0c12 |
- PCI_DMA_FROMDEVICE);
|
|
|
9d0c12 |
+ DMA_FROM_DEVICE);
|
|
|
9d0c12 |
rfd_desc->buffer_addr = cpu_to_le64(buffer_info->dma);
|
|
|
9d0c12 |
rfd_desc->buf_len = cpu_to_le16(adapter->rx_buffer_len);
|
|
|
9d0c12 |
rfd_desc->coalese = 0;
|
|
|
9d0c12 |
@@ -1994,8 +1994,8 @@ static int atl1_intr_rx(struct atl1_adapter *adapter, int budget)
|
|
|
9d0c12 |
}
|
|
|
9d0c12 |
|
|
|
9d0c12 |
/* Good Receive */
|
|
|
9d0c12 |
- pci_unmap_page(adapter->pdev, buffer_info->dma,
|
|
|
9d0c12 |
- buffer_info->length, PCI_DMA_FROMDEVICE);
|
|
|
9d0c12 |
+ dma_unmap_page(&adapter->pdev->dev, buffer_info->dma,
|
|
|
9d0c12 |
+ buffer_info->length, DMA_FROM_DEVICE);
|
|
|
9d0c12 |
buffer_info->dma = 0;
|
|
|
9d0c12 |
skb = buffer_info->skb;
|
|
|
9d0c12 |
length = le16_to_cpu(rrd->xsz.xsum_sz.pkt_size);
|
|
|
9d0c12 |
@@ -2064,8 +2064,8 @@ static int atl1_intr_tx(struct atl1_adapter *adapter)
|
|
|
9d0c12 |
while (cmb_tpd_next_to_clean != sw_tpd_next_to_clean) {
|
|
|
9d0c12 |
buffer_info = &tpd_ring->buffer_info[sw_tpd_next_to_clean];
|
|
|
9d0c12 |
if (buffer_info->dma) {
|
|
|
9d0c12 |
- pci_unmap_page(adapter->pdev, buffer_info->dma,
|
|
|
9d0c12 |
- buffer_info->length, PCI_DMA_TODEVICE);
|
|
|
9d0c12 |
+ dma_unmap_page(&adapter->pdev->dev, buffer_info->dma,
|
|
|
9d0c12 |
+ buffer_info->length, DMA_TO_DEVICE);
|
|
|
9d0c12 |
buffer_info->dma = 0;
|
|
|
9d0c12 |
}
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@ -2212,9 +2212,9 @@ static void atl1_tx_map(struct atl1_adapter *adapter, struct sk_buff *skb,
|
|
|
9d0c12 |
buffer_info->length = hdr_len;
|
|
|
9d0c12 |
page = virt_to_page(skb->data);
|
|
|
9d0c12 |
offset = offset_in_page(skb->data);
|
|
|
9d0c12 |
- buffer_info->dma = pci_map_page(adapter->pdev, page,
|
|
|
9d0c12 |
+ buffer_info->dma = dma_map_page(&adapter->pdev->dev, page,
|
|
|
9d0c12 |
offset, hdr_len,
|
|
|
9d0c12 |
- PCI_DMA_TODEVICE);
|
|
|
9d0c12 |
+ DMA_TO_DEVICE);
|
|
|
9d0c12 |
|
|
|
9d0c12 |
if (++next_to_use == tpd_ring->count)
|
|
|
9d0c12 |
next_to_use = 0;
|
|
|
9d0c12 |
@@ -2237,9 +2237,10 @@ static void atl1_tx_map(struct atl1_adapter *adapter, struct sk_buff *skb,
|
|
|
9d0c12 |
(hdr_len + i * ATL1_MAX_TX_BUF_LEN));
|
|
|
9d0c12 |
offset = offset_in_page(skb->data +
|
|
|
9d0c12 |
(hdr_len + i * ATL1_MAX_TX_BUF_LEN));
|
|
|
9d0c12 |
- buffer_info->dma = pci_map_page(adapter->pdev,
|
|
|
9d0c12 |
- page, offset, buffer_info->length,
|
|
|
9d0c12 |
- PCI_DMA_TODEVICE);
|
|
|
9d0c12 |
+ buffer_info->dma = dma_map_page(&adapter->pdev->dev,
|
|
|
9d0c12 |
+ page, offset,
|
|
|
9d0c12 |
+ buffer_info->length,
|
|
|
9d0c12 |
+ DMA_TO_DEVICE);
|
|
|
9d0c12 |
if (++next_to_use == tpd_ring->count)
|
|
|
9d0c12 |
next_to_use = 0;
|
|
|
9d0c12 |
}
|
|
|
9d0c12 |
@@ -2249,8 +2250,9 @@ static void atl1_tx_map(struct atl1_adapter *adapter, struct sk_buff *skb,
|
|
|
9d0c12 |
buffer_info->length = buf_len;
|
|
|
9d0c12 |
page = virt_to_page(skb->data);
|
|
|
9d0c12 |
offset = offset_in_page(skb->data);
|
|
|
9d0c12 |
- buffer_info->dma = pci_map_page(adapter->pdev, page,
|
|
|
9d0c12 |
- offset, buf_len, PCI_DMA_TODEVICE);
|
|
|
9d0c12 |
+ buffer_info->dma = dma_map_page(&adapter->pdev->dev, page,
|
|
|
9d0c12 |
+ offset, buf_len,
|
|
|
9d0c12 |
+ DMA_TO_DEVICE);
|
|
|
9d0c12 |
if (++next_to_use == tpd_ring->count)
|
|
|
9d0c12 |
next_to_use = 0;
|
|
|
9d0c12 |
}
|
|
|
9d0c12 |
@@ -2926,7 +2928,7 @@ static int atl1_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|
|
9d0c12 |
* various kernel subsystems to support the mechanics required by a
|
|
|
9d0c12 |
* fixed-high-32-bit system.
|
|
|
9d0c12 |
*/
|
|
|
9d0c12 |
- err = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
|
|
|
9d0c12 |
+ err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
|
|
|
9d0c12 |
if (err) {
|
|
|
9d0c12 |
dev_err(&pdev->dev, "no usable DMA configuration\n");
|
|
|
9d0c12 |
goto err_dma;
|
|
|
9d0c12 |
diff --git a/drivers/net/ethernet/atheros/atlx/atl2.c b/drivers/net/ethernet/atheros/atlx/atl2.c
|
|
|
9d0c12 |
index 3aba38322717..80b050ecae3c 100644
|
|
|
9d0c12 |
--- a/drivers/net/ethernet/atheros/atlx/atl2.c
|
|
|
9d0c12 |
+++ b/drivers/net/ethernet/atheros/atlx/atl2.c
|
|
|
9d0c12 |
@@ -287,8 +287,8 @@ static s32 atl2_setup_ring_resources(struct atl2_adapter *adapter)
|
|
|
9d0c12 |
adapter->txs_ring_size * 4 + 7 + /* dword align */
|
|
|
9d0c12 |
adapter->rxd_ring_size * 1536 + 127; /* 128bytes align */
|
|
|
9d0c12 |
|
|
|
9d0c12 |
- adapter->ring_vir_addr = pci_alloc_consistent(pdev, size,
|
|
|
9d0c12 |
- &adapter->ring_dma);
|
|
|
9d0c12 |
+ adapter->ring_vir_addr = dma_alloc_coherent(&pdev->dev, size,
|
|
|
9d0c12 |
+ &adapter->ring_dma, GFP_KERNEL);
|
|
|
9d0c12 |
if (!adapter->ring_vir_addr)
|
|
|
9d0c12 |
return -ENOMEM;
|
|
|
9d0c12 |
|
|
|
9d0c12 |
@@ -669,8 +669,8 @@ static int atl2_request_irq(struct atl2_adapter *adapter)
|
|
|
9d0c12 |
static void atl2_free_ring_resources(struct atl2_adapter *adapter)
|
|
|
9d0c12 |
{
|
|
|
9d0c12 |
struct pci_dev *pdev = adapter->pdev;
|
|
|
9d0c12 |
- pci_free_consistent(pdev, adapter->ring_size, adapter->ring_vir_addr,
|
|
|
9d0c12 |
- adapter->ring_dma);
|
|
|
9d0c12 |
+ dma_free_coherent(&pdev->dev, adapter->ring_size,
|
|
|
9d0c12 |
+ adapter->ring_vir_addr, adapter->ring_dma);
|
|
|
9d0c12 |
}
|
|
|
9d0c12 |
|
|
|
9d0c12 |
/**
|
|
|
9d0c12 |
@@ -1334,8 +1334,8 @@ static int atl2_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|
|
9d0c12 |
* until the kernel has the proper infrastructure to support 64-bit DMA
|
|
|
9d0c12 |
* on these devices.
|
|
|
9d0c12 |
*/
|
|
|
9d0c12 |
- if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32)) &&
|
|
|
9d0c12 |
- pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) {
|
|
|
9d0c12 |
+ if (dma_set_mask(&pdev->dev, DMA_BIT_MASK(32)) &&
|
|
|
9d0c12 |
+ dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32))) {
|
|
|
9d0c12 |
printk(KERN_ERR "atl2: No usable DMA configuration, aborting\n");
|
|
|
9d0c12 |
err = -EIO;
|
|
|
9d0c12 |
goto err_dma;
|
|
|
9d0c12 |
--
|
|
|
9d0c12 |
2.16.4
|
|
|
9d0c12 |
|