Exemplo n.º 1
0
__s32 DRV_DISP_MExit(void)
{        
	__u8 err;

    BSP_disp_close();
    BSP_disp_exit(g_disp_drv.exit_mode);

#if DRV_VCOM_TIMER

#if  KNOB_USE_HW_TIMER
	if(g_vcom_timer_hdl)
	{
		esTIME_StopTimer(g_vcom_timer_hdl);
		esTIME_ReleaseTimer(g_vcom_timer_hdl);
		g_vcom_timer_hdl = NULL;
	}

#else
    if (esKRNL_TmrStateGet(g_vcom_timer_hdl) == OS_TMR_STATE_RUNNING)
	{
		esKRNL_TmrStop(g_vcom_timer_hdl, OS_TMR_OPT_NONE, NULL);
		esKRNL_TmrDel(g_vcom_timer_hdl);
		g_vcom_timer_hdl = NULL;
    }


#endif
    esPINS_PinGrpRel(vcom_io, 0);
#endif		

	esKRNL_SemDel(g_disp_drv.scaler_finished_sem[0], 0, &err);
	esKRNL_SemDel(g_disp_drv.scaler_finished_sem[1], 0, &err);

    return EPDK_OK;
} 
Exemplo n.º 2
0
/**
 *  释放 touch panel 消息传输通道
 */
__s32 msg_srv_deinit_tp_channel(__memit_ctr_t *emit)
{	
	__u8 err;	
	
	/* 删除 psys_msg_queue */	
	esKRNL_QDel(emit->psys_msg_queue, 0, &err);
	emit->psys_msg_queue = NULL;
	
	/* 删除 p_array_sem */	
	esKRNL_SemDel(emit->p_array_sem, 0, &err);
	esKRNL_SemDel(emit->p_hook_sem, 0, &err);
	emit->p_array_sem = NULL;
	emit->p_hook_sem = NULL;
	
	emit->sys_msg_counter = 0;
	
	/* 注销回调函数 */
	/*{
		ES_FILE  *p_tpfile;
		p_tpfile = eLIBs_fopen("b:\\HID\\TP", "r+");
		if( !p_tpfile )
		{
			__err(" open touchpanel driver error \n");
			return EPDK_FAIL;
		}
		eLIBs_fioctrl(p_tpfile, DRV_TP_CMD_UNREG, 0, (void *)tp_msg_cb);		
		eLIBs_fclose(p_tpfile);
	}*/	
	
	esINPUT_LdevRelease(emit_ctr.h_tpGraber);
	
	return EPDK_OK;
}
Exemplo n.º 3
0
void ve_release_clock(void)
{
    u8 err;
    
    //register call-back fucntion for adjust ve clock
    esCLK_MclkUnregCb(CSP_CCM_MOD_CLK_VE, cb_ve_clock_change);

    //* release handle of VE clock gate.
    if(h_ve_clock)
    {
        esCLK_MclkOnOff(h_ve_clock, CLK_OFF);
        esCLK_CloseMclk(h_ve_clock);
        h_ve_clock = 0;
    }

    //* release handle of AHB to VE clock gate.
    if(h_ve_ahb_gate)
    {
        esCLK_MclkOnOff(h_ve_ahb_gate, CLK_OFF);
        esCLK_CloseMclk(h_ve_ahb_gate);
        h_ve_ahb_gate = 0;
    }

    //* release handle of DRAM to VE clock gate.
    if(h_ve_dram_gate)
    {
        esCLK_MclkOnOff(h_ve_dram_gate, CLK_OFF);
        esCLK_CloseMclk(h_ve_dram_gate);
        h_ve_dram_gate = 0;
    }

    //* delete semaphore
    if(sem_ve_clk_adjust)
    {
        esKRNL_SemDel(sem_ve_clk_adjust, OS_DEL_ALWAYS, &err);
        sem_ve_clk_adjust = NULL;
    }

	esINT_UniISR(INTC_IRQNO_MACC, (__pISR_t)ve_interrupt_service);
	
    if(sem_intr)
    {
    	esKRNL_SemDel(sem_intr, OS_DEL_ALWAYS, &err);
    	sem_intr = NULL;
    }
    
    if(h_ve_sram)
    {
        esMEM_SramRelBlk(h_ve_sram);
        h_ve_sram = 0;
    }

    return;
}
Exemplo n.º 4
0
s32 semaphore_delete(Handle h, u32 opt)
{
	u8 err;

	if(opt == SEM_DEL_ALWAYS)
		opt = OS_DEL_ALWAYS;
	else
		opt = OS_DEL_NO_PEND;

	esKRNL_SemDel((__krnl_event_t*)h, opt, &err);

	if(err == 0)
		return 0;
	else
		return -1;
}
Exemplo n.º 5
0
void ve_init_clock(void)
{
    u8 err;

    //* create semaphore for VE interrupt.
    sem_intr = esKRNL_SemCreate(0);
    if(sem_intr == NULL)
    	return;

    //* create semaphore to sync adjust clock operation
    sem_ve_clk_adjust = esKRNL_SemCreate(1);
    if(sem_ve_clk_adjust == NULL)
    {
    	esKRNL_SemDel(sem_intr, OS_DEL_ALWAYS, &err);
    	sem_intr = NULL;
        return;
    }

    //* request handle of VE module clock
    h_ve_clock = esCLK_OpenMclk(CSP_CCM_MOD_CLK_VE);
    esCLK_MclkRegCb(CSP_CCM_MOD_CLK_VE, cb_ve_clock_change);

    //* request handle of AHB to VE clock gate.
    h_ve_ahb_gate = esCLK_OpenMclk(CSP_CCM_MOD_CLK_AHB_VE);

    //* request handle of DRAM to VE clock gate.
    h_ve_dram_gate = esCLK_OpenMclk(CSP_CCM_MOD_CLK_SDRAM_VE);

    //* set MACC clock source to video PLL.
    esCLK_SetMclkSrc(h_ve_clock, CSP_CCM_SYS_CLK_VE_PLL);
    esCLK_SetMclkDiv(h_ve_clock, 1);

    //* switch SRAM to MACC.
    h_ve_sram = esMEM_SramReqBlk(CSP_SRAM_ZONE_C1, SRAM_REQ_MODE_WAIT);
    esMEM_SramSwitchBlk(h_ve_sram, CSP_SRAM_MODULE_VE);

    //* enable MACC module clock
    esCLK_MclkOnOff(h_ve_clock, CLK_ON);
    esCLK_MclkOnOff(h_ve_ahb_gate, CLK_ON);
    esCLK_MclkOnOff(h_ve_dram_gate, CLK_ON);

	esINT_InsISR(INTC_IRQNO_MACC, (__pISR_t)ve_interrupt_service, 0);

    return;
}