static int spi_ingenic_request_dma(struct spi_controller *ctlr,
                                   struct device *dev)
 {
-       ctlr->dma_tx = dma_request_slave_channel(dev, "tx");
-       if (!ctlr->dma_tx)
-               return -ENODEV;
+       struct dma_chan *chan;
 
-       ctlr->dma_rx = dma_request_slave_channel(dev, "rx");
+       chan = dma_request_chan(dev, "tx");
+       if (IS_ERR(chan))
+               return PTR_ERR(chan);
+       ctlr->dma_tx = chan;
 
-       if (!ctlr->dma_rx)
-               return -ENODEV;
+       chan = dma_request_chan(dev, "rx");
+       if (IS_ERR(chan))
+               return PTR_ERR(chan);
+       ctlr->dma_rx = chan;
 
        ctlr->can_dma = spi_ingenic_can_dma;