__s32 BSP_disp_exit(__u32 mode)
{
    if(mode == DISP_EXIT_MODE_CLEAN_ALL)
    {
        BSP_disp_close();
        
        Scaler_Exit(0);
        Scaler_Exit(1);
        Image_exit(0);
        Image_exit(1);
        Disp_lcdc_exit(0);
        Disp_lcdc_exit(1);
        Disp_TVEC_Exit(0);
        Disp_TVEC_Exit(1);
        Display_Hdmi_Exit();
    }
    else if(mode == DISP_EXIT_MODE_CLEAN_PARTLY)
    {
        OSAL_InterruptDisable(INTC_IRQNO_LCDC0);
        OSAL_UnRegISR(INTC_IRQNO_LCDC0,Disp_lcdc_event_proc,(void*)0);

        OSAL_InterruptDisable(INTC_IRQNO_LCDC1);
        OSAL_UnRegISR(INTC_IRQNO_LCDC1,Disp_lcdc_event_proc,(void*)0);

        OSAL_InterruptDisable(INTC_IRQNO_SCALER0);
        OSAL_UnRegISR(INTC_IRQNO_SCALER0,Scaler_event_proc,(void*)0);

        OSAL_InterruptDisable(INTC_IRQNO_SCALER1);
        OSAL_UnRegISR(INTC_IRQNO_SCALER1,Scaler_event_proc,(void*)0);
    }
    
    return DIS_SUCCESS;
}
예제 #2
0
__s32 BSP_disp_exit(__u32 mode)
{
	if (!disp_initialised)
		return DIS_SUCCESS;

	if (mode == DISP_EXIT_MODE_CLEAN_ALL) {
		BSP_disp_close();

		Scaler_Exit(0);
		Image_exit(0);
		Disp_lcdc_exit(0);
		Disp_TVEC_Exit(0);

#ifdef CONFIG_ARCH_SUN4I
		Scaler_Exit(1);
		Image_exit(1);
		Disp_lcdc_exit(1);
		Disp_TVEC_Exit(1);
#endif

		Display_Hdmi_Exit();

#ifdef CONFIG_ARCH_SUN5I
		Disp_iep_exit(0);
#endif
	} else if (mode == DISP_EXIT_MODE_CLEAN_PARTLY) {
		disable_irq(INTC_IRQNO_LCDC0);
		free_irq(INTC_IRQNO_LCDC0, NULL);

#ifdef CONFIG_ARCH_SUN4I
		disable_irq(INTC_IRQNO_LCDC1);
		free_irq(INTC_IRQNO_LCDC1, NULL);
#endif

		disable_irq(INTC_IRQNO_SCALER0);
		free_irq(INTC_IRQNO_SCALER0, NULL);

#ifdef CONFIG_ARCH_SUN4I
		disable_irq(INTC_IRQNO_SCALER1);
		free_irq(INTC_IRQNO_SCALER1, NULL);
#endif
	}

	return DIS_SUCCESS;
}