mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-10-01 09:00:45 +09:00
pxa_lcd: make driver cache-aware
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
This commit is contained in:
parent
9cfc059853
commit
59deb7fe8d
@ -353,6 +353,9 @@ void lcd_ctrl_init (void *lcdbase)
|
|||||||
pxafb_init(&panel_info);
|
pxafb_init(&panel_info);
|
||||||
pxafb_setup_gpio(&panel_info);
|
pxafb_setup_gpio(&panel_info);
|
||||||
pxafb_enable_controller(&panel_info);
|
pxafb_enable_controller(&panel_info);
|
||||||
|
|
||||||
|
/* Enable flushing if we enabled dcache */
|
||||||
|
lcd_set_flush_dcache(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------------------------------------------*/
|
/*----------------------------------------------------------------------*/
|
||||||
@ -565,6 +568,10 @@ static int pxafb_init (vidinfo_t *vid)
|
|||||||
fbi->dmadesc_fblow->fidr = 0;
|
fbi->dmadesc_fblow->fidr = 0;
|
||||||
fbi->dmadesc_fblow->ldcmd = BYTES_PER_PANEL;
|
fbi->dmadesc_fblow->ldcmd = BYTES_PER_PANEL;
|
||||||
|
|
||||||
|
flush_dcache_range((u32)fbi->dmadesc_fblow,
|
||||||
|
(u32)fbi->dmadesc_fblow +
|
||||||
|
sizeof(*fbi->dmadesc_fblow));
|
||||||
|
|
||||||
fbi->fdadr1 = (u_long)fbi->dmadesc_fblow; /* only used in dual-panel mode */
|
fbi->fdadr1 = (u_long)fbi->dmadesc_fblow; /* only used in dual-panel mode */
|
||||||
|
|
||||||
fbi->dmadesc_fbhigh->fsadr = fbi->screen;
|
fbi->dmadesc_fbhigh->fsadr = fbi->screen;
|
||||||
@ -580,11 +587,20 @@ static int pxafb_init (vidinfo_t *vid)
|
|||||||
/* assume any mode with <12 bpp is palette driven */
|
/* assume any mode with <12 bpp is palette driven */
|
||||||
fbi->dmadesc_palette->fdadr = (u_long)fbi->dmadesc_fbhigh;
|
fbi->dmadesc_palette->fdadr = (u_long)fbi->dmadesc_fbhigh;
|
||||||
fbi->dmadesc_fbhigh->fdadr = (u_long)fbi->dmadesc_palette;
|
fbi->dmadesc_fbhigh->fdadr = (u_long)fbi->dmadesc_palette;
|
||||||
|
flush_dcache_range((u32)fbi->dmadesc_fbhigh,
|
||||||
|
(u32)fbi->dmadesc_fbhigh +
|
||||||
|
sizeof(*fbi->dmadesc_fbhigh));
|
||||||
|
flush_dcache_range((u32)fbi->dmadesc_palette,
|
||||||
|
(u32)fbi->dmadesc_palette +
|
||||||
|
sizeof(*fbi->dmadesc_palette));
|
||||||
/* flips back and forth between pal and fbhigh */
|
/* flips back and forth between pal and fbhigh */
|
||||||
fbi->fdadr0 = (u_long)fbi->dmadesc_palette;
|
fbi->fdadr0 = (u_long)fbi->dmadesc_palette;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
flush_dcache_range((u32)fbi->dmadesc_fbhigh,
|
||||||
|
(u32)fbi->dmadesc_fbhigh +
|
||||||
|
sizeof(*fbi->dmadesc_fbhigh));
|
||||||
/* palette shouldn't be loaded in true-color mode */
|
/* palette shouldn't be loaded in true-color mode */
|
||||||
fbi->dmadesc_fbhigh->fdadr = (u_long)fbi->dmadesc_fbhigh;
|
fbi->dmadesc_fbhigh->fdadr = (u_long)fbi->dmadesc_fbhigh;
|
||||||
fbi->fdadr0 = (u_long)fbi->dmadesc_fbhigh; /* no pal just fbhigh */
|
fbi->fdadr0 = (u_long)fbi->dmadesc_fbhigh; /* no pal just fbhigh */
|
||||||
|
Loading…
Reference in New Issue
Block a user