mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-07-26 22:07:51 +00:00
9bc77dff5f
Regenerate all beaglebone patches and add one vfs tracer patch for powertop Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> Signed-off-by: Denys Dmytriyenko <denys@ti.com>
60 lines
2.1 KiB
Diff
60 lines
2.1 KiB
Diff
From c9201ef3a2d12a49b5070620a204f66eef5017e0 Mon Sep 17 00:00:00 2001
|
|
From: Aditya Nellutla <aditya.n@ti.com>
|
|
Date: Thu, 29 Mar 2012 15:45:39 +0530
|
|
Subject: [PATCH 62/79] da8xx-fb: Rounding FB size to satisfy SGX buffer
|
|
requirements
|
|
|
|
In the real time use-case when SGX is used for rendering to FB buffers it has been
|
|
observed that, the available memory from framebuffer driver is not sufficient for
|
|
SGX under certain cases (like 16-bit WVGA resolution). SGX requires 2 swap buffers
|
|
with each of the buffers aligned to lcm(line_length, PAGE_SIZE).
|
|
|
|
Inorder to satisfy this requirement, we have two options,
|
|
|
|
- Increase number of FB buffers (LCD_NUM_BUFFERS) to 3. This is not
|
|
recommended as we end up wasting huge memory in most of the cases.
|
|
|
|
- Align FB buffers to lcm(line_length, PAGE_SIZE).This ensures framebuffer
|
|
size is increased to satisfy SGX requirements keeping alignment intact.
|
|
|
|
This patch makes sure that FB allocates buffers aligned to above formula.
|
|
|
|
Signed-off-by: Aditya Nellutla <aditya.n@ti.com>
|
|
---
|
|
drivers/video/da8xx-fb.c | 5 ++++-
|
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
|
|
index 86b19ac..9aaca5d 100644
|
|
--- a/drivers/video/da8xx-fb.c
|
|
+++ b/drivers/video/da8xx-fb.c
|
|
@@ -34,6 +34,7 @@
|
|
#include <linux/slab.h>
|
|
#include <linux/delay.h>
|
|
#include <linux/pm_runtime.h>
|
|
+#include <linux/lcm.h>
|
|
#include <video/da8xx-fb.h>
|
|
#include <asm/mach-types.h>
|
|
|
|
@@ -1263,6 +1264,7 @@ static int __devinit fb_probe(struct platform_device *device)
|
|
struct da8xx_fb_par *par;
|
|
resource_size_t len;
|
|
int ret, i;
|
|
+ unsigned long ulcm;
|
|
|
|
if (fb_pdata == NULL) {
|
|
dev_err(&device->dev, "Can not get platform data\n");
|
|
@@ -1362,7 +1364,8 @@ static int __devinit fb_probe(struct platform_device *device)
|
|
|
|
/* allocate frame buffer */
|
|
par->vram_size = lcdc_info->width * lcdc_info->height * lcd_cfg->bpp;
|
|
- par->vram_size = PAGE_ALIGN(par->vram_size/8);
|
|
+ ulcm = lcm((lcdc_info->width * lcd_cfg->bpp)/8, PAGE_SIZE);
|
|
+ par->vram_size = roundup(par->vram_size/8, ulcm);
|
|
par->vram_size = par->vram_size * LCD_NUM_BUFFERS;
|
|
|
|
par->vram_virt = dma_alloc_coherent(NULL,
|
|
--
|
|
1.7.10
|
|
|