txbuflen can be set to arbitrary value by user and it is also set
automagically to the maximum transfer size of the SPI master controller.

Do not allocate the buffer when larger than vmem. When my SPI master
controller reports maximum transfer size 16M the probe of fbtft fails.

Signed-off-by: Michal Suchanek <hramr...@gmail.com>
---
 drivers/staging/fbtft/fbtft-core.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/staging/fbtft/fbtft-core.c 
b/drivers/staging/fbtft/fbtft-core.c
index f3bdc8f..b95cf69 100644
--- a/drivers/staging/fbtft/fbtft-core.c
+++ b/drivers/staging/fbtft/fbtft-core.c
@@ -820,6 +820,8 @@ struct fb_info *fbtft_framebuffer_alloc(struct 
fbtft_display *display,
        /* Transmit buffer */
        if (txbuflen == -1)
                txbuflen = vmem_size + 2; /* add in case startbyte is used */
+       if (txbuflen >= vmem_size + 2)
+               txbuflen = 0;
 
 #ifdef __LITTLE_ENDIAN
        if ((!txbuflen) && (bpp > 8))
-- 
2.8.1

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to