#include <linux/completion.h>
 #include <linux/delay.h>
 #include <linux/device.h>
-#include <linux/dma-mapping.h>
 #include <linux/freezer.h>
 #include <linux/interrupt.h>
 #include <linux/io.h>
 
 #define DEVICE_NAME "hi3110"
 
-static int hi3110_enable_dma = 1; /* Enable SPI DMA. Default: 1 (On) */
-module_param(hi3110_enable_dma, int, 0444);
-MODULE_PARM_DESC(hi3110_enable_dma, "Enable SPI DMA. Default: 1 (On)");
-
 static const struct can_bittiming_const hi3110_bittiming_const = {
        .name = DEVICE_NAME,
        .tseg1_min = 2,
 
        u8 *spi_tx_buf;
        u8 *spi_rx_buf;
-       dma_addr_t spi_tx_dma;
-       dma_addr_t spi_rx_dma;
 
        struct sk_buff *tx_skb;
        int tx_len;
        int ret;
 
        spi_message_init(&m);
-
-       if (hi3110_enable_dma) {
-               t.tx_dma = priv->spi_tx_dma;
-               t.rx_dma = priv->spi_rx_dma;
-               m.is_dma_mapped = 1;
-       }
-
        spi_message_add_tail(&t, &m);
 
        ret = spi_sync(spi, &m);
        priv->spi = spi;
        mutex_init(&priv->hi3110_lock);
 
-       /* If requested, allocate DMA buffers */
-       if (hi3110_enable_dma) {
-               spi->dev.coherent_dma_mask = ~0;
-
-               /* Minimum coherent DMA allocation is PAGE_SIZE, so allocate
-                * that much and share it between Tx and Rx DMA buffers.
-                */
-               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));
-                       priv->spi_rx_dma = (dma_addr_t)(priv->spi_tx_dma +
-                                                       (PAGE_SIZE / 2));
-               } else {
-                       /* Fall back to non-DMA */
-                       hi3110_enable_dma = 0;
-               }
+       priv->spi_tx_buf = devm_kzalloc(&spi->dev, HI3110_RX_BUF_LEN,
+                                       GFP_KERNEL);
+       if (!priv->spi_tx_buf) {
+               ret = -ENOMEM;
+               goto error_probe;
        }
+       priv->spi_rx_buf = devm_kzalloc(&spi->dev, HI3110_RX_BUF_LEN,
+                                       GFP_KERNEL);
 
-       /* Allocate non-DMA buffers */
-       if (!hi3110_enable_dma) {
-               priv->spi_tx_buf = devm_kzalloc(&spi->dev, HI3110_RX_BUF_LEN,
-                                               GFP_KERNEL);
-               if (!priv->spi_tx_buf) {
-                       ret = -ENOMEM;
-                       goto error_probe;
-               }
-               priv->spi_rx_buf = devm_kzalloc(&spi->dev, HI3110_RX_BUF_LEN,
-                                               GFP_KERNEL);
-
-               if (!priv->spi_rx_buf) {
-                       ret = -ENOMEM;
-                       goto error_probe;
-               }
+       if (!priv->spi_rx_buf) {
+               ret = -ENOMEM;
+               goto error_probe;
        }
 
        SET_NETDEV_DEV(net, &spi->dev);