fix:优化并发清除logo的逻辑
This commit is contained in:
parent
fcd69741aa
commit
a10ff1b209
|
@ -2079,17 +2079,17 @@ static int sunxi_fb_ioctl(struct fb_info *info, unsigned int cmd,
|
||||||
{
|
{
|
||||||
#if defined(CONFIG_ION_SUNXI)
|
#if defined(CONFIG_ION_SUNXI)
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
spin_lock_irqsave(&(logo_timer_info.logo_lock), flags);
|
||||||
if(logo_timer_info.init_flag == TIMER_START)
|
if(logo_timer_info.init_flag == TIMER_START)
|
||||||
{
|
{
|
||||||
spin_lock_irqsave(&(logo_timer_info.logo_lock), flags);
|
|
||||||
del_timer(&(logo_timer_info.timer));
|
del_timer(&(logo_timer_info.timer));
|
||||||
flush_pic(H_LOGO_START_POS_X, H_LOGO_START_POS_Y, H_LOGO_WIDTH_PIX, H_LOGO_HEIGH_PIX, (int *)fb_dst, H_logo, 0);
|
flush_pic(H_LOGO_START_POS_X, H_LOGO_START_POS_Y, H_LOGO_WIDTH_PIX, H_LOGO_HEIGH_PIX, (int *)fb_dst, H_logo, 0);
|
||||||
flush_pic(A_LOGO_START_POS_X, A_LOGO_START_POS_Y, A_LOGO_WIDTH_PIX, A_LOGO_HEIGH_PIX, (int *)fb_dst, A_logo, 0);
|
flush_pic(A_LOGO_START_POS_X, A_LOGO_START_POS_Y, A_LOGO_WIDTH_PIX, A_LOGO_HEIGH_PIX, (int *)fb_dst, A_logo, 0);
|
||||||
flush_pic(S_LOGO_START_POS_X, S_LOGO_START_POS_Y, S_LOGO_WIDTH_PIX, S_LOGO_HEIGH_PIX, (int *)fb_dst, S_logo, 0);
|
flush_pic(S_LOGO_START_POS_X, S_LOGO_START_POS_Y, S_LOGO_WIDTH_PIX, S_LOGO_HEIGH_PIX, (int *)fb_dst, S_logo, 0);
|
||||||
disp_ion_flush_cache((void *)pic_info.vaddr, pic_info.size);
|
disp_ion_flush_cache((void *)pic_info.vaddr, pic_info.size);
|
||||||
logo_timer_info.init_flag = TIMER_STOP;
|
logo_timer_info.init_flag = TIMER_STOP;
|
||||||
spin_unlock_irqrestore(&(logo_timer_info.logo_lock), flags);
|
|
||||||
}
|
}
|
||||||
|
spin_unlock_irqrestore(&(logo_timer_info.logo_lock), flags);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue