Example #1
0
__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;
}
Example #2
0
__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;
}