diff options
Diffstat (limited to 'drivers/video/omap2/vram.c')
| -rw-r--r-- | drivers/video/omap2/vram.c | 19 | 
1 files changed, 14 insertions, 5 deletions
diff --git a/drivers/video/omap2/vram.c b/drivers/video/omap2/vram.c index fed2a72bc6b..9441e2eb3de 100644 --- a/drivers/video/omap2/vram.c +++ b/drivers/video/omap2/vram.c @@ -551,12 +551,18 @@ void __init omap_vram_reserve_sdram_memblock(void)  	if (!size)  		return; -	size = PAGE_ALIGN(size); +	size = ALIGN(size, SZ_2M);  	if (paddr) { -		if ((paddr & ~PAGE_MASK) || -		    !memblock_is_region_memory(paddr, size)) { -			pr_err("Illegal SDRAM region for VRAM\n"); +		if (paddr & ~PAGE_MASK) { +			pr_err("VRAM start address 0x%08x not page aligned\n", +					paddr); +			return; +		} + +		if (!memblock_is_region_memory(paddr, size)) { +			pr_err("Illegal SDRAM region 0x%08x..0x%08x for VRAM\n", +					paddr, paddr + size - 1);  			return;  		} @@ -570,9 +576,12 @@ void __init omap_vram_reserve_sdram_memblock(void)  			return;  		}  	} else { -		paddr = memblock_alloc_base(size, PAGE_SIZE, MEMBLOCK_REAL_LIMIT); +		paddr = memblock_alloc(size, SZ_2M);  	} +	memblock_free(paddr, size); +	memblock_remove(paddr, size); +  	omap_vram_add_region(paddr, size);  	pr_info("Reserving %u bytes SDRAM for VRAM\n", size);  |