bcm2835 video: Map fb as cached

The bcm2835 frame buffer is in RAM, so we can easily map it as cached and gain
all the glorious performance boost that brings with it.

Signed-off-by: Alexander Graf <agraf@suse.de>
Tested-by: Stephen Warren <swarren@wwwdotorg.org>
Acked-by: Stephen Warren <swarren@wwwdotorg.org>
This commit is contained in:
Alexander Graf 2016-03-24 10:31:11 +01:00 committed by Tom Rini
parent ccd9d51ede
commit 99de254e8d
1 changed files with 9 additions and 0 deletions

View File

@ -44,6 +44,7 @@ void lcd_ctrl_init(void *lcdbase)
ALLOC_CACHE_ALIGN_BUFFER(struct msg_setup, msg_setup, 1);
int ret;
u32 w, h;
u32 fb_start, fb_end;
debug("bcm2835: Query resolution...\n");
@ -106,6 +107,14 @@ void lcd_ctrl_init(void *lcdbase)
gd->fb_base = bus_to_phys(
msg_setup->allocate_buffer.body.resp.fb_address);
/* Enable dcache for the frame buffer */
fb_start = gd->fb_base & ~(MMU_SECTION_SIZE - 1);
fb_end = gd->fb_base + msg_setup->allocate_buffer.body.resp.fb_size;
fb_end = ALIGN(fb_end, 1 << MMU_SECTION_SHIFT);
mmu_set_region_dcache_behaviour(fb_start, fb_end - fb_start,
DCACHE_WRITEBACK);
lcd_set_flush_dcache(1);
}
void lcd_enable(void)