#include <linux/interrupt.h>
 #include <linux/dmaengine.h>
 #include <linux/dma-mapping.h>
-#include <linux/dma/pxa-dma.h>
 #include <linux/clk.h>
 #include <linux/err.h>
 #include <linux/mmc/host.h>
 {
        struct mmc_host *mmc;
        struct pxamci_host *host = NULL;
-       struct resource *r, *dmarx, *dmatx;
-       struct pxad_param param_rx, param_tx;
+       struct resource *r;
        int ret, irq, gpio_cd = -1, gpio_ro = -1, gpio_power = -1;
-       dma_cap_mask_t mask;
 
        ret = pxamci_of_init(pdev);
        if (ret)
 
        platform_set_drvdata(pdev, mmc);
 
-       if (!pdev->dev.of_node) {
-               dmarx = platform_get_resource(pdev, IORESOURCE_DMA, 0);
-               dmatx = platform_get_resource(pdev, IORESOURCE_DMA, 1);
-               if (!dmarx || !dmatx) {
-                       ret = -ENXIO;
-                       goto out;
-               }
-               param_rx.prio = PXAD_PRIO_LOWEST;
-               param_rx.drcmr = dmarx->start;
-               param_tx.prio = PXAD_PRIO_LOWEST;
-               param_tx.drcmr = dmatx->start;
-       }
-
-       dma_cap_zero(mask);
-       dma_cap_set(DMA_SLAVE, mask);
-
-       host->dma_chan_rx =
-               dma_request_slave_channel_compat(mask, pxad_filter_fn,
-                                                ¶m_rx, &pdev->dev, "rx");
+       host->dma_chan_rx = dma_request_slave_channel(&pdev->dev, "rx");
        if (host->dma_chan_rx == NULL) {
                dev_err(&pdev->dev, "unable to request rx dma channel\n");
                ret = -ENODEV;
                goto out;
        }
 
-       host->dma_chan_tx =
-               dma_request_slave_channel_compat(mask, pxad_filter_fn,
-                                                ¶m_tx,  &pdev->dev, "tx");
+       host->dma_chan_tx = dma_request_slave_channel(&pdev->dev, "tx");
        if (host->dma_chan_tx == NULL) {
                dev_err(&pdev->dev, "unable to request tx dma channel\n");
                ret = -ENODEV;