|
@@ -31,6 +31,7 @@
|
|
|
#include <linux/cpufreq.h>
|
|
|
#include <linux/console.h>
|
|
|
#include <linux/slab.h>
|
|
|
+#include <linux/lcm.h>
|
|
|
#include <video/da8xx-fb.h>
|
|
|
#include <asm/div64.h>
|
|
|
|
|
@@ -1114,6 +1115,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");
|
|
@@ -1209,7 +1211,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,
|