diff options
Diffstat (limited to 'drivers/atm/eni.c')
-rw-r--r-- | drivers/atm/eni.c | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/drivers/atm/eni.c b/drivers/atm/eni.c index c7fab3ee14ee..6339efd32697 100644 --- a/drivers/atm/eni.c +++ b/drivers/atm/eni.c | |||
@@ -354,9 +354,9 @@ static int do_rx_dma(struct atm_vcc *vcc,struct sk_buff *skb, | |||
354 | eni_vcc = ENI_VCC(vcc); | 354 | eni_vcc = ENI_VCC(vcc); |
355 | paddr = 0; /* GCC, shut up */ | 355 | paddr = 0; /* GCC, shut up */ |
356 | if (skb) { | 356 | if (skb) { |
357 | paddr = pci_map_single(eni_dev->pci_dev,skb->data,skb->len, | 357 | paddr = dma_map_single(&eni_dev->pci_dev->dev,skb->data,skb->len, |
358 | PCI_DMA_FROMDEVICE); | 358 | DMA_FROM_DEVICE); |
359 | if (pci_dma_mapping_error(eni_dev->pci_dev, paddr)) | 359 | if (dma_mapping_error(&eni_dev->pci_dev->dev, paddr)) |
360 | goto dma_map_error; | 360 | goto dma_map_error; |
361 | ENI_PRV_PADDR(skb) = paddr; | 361 | ENI_PRV_PADDR(skb) = paddr; |
362 | if (paddr & 3) | 362 | if (paddr & 3) |
@@ -481,8 +481,8 @@ rx_enqueued++; | |||
481 | 481 | ||
482 | trouble: | 482 | trouble: |
483 | if (paddr) | 483 | if (paddr) |
484 | pci_unmap_single(eni_dev->pci_dev,paddr,skb->len, | 484 | dma_unmap_single(&eni_dev->pci_dev->dev,paddr,skb->len, |
485 | PCI_DMA_FROMDEVICE); | 485 | DMA_FROM_DEVICE); |
486 | dma_map_error: | 486 | dma_map_error: |
487 | if (skb) dev_kfree_skb_irq(skb); | 487 | if (skb) dev_kfree_skb_irq(skb); |
488 | return -1; | 488 | return -1; |
@@ -758,8 +758,8 @@ rx_dequeued++; | |||
758 | } | 758 | } |
759 | eni_vcc->rxing--; | 759 | eni_vcc->rxing--; |
760 | eni_vcc->rx_pos = ENI_PRV_POS(skb) & (eni_vcc->words-1); | 760 | eni_vcc->rx_pos = ENI_PRV_POS(skb) & (eni_vcc->words-1); |
761 | pci_unmap_single(eni_dev->pci_dev,ENI_PRV_PADDR(skb),skb->len, | 761 | dma_unmap_single(&eni_dev->pci_dev->dev,ENI_PRV_PADDR(skb),skb->len, |
762 | PCI_DMA_TODEVICE); | 762 | DMA_TO_DEVICE); |
763 | if (!skb->len) dev_kfree_skb_irq(skb); | 763 | if (!skb->len) dev_kfree_skb_irq(skb); |
764 | else { | 764 | else { |
765 | EVENT("pushing (len=%ld)\n",skb->len,0); | 765 | EVENT("pushing (len=%ld)\n",skb->len,0); |
@@ -1112,8 +1112,8 @@ DPRINTK("iovcnt = %d\n",skb_shinfo(skb)->nr_frags); | |||
1112 | vcc->dev->number); | 1112 | vcc->dev->number); |
1113 | return enq_jam; | 1113 | return enq_jam; |
1114 | } | 1114 | } |
1115 | paddr = pci_map_single(eni_dev->pci_dev,skb->data,skb->len, | 1115 | paddr = dma_map_single(&eni_dev->pci_dev->dev,skb->data,skb->len, |
1116 | PCI_DMA_TODEVICE); | 1116 | DMA_TO_DEVICE); |
1117 | ENI_PRV_PADDR(skb) = paddr; | 1117 | ENI_PRV_PADDR(skb) = paddr; |
1118 | /* prepare DMA queue entries */ | 1118 | /* prepare DMA queue entries */ |
1119 | j = 0; | 1119 | j = 0; |
@@ -1226,8 +1226,8 @@ static void dequeue_tx(struct atm_dev *dev) | |||
1226 | break; | 1226 | break; |
1227 | } | 1227 | } |
1228 | ENI_VCC(vcc)->txing -= ENI_PRV_SIZE(skb); | 1228 | ENI_VCC(vcc)->txing -= ENI_PRV_SIZE(skb); |
1229 | pci_unmap_single(eni_dev->pci_dev,ENI_PRV_PADDR(skb),skb->len, | 1229 | dma_unmap_single(&eni_dev->pci_dev->dev,ENI_PRV_PADDR(skb),skb->len, |
1230 | PCI_DMA_TODEVICE); | 1230 | DMA_TO_DEVICE); |
1231 | if (vcc->pop) vcc->pop(vcc,skb); | 1231 | if (vcc->pop) vcc->pop(vcc,skb); |
1232 | else dev_kfree_skb_irq(skb); | 1232 | else dev_kfree_skb_irq(skb); |
1233 | atomic_inc(&vcc->stats->tx); | 1233 | atomic_inc(&vcc->stats->tx); |
@@ -2240,13 +2240,18 @@ static int eni_init_one(struct pci_dev *pci_dev, | |||
2240 | if (rc < 0) | 2240 | if (rc < 0) |
2241 | goto out; | 2241 | goto out; |
2242 | 2242 | ||
2243 | rc = dma_set_mask_and_coherent(&pci_dev->dev, DMA_BIT_MASK(32)); | ||
2244 | if (rc < 0) | ||
2245 | goto out; | ||
2246 | |||
2243 | rc = -ENOMEM; | 2247 | rc = -ENOMEM; |
2244 | eni_dev = kmalloc(sizeof(struct eni_dev), GFP_KERNEL); | 2248 | eni_dev = kmalloc(sizeof(struct eni_dev), GFP_KERNEL); |
2245 | if (!eni_dev) | 2249 | if (!eni_dev) |
2246 | goto err_disable; | 2250 | goto err_disable; |
2247 | 2251 | ||
2248 | zero = &eni_dev->zero; | 2252 | zero = &eni_dev->zero; |
2249 | zero->addr = pci_alloc_consistent(pci_dev, ENI_ZEROES_SIZE, &zero->dma); | 2253 | zero->addr = dma_alloc_coherent(&pci_dev->dev, |
2254 | ENI_ZEROES_SIZE, &zero->dma, GFP_KERNEL); | ||
2250 | if (!zero->addr) | 2255 | if (!zero->addr) |
2251 | goto err_kfree; | 2256 | goto err_kfree; |
2252 | 2257 | ||
@@ -2277,7 +2282,7 @@ err_eni_release: | |||
2277 | err_unregister: | 2282 | err_unregister: |
2278 | atm_dev_deregister(dev); | 2283 | atm_dev_deregister(dev); |
2279 | err_free_consistent: | 2284 | err_free_consistent: |
2280 | pci_free_consistent(pci_dev, ENI_ZEROES_SIZE, zero->addr, zero->dma); | 2285 | dma_free_coherent(&pci_dev->dev, ENI_ZEROES_SIZE, zero->addr, zero->dma); |
2281 | err_kfree: | 2286 | err_kfree: |
2282 | kfree(eni_dev); | 2287 | kfree(eni_dev); |
2283 | err_disable: | 2288 | err_disable: |
@@ -2302,7 +2307,7 @@ static void eni_remove_one(struct pci_dev *pdev) | |||
2302 | 2307 | ||
2303 | eni_do_release(dev); | 2308 | eni_do_release(dev); |
2304 | atm_dev_deregister(dev); | 2309 | atm_dev_deregister(dev); |
2305 | pci_free_consistent(pdev, ENI_ZEROES_SIZE, zero->addr, zero->dma); | 2310 | dma_free_coherent(&pdev->dev, ENI_ZEROES_SIZE, zero->addr, zero->dma); |
2306 | kfree(ed); | 2311 | kfree(ed); |
2307 | pci_disable_device(pdev); | 2312 | pci_disable_device(pdev); |
2308 | } | 2313 | } |