diff mbox

video: ARM CLCD: fix dma allocation size

Message ID 20170308145805.1325-1-slemieux.tyco@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Sylvain Lemieux March 8, 2017, 2:58 p.m. UTC
From: Liam Beguin <lbeguin@tycoint.com>

This patch forces the frambuffer size to be aligned on kernel pages.

During the board startup, the splash screed did appear;
the "ts_test" program or our application were not able to start.

The following error message was reported:
error: failed to map framebuffer device to memory.
LinuxFB: driver cannot connect

The issue was discovered, on the LPC32xx platform, during the migration
of the LCD definition from the board file to the device tree.

Signed-off-by: Liam Beguin <lbeguin@tycoint.com>
Signed-off-by: Sylvain Lemieux <slemieux@tycoint.com>
---
 drivers/video/fbdev/amba-clcd.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Sylvain Lemieux March 28, 2017, 5:25 p.m. UTC | #1
ping

On Wed, 2017-03-08 at 09:58 -0500, Sylvain Lemieux wrote:
> From: Liam Beguin <lbeguin@tycoint.com>
> 
> This patch forces the frambuffer size to be aligned on kernel pages.
> 
> During the board startup, the splash screed did appear;
> the "ts_test" program or our application were not able to start.
> 
> The following error message was reported:
> error: failed to map framebuffer device to memory.
> LinuxFB: driver cannot connect
> 
> The issue was discovered, on the LPC32xx platform, during the migration
> of the LCD definition from the board file to the device tree.
> 
> Signed-off-by: Liam Beguin <lbeguin@tycoint.com>
> Signed-off-by: Sylvain Lemieux <slemieux@tycoint.com>
> ---
>  drivers/video/fbdev/amba-clcd.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/video/fbdev/amba-clcd.c b/drivers/video/fbdev/amba-clcd.c
> index 0fab92c62828..ffc2c33c6cef 100644
> --- a/drivers/video/fbdev/amba-clcd.c
> +++ b/drivers/video/fbdev/amba-clcd.c
> @@ -881,8 +881,8 @@ static int clcdfb_of_dma_setup(struct clcd_fb *fb)
>  	if (err)
>  		return err;
>  
> -	framesize = fb->panel->mode.xres * fb->panel->mode.yres *
> -			fb->panel->bpp / 8;
> +	framesize = PAGE_ALIGN(fb->panel->mode.xres * fb->panel->mode.yres *
> +			fb->panel->bpp / 8);
>  	fb->fb.screen_base = dma_alloc_coherent(&fb->dev->dev, framesize,
>  			&dma, GFP_KERNEL);
>  	if (!fb->fb.screen_base)


--
To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Bartlomiej Zolnierkiewicz April 7, 2017, 2:31 p.m. UTC | #2
Hi,

On Wednesday, March 08, 2017 09:58:05 AM Sylvain Lemieux wrote:
> From: Liam Beguin <lbeguin@tycoint.com>
> 
> This patch forces the frambuffer size to be aligned on kernel pages.
> 
> During the board startup, the splash screed did appear;
> the "ts_test" program or our application were not able to start.
> 
> The following error message was reported:
> error: failed to map framebuffer device to memory.
> LinuxFB: driver cannot connect
> 
> The issue was discovered, on the LPC32xx platform, during the migration
> of the LCD definition from the board file to the device tree.
> 
> Signed-off-by: Liam Beguin <lbeguin@tycoint.com>
> Signed-off-by: Sylvain Lemieux <slemieux@tycoint.com>

Patch queued for 4.12, thanks.

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

--
To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/video/fbdev/amba-clcd.c b/drivers/video/fbdev/amba-clcd.c
index 0fab92c62828..ffc2c33c6cef 100644
--- a/drivers/video/fbdev/amba-clcd.c
+++ b/drivers/video/fbdev/amba-clcd.c
@@ -881,8 +881,8 @@  static int clcdfb_of_dma_setup(struct clcd_fb *fb)
 	if (err)
 		return err;
 
-	framesize = fb->panel->mode.xres * fb->panel->mode.yres *
-			fb->panel->bpp / 8;
+	framesize = PAGE_ALIGN(fb->panel->mode.xres * fb->panel->mode.yres *
+			fb->panel->bpp / 8);
 	fb->fb.screen_base = dma_alloc_coherent(&fb->dev->dev, framesize,
 			&dma, GFP_KERNEL);
 	if (!fb->fb.screen_base)