__s32 hdmi_main_task_loop(void) { static __u32 times = 0; HPD = main_Hpd_Check(); if( 0 == HPD ) { if((hdmi_state > HDMI_State_Wait_Hpd) || (hdmi_state == HDMI_State_Idle)) { __inf("plugout\n"); hdmi_state = HDMI_State_Idle; video_on = 0; audio_on = 0; Hdmi_hpd_event(); } if((times++) >= 10) { times = 0; __inf("unplug state !!\n"); } } switch(hdmi_state) { case HDMI_State_Idle: __inf("HDMI_State_Idle\n"); bsp_hdmi_hrst(); bsp_hdmi_standby(); hdmi_state = HDMI_State_Wait_Hpd; case HDMI_State_Wait_Hpd: __inf("HDMI_State_Wait_Hpd\n"); //bsp_hdmi_init(); if(HPD) { hdmi_state = HDMI_State_EDID_Parse; __inf("plugin\n"); } else { return 0; } msleep(200); case HDMI_State_Rx_Sense: case HDMI_State_EDID_Parse: __inf("HDMI_State_EDID_Parse\n"); ParseEDID(); hdmi_state = HDMI_State_HPD_Done; Hdmi_hpd_event(); if(video_enable) set_video_enable(true); case HDMI_State_HPD_Done: //__inf("HDMI_State_HPD_Done\n"); if(video_on && hdcp_enable) bsp_hdmi_hdl(); return 0; default: __wrn(" unkonwn hdmi state, set to idle\n"); hdmi_state = HDMI_State_Idle; return 0; } }
__s32 Hdmi_hal_video_enable(bool enable) { __inf("Hdmi_hal_video_enable = %x\n",enable); set_video_enable(enable); return 0; }