staging: fbtft: remove custom DMA mapped buffer
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 19 Jan 2017 10:45:42 +0000 (12:45 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 Jan 2017 11:50:27 +0000 (12:50 +0100)
There is no need to duplicate what SPI core already does, i.e. mapping buffers
for DMA capable transfers.

Remove all related pices of code.

Note, that code, besides its redundancy, was buggy: DMA address potentially can
be 0, SPI slave device has nothing to do with DMA capable device properties and
DMA mask in particular.

Suggested-by: Noralf Trønnes <noralf@tronnes.org>
Acked-by: Noralf Trønnes <noralf@tronnes.org>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/fbtft/fb_ra8875.c
drivers/staging/fbtft/fbtft-core.c
drivers/staging/fbtft/fbtft-io.c
drivers/staging/fbtft/fbtft.h

index 308a244972aa788cf75670a53e2285a9a133f79d..a6bc1503a50ec4bef5da8b7e094811790f197e8b 100644 (file)
@@ -42,10 +42,6 @@ static int write_spi(struct fbtft_par *par, void *buf, size_t len)
        }
 
        spi_message_init(&m);
-       if (par->txbuf.dma && buf == par->txbuf.buf) {
-               t.tx_dma = par->txbuf.dma;
-               m.is_dma_mapped = 1;
-       }
        spi_message_add_tail(&t, &m);
        return spi_sync(par->spi, &m);
 }
index 300a1e4505b9b9351644088e86ad64d5f4c01174..4e13090c7fbd72ed167dc1a3143971a5e0acb47b 100644 (file)
@@ -32,7 +32,6 @@
 #include <linux/backlight.h>
 #include <linux/platform_device.h>
 #include <linux/spinlock.h>
-#include <linux/dma-mapping.h>
 #include <linux/of.h>
 #include <linux/of_gpio.h>
 #include <video/mipi_display.h>
@@ -44,12 +43,6 @@ static unsigned long debug;
 module_param(debug, ulong, 0);
 MODULE_PARM_DESC(debug, "override device debug level");
 
-#ifdef CONFIG_HAS_DMA
-static bool dma = true;
-module_param(dma, bool, 0);
-MODULE_PARM_DESC(dma, "Use DMA buffer");
-#endif
-
 void fbtft_dbg_hex(const struct device *dev, int groupsize,
                        void *buf, size_t len, const char *fmt, ...)
 {
@@ -836,17 +829,7 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display,
 #endif
 
        if (txbuflen > 0) {
-#ifdef CONFIG_HAS_DMA
-               if (dma) {
-                       dev->coherent_dma_mask = ~0;
-                       txbuf = dmam_alloc_coherent(dev, txbuflen,
-                                                   &par->txbuf.dma, GFP_DMA);
-               } else
-#endif
-               {
-                       txbuf = devm_kzalloc(par->info->device,
-                                            txbuflen, GFP_KERNEL);
-               }
+               txbuf = devm_kzalloc(par->info->device, txbuflen, GFP_KERNEL);
                if (!txbuf)
                        goto alloc_fail;
                par->txbuf.buf = txbuf;
@@ -975,8 +958,7 @@ int fbtft_register_framebuffer(struct fb_info *fb_info)
        fbtft_sysfs_init(par);
 
        if (par->txbuf.buf)
-               sprintf(text1, ", %zu KiB %sbuffer memory",
-                       par->txbuf.len >> 10, par->txbuf.dma ? "DMA " : "");
+               sprintf(text1, ", %zu KiB buffer memory", par->txbuf.len >> 10);
        if (spi)
                sprintf(text2, ", spi%d.%d at %d MHz", spi->master->bus_num,
                        spi->chip_select, spi->max_speed_hz / 1000000);
index 4dcea2e0b3aefec4d95076271b75ea8912d2d3b6..d86840548b74c692c9a452daa3110236997709ff 100644 (file)
@@ -22,10 +22,6 @@ int fbtft_write_spi(struct fbtft_par *par, void *buf, size_t len)
        }
 
        spi_message_init(&m);
-       if (par->txbuf.dma && buf == par->txbuf.buf) {
-               t.tx_dma = par->txbuf.dma;
-               m.is_dma_mapped = 1;
-       }
        spi_message_add_tail(&t, &m);
        return spi_sync(par->spi, &m);
 }
index aacdde92cc2e2e8bf4cf3238325723c22e223647..b09804773ff294cd5f25cd55dea4f2f3e676b0d8 100644 (file)
@@ -209,7 +209,6 @@ struct fbtft_par {
        u32 pseudo_palette[16];
        struct {
                void *buf;
-               dma_addr_t dma;
                size_t len;
        } txbuf;
        u8 *buf;