Example #1
0
void mt_disp_update(UINT32 x, UINT32 y, UINT32 width, UINT32 height)
{
    if(fb_isdirty)
    {
        fb_isdirty = 0;
		disp_regupdate_interrupt_clean();
        LCD_CHECK_RET(LCD_LayerSetAddress(FB_LAYER - 1, (UINT32)fb_addr + fb_offset_logo * fb_size));
        printk("[wwy] hardware address = %x, fb_offset_logo = %d\n",(UINT32)fb_addr + fb_offset_logo * fb_size,fb_offset_logo);
        DISP_CHECK_RET(DISP_UpdateScreen(x, y, width, height));
        //wait reg update to set fb_offset_logo
        DISP_WaitRegUpdate();
        fb_offset_logo = fb_offset_logo ? 0 : 3;
    }
    else
    {
    DISP_CHECK_RET(DISP_UpdateScreen(x, y, width, height));
    }
}
Example #2
0
void mt_disp_update(UINT32 x, UINT32 y, UINT32 width, UINT32 height)
{
    if(fb_isdirty)
    {
        fb_isdirty = 0;
        MASKREG32(DISP_REG_CONFIG_MUTEX_INTEN, 0x1, 0x1); //Enable DISP MUTEX0
        MASKREG32(DISP_REG_CONFIG_MUTEX_INTSTA, 0x1, 0x0);
        LCD_CHECK_RET(LCD_LayerSetAddress(FB_LAYER - 1, (UINT32)fb_addr + fb_offset_logo * fb_size));
        printf("[wwy] hardware address = %x, fb_offset_logo = %d\n",(UINT32)fb_addr + fb_offset_logo * fb_size,fb_offset_logo);
        DISP_CHECK_RET(DISP_UpdateScreen(x, y, width, height));
        //wait reg update to set fb_offset_logo
        DISP_WaitRegUpdate();
        fb_offset_logo = fb_offset_logo ? 0 : 3;

    }
    else
    {
        DISP_CHECK_RET(DISP_UpdateScreen(x, y, width, height));
    }
}