diff --git a/firmware/target/arm/rk27xx/lcdif-rk27xx.c b/firmware/target/arm/rk27xx/lcdif-rk27xx.c
index 01b1960..4194ae7 100644
--- a/firmware/target/arm/rk27xx/lcdif-rk27xx.c
+++ b/firmware/target/arm/rk27xx/lcdif-rk27xx.c
@@ -113,7 +113,7 @@ static void lcdctrl_init(void)
* on second lcd_update call
*/
for (i=0; i<2048; i++)
- *((uint32_t *)LCD_BUFF + i) = 0;
+ *((volatile uint32_t *)LCD_BUFF + i) = 0;
/* Setup buffered writes to lcd controler */
MCU_CTRL = MCU_CTRL_RS_HIGH|MCU_CTRL_BUFF_WRITE|MCU_CTRL_BUFF_START;
@@ -142,7 +142,7 @@ static void dwdma_init(void)
DWDMA_DMA_CFG = 1; /* global enable */
}
-static void llp_setup(void *src, void *dst, struct llp_t *llp, uint32_t size)
+static void llp_setup(void *src, volatile void *dst, struct llp_t *llp, uint32_t size)
{
llp->sar = (uint32_t)src;
llp->dar = (uint32_t)dst;
@@ -194,7 +194,7 @@ static void create_llp(void)
/* build LLPs */
for (i=0; i<LCD_HEIGHT; i++)
llp_setup((void *)FBADDR(0,i),
- (void*)(LCD_BUFF+((i%4)*4*LCD_WIDTH/2)),
+ (LCD_BUFF+((i%4)*4*LCD_WIDTH/2)),
&(scr_llp[i]),
LCD_WIDTH/2);