Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

wan: wanxl: switch from 'pci_' to 'dma_' API

The wrappers in include/linux/pci-dma-compat.h should go away.

The patch has been generated with the coccinelle script below and has been
hand modified to replace GFP_ with a correct flag.
It has been compile tested.

When memory is allocated in 'wanxl_pci_init_one()', GFP_KERNEL can be used
because it is a probe function and no lock is acquired.
Moreover, just a few lines above, GFP_KERNEL is already used.

@@
@@
- PCI_DMA_BIDIRECTIONAL
+ DMA_BIDIRECTIONAL

@@
@@
- PCI_DMA_TODEVICE
+ DMA_TO_DEVICE

@@
@@
- PCI_DMA_FROMDEVICE
+ DMA_FROM_DEVICE

@@
@@
- PCI_DMA_NONE
+ DMA_NONE

@@
expression e1, e2, e3;
@@
- pci_alloc_consistent(e1, e2, e3)
+ dma_alloc_coherent(&e1->dev, e2, e3, GFP_)

@@
expression e1, e2, e3;
@@
- pci_zalloc_consistent(e1, e2, e3)
+ dma_alloc_coherent(&e1->dev, e2, e3, GFP_)

@@
expression e1, e2, e3, e4;
@@
- pci_free_consistent(e1, e2, e3, e4)
+ dma_free_coherent(&e1->dev, e2, e3, e4)

@@
expression e1, e2, e3, e4;
@@
- pci_map_single(e1, e2, e3, e4)
+ dma_map_single(&e1->dev, e2, e3, e4)

@@
expression e1, e2, e3, e4;
@@
- pci_unmap_single(e1, e2, e3, e4)
+ dma_unmap_single(&e1->dev, e2, e3, e4)

@@
expression e1, e2, e3, e4, e5;
@@
- pci_map_page(e1, e2, e3, e4, e5)
+ dma_map_page(&e1->dev, e2, e3, e4, e5)

@@
expression e1, e2, e3, e4;
@@
- pci_unmap_page(e1, e2, e3, e4)
+ dma_unmap_page(&e1->dev, e2, e3, e4)

@@
expression e1, e2, e3, e4;
@@
- pci_map_sg(e1, e2, e3, e4)
+ dma_map_sg(&e1->dev, e2, e3, e4)

@@
expression e1, e2, e3, e4;
@@
- pci_unmap_sg(e1, e2, e3, e4)
+ dma_unmap_sg(&e1->dev, e2, e3, e4)

@@
expression e1, e2, e3, e4;
@@
- pci_dma_sync_single_for_cpu(e1, e2, e3, e4)
+ dma_sync_single_for_cpu(&e1->dev, e2, e3, e4)

@@
expression e1, e2, e3, e4;
@@
- pci_dma_sync_single_for_device(e1, e2, e3, e4)
+ dma_sync_single_for_device(&e1->dev, e2, e3, e4)

@@
expression e1, e2, e3, e4;
@@
- pci_dma_sync_sg_for_cpu(e1, e2, e3, e4)
+ dma_sync_sg_for_cpu(&e1->dev, e2, e3, e4)

@@
expression e1, e2, e3, e4;
@@
- pci_dma_sync_sg_for_device(e1, e2, e3, e4)
+ dma_sync_sg_for_device(&e1->dev, e2, e3, e4)

@@
expression e1, e2;
@@
- pci_dma_mapping_error(e1, e2)
+ dma_mapping_error(&e1->dev, e2)

@@
expression e1, e2;
@@
- pci_set_dma_mask(e1, e2)
+ dma_set_mask(&e1->dev, e2)

@@
expression e1, e2;
@@
- pci_set_consistent_dma_mask(e1, e2)
+ dma_set_coherent_mask(&e1->dev, e2)

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Christophe JAILLET and committed by
David S. Miller
24dd377a 7c9864bb

+27 -27
+27 -27
drivers/net/wan/wanxl.c
··· 99 99 static inline dma_addr_t pci_map_single_debug(struct pci_dev *pdev, void *ptr, 100 100 size_t size, int direction) 101 101 { 102 - dma_addr_t addr = pci_map_single(pdev, ptr, size, direction); 102 + dma_addr_t addr = dma_map_single(&pdev->dev, ptr, size, direction); 103 103 if (addr + size > 0x100000000LL) 104 104 pr_crit("%s: pci_map_single() returned memory at 0x%llx!\n", 105 105 pci_name(pdev), (unsigned long long)addr); ··· 180 180 dev->stats.tx_bytes += skb->len; 181 181 } 182 182 desc->stat = PACKET_EMPTY; /* Free descriptor */ 183 - pci_unmap_single(port->card->pdev, desc->address, skb->len, 184 - PCI_DMA_TODEVICE); 183 + dma_unmap_single(&port->card->pdev->dev, desc->address, 184 + skb->len, DMA_TO_DEVICE); 185 185 dev_consume_skb_irq(skb); 186 186 port->tx_in = (port->tx_in + 1) % TX_BUFFERS; 187 187 } ··· 207 207 if (!skb) 208 208 dev->stats.rx_dropped++; 209 209 else { 210 - pci_unmap_single(card->pdev, desc->address, 211 - BUFFER_LENGTH, 212 - PCI_DMA_FROMDEVICE); 210 + dma_unmap_single(&card->pdev->dev, 211 + desc->address, BUFFER_LENGTH, 212 + DMA_FROM_DEVICE); 213 213 skb_put(skb, desc->length); 214 214 215 215 #ifdef DEBUG_PKT ··· 227 227 if (!skb) { 228 228 skb = dev_alloc_skb(BUFFER_LENGTH); 229 229 desc->address = skb ? 230 - pci_map_single(card->pdev, skb->data, 230 + dma_map_single(&card->pdev->dev, 231 + skb->data, 231 232 BUFFER_LENGTH, 232 - PCI_DMA_FROMDEVICE) : 0; 233 + DMA_FROM_DEVICE) : 0; 233 234 card->rx_skbs[card->rx_in] = skb; 234 235 } 235 236 } ··· 292 291 #endif 293 292 294 293 port->tx_skbs[port->tx_out] = skb; 295 - desc->address = pci_map_single(port->card->pdev, skb->data, skb->len, 296 - PCI_DMA_TODEVICE); 294 + desc->address = dma_map_single(&port->card->pdev->dev, skb->data, 295 + skb->len, DMA_TO_DEVICE); 297 296 desc->length = skb->len; 298 297 desc->stat = PACKET_FULL; 299 298 writel(1 << (DOORBELL_TO_CARD_TX_0 + port->node), ··· 452 451 453 452 if (desc->stat != PACKET_EMPTY) { 454 453 desc->stat = PACKET_EMPTY; 455 - pci_unmap_single(port->card->pdev, desc->address, 456 - port->tx_skbs[i]->len, 457 - PCI_DMA_TODEVICE); 454 + dma_unmap_single(&port->card->pdev->dev, 455 + desc->address, port->tx_skbs[i]->len, 456 + DMA_TO_DEVICE); 458 457 dev_kfree_skb(port->tx_skbs[i]); 459 458 } 460 459 } ··· 525 524 526 525 for (i = 0; i < RX_QUEUE_LENGTH; i++) 527 526 if (card->rx_skbs[i]) { 528 - pci_unmap_single(card->pdev, 527 + dma_unmap_single(&card->pdev->dev, 529 528 card->status->rx_descs[i].address, 530 - BUFFER_LENGTH, PCI_DMA_FROMDEVICE); 529 + BUFFER_LENGTH, DMA_FROM_DEVICE); 531 530 dev_kfree_skb(card->rx_skbs[i]); 532 531 } 533 532 ··· 535 534 iounmap(card->plx); 536 535 537 536 if (card->status) 538 - pci_free_consistent(pdev, sizeof(struct card_status), 539 - card->status, card->status_address); 537 + dma_free_coherent(&pdev->dev, sizeof(struct card_status), 538 + card->status, card->status_address); 540 539 541 540 pci_release_regions(pdev); 542 541 pci_disable_device(pdev); ··· 580 579 We set both dma_mask and consistent_dma_mask to 28 bits 581 580 and pray pci_alloc_consistent() will use this info. It should 582 581 work on most platforms */ 583 - if (pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(28)) || 584 - pci_set_dma_mask(pdev, DMA_BIT_MASK(28))) { 582 + if (dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(28)) || 583 + dma_set_mask(&pdev->dev, DMA_BIT_MASK(28))) { 585 584 pr_err("No usable DMA configuration\n"); 586 585 pci_disable_device(pdev); 587 586 return -EIO; ··· 609 608 pci_set_drvdata(pdev, card); 610 609 card->pdev = pdev; 611 610 612 - card->status = pci_alloc_consistent(pdev, 613 - sizeof(struct card_status), 614 - &card->status_address); 611 + card->status = dma_alloc_coherent(&pdev->dev, 612 + sizeof(struct card_status), 613 + &card->status_address, GFP_KERNEL); 615 614 if (card->status == NULL) { 616 615 wanxl_pci_remove_one(pdev); 617 616 return -ENOBUFS; ··· 626 625 /* FIXME when PCI/DMA subsystems are fixed. 627 626 We set both dma_mask and consistent_dma_mask back to 32 bits 628 627 to indicate the card can do 32-bit DMA addressing */ 629 - if (pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)) || 630 - pci_set_dma_mask(pdev, DMA_BIT_MASK(32))) { 628 + if (dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)) || 629 + dma_set_mask(&pdev->dev, DMA_BIT_MASK(32))) { 631 630 pr_err("No usable DMA configuration\n"); 632 631 wanxl_pci_remove_one(pdev); 633 632 return -EIO; ··· 700 699 card->rx_skbs[i] = skb; 701 700 if (skb) 702 701 card->status->rx_descs[i].address = 703 - pci_map_single(card->pdev, skb->data, 704 - BUFFER_LENGTH, 705 - PCI_DMA_FROMDEVICE); 702 + dma_map_single(&card->pdev->dev, skb->data, 703 + BUFFER_LENGTH, DMA_FROM_DEVICE); 706 704 } 707 705 708 706 mem = ioremap(mem_phy, PDM_OFFSET + sizeof(firmware));