staging: fbtft: access screen buffer directly
authorLars Svensson <lars1.svensson@sonymobile.com>
Wed, 7 Oct 2015 07:20:14 +0000 (09:20 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Oct 2015 17:52:31 +0000 (10:52 -0700)
In fbtft-bus.c:fbtft_write_vmem16_bus9(), ioread8() is used for
accessing the provided screen array. Since screen_buffer actually
points to an ordinary buffer, instead access it directly.

Signed-off-by: Lars Svensson <lars1.svensson@sonymobile.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/fbtft/fbtft-bus.c

index 9a95fde..58449ad 100644 (file)
@@ -179,7 +179,7 @@ EXPORT_SYMBOL(fbtft_write_vmem16_bus8);
 /* 16 bit pixel over 9-bit SPI bus: dc + high byte, dc + low byte */
 int fbtft_write_vmem16_bus9(struct fbtft_par *par, size_t offset, size_t len)
 {
-       u8 __iomem *vmem8;
+       u8 *vmem8;
        u16 *txbuf16 = par->txbuf.buf;
        size_t remain;
        size_t to_copy;
@@ -207,12 +207,12 @@ int fbtft_write_vmem16_bus9(struct fbtft_par *par, size_t offset, size_t len)
 
 #ifdef __LITTLE_ENDIAN
                for (i = 0; i < to_copy; i += 2) {
-                       txbuf16[i]     = 0x0100 | ioread8(vmem8 + i + 1);
-                       txbuf16[i + 1] = 0x0100 | ioread8(vmem8 + i);
+                       txbuf16[i]     = 0x0100 | vmem8[i + 1];
+                       txbuf16[i + 1] = 0x0100 | vmem8[i];
                }
 #else
                for (i = 0; i < to_copy; i++)
-                       txbuf16[i]   = 0x0100 | ioread8(vmem8 + i);
+                       txbuf16[i]   = 0x0100 | vmem8[i];
 #endif
                vmem8 = vmem8 + to_copy;
                ret = par->fbtftops.write(par, par->txbuf.buf, to_copy * 2);