__s32 hdmi_core_initial(bool sw_only) { memset(&audio_info,0,sizeof(HDMI_AUDIO_INFO)); mutex_init(&hdmi_lock); api_set_func(hdmi_delay_us); hdmi_para_init(); if(sw_only) { video_enable = 1; hdmi_state = HDMI_State_HPD_Done; if(bsp_hdmi_get_hpd()) { ParseEDID(); video_on = 1; Hdmi_hpd_event(); } } else { bsp_hdmi_init(); } return 0; }
static __s32 main_Hpd_Check(void) { __s32 i,times; times = 0; for(i=0;i<3;i++) { if(hdmi_hpd_mask & 0x10) times += (hdmi_hpd_mask & 0x1);//for debug else if( bsp_hdmi_get_hpd()) { times++; } if((cts_enable==1) && (hdcp_enable==1)) hdmi_delay_ms(20); //200 else hdmi_delay_ms(200); //200 } if(times >= 3) return 1; else return 0; }