__s32 scaler_event_proc(void *parg) #endif { __u8 fe_intflags = 0, be_intflags = 0; __u32 scaler_index = (__u32)parg; if(gdisp.scaler[scaler_index].status & SCALER_USED) { fe_intflags = DE_SCAL_QueryINT(scaler_index); DE_SCAL_ClearINT(scaler_index,fe_intflags); } be_intflags = DE_BE_QueryINT(scaler_index); DE_BE_ClearINT(scaler_index,be_intflags); //DE_INF("scaler %d interrupt, scal_int_status:0x%x!\n", scaler_index, fe_intflags); if(be_intflags & DE_IMG_REG_LOAD_FINISH) { LCD_line_event_proc(scaler_index); } if((gdisp.scaler[scaler_index].status & SCALER_USED) && (fe_intflags & DE_WB_END_IE)) { DE_SCAL_DisableINT(scaler_index,DE_FE_INTEN_ALL); #ifdef __LINUX_OSAL__ if(gdisp.scaler[scaler_index].b_scaler_finished == 1 && (&gdisp.scaler[scaler_index].scaler_queue != NULL)) { gdisp.scaler[scaler_index].b_scaler_finished = 2; wake_up_interruptible(&(gdisp.scaler[scaler_index].scaler_queue)); } else { __wrn("not scaler %d begin in DRV_scaler_finish\n", scaler_index); } #endif } return OSAL_IRQ_RETURN; }
__s32 Image_event_proc(int irq, void *parg) #endif { __u8 img_intflags; __u32 sel = (__u32)parg; img_intflags = DE_BE_QueryINT(sel); if(img_intflags & DE_IMG_IRDY_IE) { DE_BE_ClearINT(sel,DE_IMG_IRDY_IE); //if(gdisp.scaler[sel].b_cfg_reg) //{ // gdisp.init_para.disp_int_process(sel); //} } return OSAL_IRQ_RETURN; }