示例#1
0
//enable: 0 disable
//           1 enable
//           2 disable right now
__s32 IEP_Deu_Enable(__u32 sel, __u32 enable)
{
	__u32 strtab_addr;

	//pr_warn("bsp_disp_deu_disable, ====3======sel=%d, enable=%d\n", sel, enable);
	strtab_addr =(__u32)g_strtab_addr;
	if(enable == 1) {
		deu_clk_open(sel, 1);
		DEU_EBIOS_Enable(sel, 1);

		__inf("vir_addr:0x%08x, phy_addr:0x%08x\n", strtab_addr, (__u32)(__pa(strtab_addr)));

		/* virtual to physcal addr */
		strtab_addr = __pa(strtab_addr);

		DEU_EBIOS_LP_Set_STR_Addr(sel, strtab_addr);
		DEU_EBIOS_LP_STR_Enable(sel, TRUE);
		DEU_EBIOS_LP_STR_Cfg_Rdy(sel);
		DEU_EBIOS_Set_Csc_Coeff(sel, gdeu[sel].frameinfo.csc_mode);
		DEU_EBIOS_Csc_Enable(sel, 1);
		g_deu_status[sel] |= DEU_USED;
		g_deu_status[sel] &= DEU_NEED_CLOSED_MASK;
	}	else {
		DEU_EBIOS_Csc_Enable(sel, 0);
		DEU_EBIOS_Enable(sel, 0);

		g_deu_status[sel] |= DEU_NEED_CLOSED;

		if(enable == 2)	{
			IEP_Deu_Operation_In_Vblanking(sel);
		}
	}

	return DIS_SUCCESS;
}
示例#2
0
__s32 IEP_Deu_Enable(__u32 sel, __u32 enable)
{
	__u32 strtab_addr;

    strtab_addr =(__u32)g_strtab_addr;
	if(enable)
	{
		deu_clk_open(sel);
		DEU_EBIOS_Enable(sel, 1);

		//__inf("vir_addr:0x%08x, phy_addr:0x%08x\n", strtab_addr, (__u32)(OSAL_VAtoPA((void*)strtab_addr)));

		//virtual to physcal addr
		strtab_addr = (__u32)OSAL_VAtoPA((void*)strtab_addr);



		DEU_EBIOS_LP_Set_STR_Addr(sel, strtab_addr);
		DEU_EBIOS_LP_STR_Cfg_Rdy(sel);
		DEU_EBIOS_Set_Csc_Coeff(sel, gdeu[sel].frameinfo.csc_mode);
		DEU_EBIOS_Csc_Enable(sel, 1);
		g_deu_status[sel] |= DEU_USED;

	}
	else
	{
		DEU_EBIOS_Csc_Enable(sel, 0);
		DEU_EBIOS_Enable(sel, 0);

		g_deu_status[sel] |= DEU_NEED_CLOSED;

	}

    return DIS_SUCCESS;
}
示例#3
0
__s32 Scaler_open(__u32 scaler_index)
{
	DE_INF("scaler %d open\n", scaler_index);

	scaler_clk_on(scaler_index);
	deu_clk_open(scaler_index, 0);
	DE_SCAL_Reset(scaler_index);
	DE_SCAL_DisableINT(scaler_index,DE_WB_END_IE);
	DE_SCAL_Enable(scaler_index);

	return DIS_SUCCESS;
}