struct pch_dma {
        struct dma_device       dma;
        void __iomem *membase;
-       struct pci_pool         *pool;
+       struct dma_pool         *pool;
        struct pch_dma_regs     regs;
        struct pch_dma_desc_regs ch_regs[MAX_CHAN_NR];
        struct pch_dma_chan     channels[MAX_CHAN_NR];
        struct pch_dma *pd = to_pd(chan->device);
        dma_addr_t addr;
 
-       desc = pci_pool_zalloc(pd->pool, flags, &addr);
+       desc = dma_pool_zalloc(pd->pool, flags, &addr);
        if (desc) {
                INIT_LIST_HEAD(&desc->tx_list);
                dma_async_tx_descriptor_init(&desc->txd, chan);
        spin_unlock_irq(&pd_chan->lock);
 
        list_for_each_entry_safe(desc, _d, &tmp_list, desc_node)
-               pci_pool_free(pd->pool, desc, desc->txd.phys);
+               dma_pool_free(pd->pool, desc, desc->txd.phys);
 
        pdc_enable_irq(chan, 0);
 }
                goto err_iounmap;
        }
 
-       pd->pool = pci_pool_create("pch_dma_desc_pool", pdev,
+       pd->pool = dma_pool_create("pch_dma_desc_pool", &pdev->dev,
                                   sizeof(struct pch_dma_desc), 4, 0);
        if (!pd->pool) {
                dev_err(&pdev->dev, "Failed to alloc DMA descriptors\n");
        return 0;
 
 err_free_pool:
-       pci_pool_destroy(pd->pool);
+       dma_pool_destroy(pd->pool);
 err_free_irq:
        free_irq(pdev->irq, pd);
 err_iounmap:
                        tasklet_kill(&pd_chan->tasklet);
                }
 
-               pci_pool_destroy(pd->pool);
+               dma_pool_destroy(pd->pool);
                pci_iounmap(pdev, pd->membase);
                pci_release_regions(pdev);
                pci_disable_device(pdev);