Beispiel #1
0
void EP956Controller_Initial(PEP956C_REGISTER_MAP pEP956C_RegMap, EP956C_CALLBACK IntCall)
{
	// Save the Logical Hardware Assignment
	pEP956C_Registers = pEP956C_RegMap;
	EP956C_GenerateInt = IntCall;

	// Reset all EP956C registers
	memset(pEP956C_Registers, 0, sizeof(EP956C_REGISTER_MAP));
	pEP956C_Registers->Video_Interface[0] = 0x80;
	pEP956C_Registers->Power_Control = EP956E_Power_Control__PD_HDMI;
	pEP956C_Registers->Audio_Interface = 0x10; // 2 Channel audio
	// Update Version Registers
	pEP956C_Registers->VendorID = 0x177A;
	pEP956C_Registers->DeviceID = 0x0956;
	pEP956C_Registers->Version_Major = EP956C_VERSION_MAJOR;
	pEP956C_Registers->Version_Minor = EP956C_VERSION_MINOR;
	// Initial HDCP Info
	memset(pEP956C_Registers->HDCP_AKSV, 0x00, sizeof(pEP956C_Registers->HDCP_AKSV));
	memset(pEP956C_Registers->HDCP_BKSV, 0x00, sizeof(pEP956C_Registers->HDCP_BKSV));

	// Set Revocation List address
	memcpy(pEP956C_Registers->Revocation_List, Revocation_List, sizeof(pEP956C_Registers->Revocation_List));
	HDCP_Assign_RKSV_List(pEP956C_Registers->Revocation_List, sizeof(pEP956C_Registers->Revocation_List));
	HDCP_Extract_BKSV(pEP956C_Registers->HDCP_BKSV);
	HDCP_Extract_BCAPS3(pEP956C_Registers->HDCP_BCAPS3);
	HDCP_Extract_FIFO((unsigned char*)pEP956C_Registers->HDCP_KSV_FIFO, sizeof(pEP956C_Registers->HDCP_KSV_FIFO));
	HDCP_Stop();

	// Reset EP956 Control Program
	EP956Controller_Reset();
}
Beispiel #2
0
void EP932Controller_Initial(PEP932C_REGISTER_MAP pEP932C_RegMap, EP932C_CALLBACK IntCall)
{
	// Save the Logical Hardware Assignment
	pEP932C_Registers = pEP932C_RegMap;
	EP932C_GenerateInt = IntCall;

	// EP932 Reset Control
	EP_EP932M_Reset();
	EP932_EnableHPInit();
	
	// Initial IIC	   
	EP932_If_Initial();

	// Reset Variables
	// bit
	is_Cap_HDMI = 0;
	is_Cap_YCC444 = is_Cap_YCC422 = 0;
	is_Connected = 0;
	is_VideoChanging = 0;
	is_AudioChanging = 0;
	// data
	TX_State = TXS_Search_EDID;
	HTP_TimeCount = 0;
	Process_Dispatch_ID = 0;
	VideoChg_TimeCount = 0;
	AudioChg_TimeCount = 0;
	ReadEDID_TimeCount = 0;
	HP_ChangeCount = 0;
	RSEN_ChangeCount = 0; 
	memset(Gamut_Packet_Header_Backup, 0, 3);

	// Reset all EP932C registers
	memset(pEP932C_Registers, 0, sizeof(EP932C_REGISTER_MAP));
	pEP932C_Registers->Video_Interface[0] = 0x80;
	pEP932C_Registers->Power_Control = EP932E_Power_Control__PD_HDMI;
	pEP932C_Registers->Audio_Interface = 0x10; // 2 Channel audio

	// Update Version Registers
	pEP932C_Registers->VendorID = 0x177A;
	pEP932C_Registers->DeviceID = 0x0932;
	pEP932C_Registers->Version_Major = VERSION_MAJOR;
	pEP932C_Registers->Version_Minor = VERSION_MINOR;
	DBG_printf(("Version %d.%d\r\n", (int)VERSION_MAJOR, (int)VERSION_MINOR ));
	// Initial HDCP Info
	memset(pEP932C_Registers->HDCP_AKSV, 0x00, sizeof(pEP932C_Registers->HDCP_AKSV));
	memset(pEP932C_Registers->HDCP_BKSV, 0x00, sizeof(pEP932C_Registers->HDCP_BKSV));
	
	// Update Configuration Registers
	EP932_Reg_Read(EP932_Configuration, DDC_Data, 1);
	pEP932C_Registers->Configuration = DDC_Data[0];

	// Set Revocation List address
	HDCP_Extract_BKSV_BCAPS3(pEP932C_Registers->HDCP_BKSV);
	HDCP_Extract_FIFO((unsigned char*)pEP932C_Registers->HDCP_KSV_FIFO, sizeof(pEP932C_Registers->HDCP_KSV_FIFO));
	HDCP_Stop();

	// Reset EP932 Control Program
	EP932Controller_Reset();
}