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(); }
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(); }