fix:优化并发清除logo的逻辑

This commit is contained in:
张兆鹏 2025-01-18 11:01:42 +08:00
parent fcd69741aa
commit a10ff1b209
1 changed files with 2 additions and 2 deletions

View File

@ -2079,17 +2079,17 @@ static int sunxi_fb_ioctl(struct fb_info *info, unsigned int cmd,
{
#if defined(CONFIG_ION_SUNXI)
unsigned long flags;
spin_lock_irqsave(&(logo_timer_info.logo_lock), flags);
if(logo_timer_info.init_flag == TIMER_START)
{
spin_lock_irqsave(&(logo_timer_info.logo_lock), flags);
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(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);
disp_ion_flush_cache((void *)pic_info.vaddr, pic_info.size);
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
break;
}