* Minimum coherent DMA allocation is PAGE_SIZE, so allocate
                 * that much and share it between Tx and Rx DMA buffers.
                 */
-               priv->spi_tx_buf = dma_alloc_coherent(&spi->dev,
-                                                     PAGE_SIZE,
-                                                     &priv->spi_tx_dma,
-                                                     GFP_DMA);
+               priv->spi_tx_buf = dmam_alloc_coherent(&spi->dev,
+                                                      PAGE_SIZE,
+                                                      &priv->spi_tx_dma,
+                                                      GFP_DMA);
 
                if (priv->spi_tx_buf) {
                        priv->spi_rx_buf = (priv->spi_tx_buf + (PAGE_SIZE / 2));
        return 0;
 
 error_probe:
-       if (mcp251x_enable_dma)
-               dma_free_coherent(&spi->dev, PAGE_SIZE,
-                                 priv->spi_tx_buf, priv->spi_tx_dma);
        mcp251x_power_enable(priv->power, 0);
 
 out_clk:
 
        unregister_candev(net);
 
-       if (mcp251x_enable_dma) {
-               dma_free_coherent(&spi->dev, PAGE_SIZE,
-                                 priv->spi_tx_buf, priv->spi_tx_dma);
-       }
-
        mcp251x_power_enable(priv->power, 0);
 
        if (!IS_ERR(priv->clk))