|
@@ -540,12 +540,12 @@ static bool device_init_rings(struct vnt_private *pDevice)
|
|
|
void *vir_pool;
|
|
|
|
|
|
/*allocate all RD/TD rings a single pool*/
|
|
|
- vir_pool = pci_zalloc_consistent(pDevice->pcid,
|
|
|
+ vir_pool = dma_zalloc_coherent(&pDevice->pcid->dev,
|
|
|
pDevice->sOpts.nRxDescs0 * sizeof(SRxDesc) +
|
|
|
pDevice->sOpts.nRxDescs1 * sizeof(SRxDesc) +
|
|
|
pDevice->sOpts.nTxDescs[0] * sizeof(STxDesc) +
|
|
|
pDevice->sOpts.nTxDescs[1] * sizeof(STxDesc),
|
|
|
- &pDevice->pool_dma);
|
|
|
+ &pDevice->pool_dma, GFP_ATOMIC);
|
|
|
if (vir_pool == NULL) {
|
|
|
dev_err(&pDevice->pcid->dev, "allocate desc dma memory failed\n");
|
|
|
return false;
|
|
@@ -559,16 +559,17 @@ static bool device_init_rings(struct vnt_private *pDevice)
|
|
|
pDevice->rd1_pool_dma = pDevice->rd0_pool_dma +
|
|
|
pDevice->sOpts.nRxDescs0 * sizeof(SRxDesc);
|
|
|
|
|
|
- pDevice->tx0_bufs = pci_zalloc_consistent(pDevice->pcid,
|
|
|
+ pDevice->tx0_bufs = dma_zalloc_coherent(&pDevice->pcid->dev,
|
|
|
pDevice->sOpts.nTxDescs[0] * PKT_BUF_SZ +
|
|
|
pDevice->sOpts.nTxDescs[1] * PKT_BUF_SZ +
|
|
|
CB_BEACON_BUF_SIZE +
|
|
|
CB_MAX_BUF_SIZE,
|
|
|
- &pDevice->tx_bufs_dma0);
|
|
|
+ &pDevice->tx_bufs_dma0,
|
|
|
+ GFP_ATOMIC);
|
|
|
if (pDevice->tx0_bufs == NULL) {
|
|
|
dev_err(&pDevice->pcid->dev, "allocate buf dma memory failed\n");
|
|
|
|
|
|
- pci_free_consistent(pDevice->pcid,
|
|
|
+ dma_free_coherent(&pDevice->pcid->dev,
|
|
|
pDevice->sOpts.nRxDescs0 * sizeof(SRxDesc) +
|
|
|
pDevice->sOpts.nRxDescs1 * sizeof(SRxDesc) +
|
|
|
pDevice->sOpts.nTxDescs[0] * sizeof(STxDesc) +
|
|
@@ -614,7 +615,7 @@ static bool device_init_rings(struct vnt_private *pDevice)
|
|
|
|
|
|
static void device_free_rings(struct vnt_private *pDevice)
|
|
|
{
|
|
|
- pci_free_consistent(pDevice->pcid,
|
|
|
+ dma_free_coherent(&pDevice->pcid->dev,
|
|
|
pDevice->sOpts.nRxDescs0 * sizeof(SRxDesc) +
|
|
|
pDevice->sOpts.nRxDescs1 * sizeof(SRxDesc) +
|
|
|
pDevice->sOpts.nTxDescs[0] * sizeof(STxDesc) +
|
|
@@ -624,7 +625,7 @@ static void device_free_rings(struct vnt_private *pDevice)
|
|
|
);
|
|
|
|
|
|
if (pDevice->tx0_bufs)
|
|
|
- pci_free_consistent(pDevice->pcid,
|
|
|
+ dma_free_coherent(&pDevice->pcid->dev,
|
|
|
pDevice->sOpts.nTxDescs[0] * PKT_BUF_SZ +
|
|
|
pDevice->sOpts.nTxDescs[1] * PKT_BUF_SZ +
|
|
|
CB_BEACON_BUF_SIZE +
|
|
@@ -689,8 +690,8 @@ static void device_free_rd0_ring(struct vnt_private *pDevice)
|
|
|
PSRxDesc pDesc = &(pDevice->aRD0Ring[i]);
|
|
|
PDEVICE_RD_INFO pRDInfo = pDesc->pRDInfo;
|
|
|
|
|
|
- pci_unmap_single(pDevice->pcid, pRDInfo->skb_dma,
|
|
|
- pDevice->rx_buf_sz, PCI_DMA_FROMDEVICE);
|
|
|
+ dma_unmap_single(&pDevice->pcid->dev, pRDInfo->skb_dma,
|
|
|
+ pDevice->rx_buf_sz, DMA_FROM_DEVICE);
|
|
|
|
|
|
dev_kfree_skb(pRDInfo->skb);
|
|
|
|
|
@@ -706,8 +707,8 @@ static void device_free_rd1_ring(struct vnt_private *pDevice)
|
|
|
PSRxDesc pDesc = &(pDevice->aRD1Ring[i]);
|
|
|
PDEVICE_RD_INFO pRDInfo = pDesc->pRDInfo;
|
|
|
|
|
|
- pci_unmap_single(pDevice->pcid, pRDInfo->skb_dma,
|
|
|
- pDevice->rx_buf_sz, PCI_DMA_FROMDEVICE);
|
|
|
+ dma_unmap_single(&pDevice->pcid->dev, pRDInfo->skb_dma,
|
|
|
+ pDevice->rx_buf_sz, DMA_FROM_DEVICE);
|
|
|
|
|
|
dev_kfree_skb(pRDInfo->skb);
|
|
|
|
|
@@ -775,8 +776,8 @@ static void device_free_td0_ring(struct vnt_private *pDevice)
|
|
|
PDEVICE_TD_INFO pTDInfo = pDesc->pTDInfo;
|
|
|
|
|
|
if (pTDInfo->skb_dma && (pTDInfo->skb_dma != pTDInfo->buf_dma))
|
|
|
- pci_unmap_single(pDevice->pcid, pTDInfo->skb_dma,
|
|
|
- pTDInfo->skb->len, PCI_DMA_TODEVICE);
|
|
|
+ dma_unmap_single(&pDevice->pcid->dev, pTDInfo->skb_dma,
|
|
|
+ pTDInfo->skb->len, DMA_TO_DEVICE);
|
|
|
|
|
|
if (pTDInfo->skb)
|
|
|
dev_kfree_skb(pTDInfo->skb);
|
|
@@ -794,8 +795,8 @@ static void device_free_td1_ring(struct vnt_private *pDevice)
|
|
|
PDEVICE_TD_INFO pTDInfo = pDesc->pTDInfo;
|
|
|
|
|
|
if (pTDInfo->skb_dma && (pTDInfo->skb_dma != pTDInfo->buf_dma))
|
|
|
- pci_unmap_single(pDevice->pcid, pTDInfo->skb_dma,
|
|
|
- pTDInfo->skb->len, PCI_DMA_TODEVICE);
|
|
|
+ dma_unmap_single(&pDevice->pcid->dev, pTDInfo->skb_dma,
|
|
|
+ pTDInfo->skb->len, DMA_TO_DEVICE);
|
|
|
|
|
|
if (pTDInfo->skb)
|
|
|
dev_kfree_skb(pTDInfo->skb);
|
|
@@ -841,9 +842,9 @@ static bool device_alloc_rx_buf(struct vnt_private *pDevice, PSRxDesc pRD)
|
|
|
ASSERT(pRDInfo->skb);
|
|
|
|
|
|
pRDInfo->skb_dma =
|
|
|
- pci_map_single(pDevice->pcid,
|
|
|
+ dma_map_single(&pDevice->pcid->dev,
|
|
|
skb_put(pRDInfo->skb, skb_tailroom(pRDInfo->skb)),
|
|
|
- pDevice->rx_buf_sz, PCI_DMA_FROMDEVICE);
|
|
|
+ pDevice->rx_buf_sz, DMA_FROM_DEVICE);
|
|
|
|
|
|
*((unsigned int *)&(pRD->m_rd0RD0)) = 0; /* FIX cast */
|
|
|
|
|
@@ -994,8 +995,8 @@ static void device_free_tx_buf(struct vnt_private *pDevice, PSTxDesc pDesc)
|
|
|
|
|
|
/* pre-allocated buf_dma can't be unmapped. */
|
|
|
if (pTDInfo->skb_dma && (pTDInfo->skb_dma != pTDInfo->buf_dma)) {
|
|
|
- pci_unmap_single(pDevice->pcid, pTDInfo->skb_dma, skb->len,
|
|
|
- PCI_DMA_TODEVICE);
|
|
|
+ dma_unmap_single(&pDevice->pcid->dev, pTDInfo->skb_dma,
|
|
|
+ skb->len, DMA_TO_DEVICE);
|
|
|
}
|
|
|
|
|
|
if (pTDInfo->byFlags & TD_FLAGS_NETIF_SKB)
|