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) #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;
} }