struct device *mfd_dev = port->dev->parent;
        dma_cap_mask_t          mask;
        struct dma_slave_config config;
+       struct dma_chan *chan;
        int ret, nent;
 
        dma_cap_zero(mask);
        dma_cap_set(DMA_SLAVE, mask);
 
-       atmel_port->chan_tx = dma_request_slave_channel(mfd_dev, "tx");
-       if (atmel_port->chan_tx == NULL)
+       chan = dma_request_chan(mfd_dev, "tx");
+       if (IS_ERR(chan)) {
+               atmel_port->chan_tx = NULL;
                goto chan_err;
+       }
+       atmel_port->chan_tx = chan;
        dev_info(port->dev, "using %s for tx DMA transfers\n",
                dma_chan_name(atmel_port->chan_tx));
 
        dma_cap_mask_t          mask;
        struct dma_slave_config config;
        struct circ_buf         *ring;
+       struct dma_chan *chan;
        int ret, nent;
 
        ring = &atmel_port->rx_ring;
        dma_cap_zero(mask);
        dma_cap_set(DMA_CYCLIC, mask);
 
-       atmel_port->chan_rx = dma_request_slave_channel(mfd_dev, "rx");
-       if (atmel_port->chan_rx == NULL)
+       chan = dma_request_chan(mfd_dev, "rx");
+       if (IS_ERR(chan)) {
+               atmel_port->chan_rx = NULL;
                goto chan_err;
+       }
+       atmel_port->chan_rx = chan;
        dev_info(port->dev, "using %s for rx DMA transfers\n",
                dma_chan_name(atmel_port->chan_rx));