#include "rk616_hdmi_hw.h"
static char edid_result = 0;
-static bool analog_sync = 0;
static int rk616_hdmi_init_pol_set(struct mfd_rk616 * rk616,int pol)
hdmi_dbg(hdmi->dev,"%s change pwr_mode %d --> %d\n",__FUNCTION__,hdmi->pwr_mode,mode);
switch(mode){
case NORMAL:
- hdmi_dbg(hdmi->dev,"%s change pwr_mode NORMAL\n",__FUNCTION__,hdmi->pwr_mode,mode);
+ hdmi_dbg(hdmi->dev,"%s change pwr_mode NORMAL\n",__FUNCTION__,hdmi->pwr_mode,mode);
rk616_hdmi_sys_power_down();
HDMIWrReg(PHY_DRIVER,0xaa);
HDMIWrReg(PHY_PRE_EMPHASIS,0x0f);
HDMIWrReg(0xce, 0x01);
rk616_hdmi_av_mute(1);
rk616_hdmi_sys_power_up();
- analog_sync = 1;
break;
case LOWER_PWR:
hdmi_dbg(hdmi->dev,"%s change pwr_mode LOWER_PWR\n",__FUNCTION__,hdmi->pwr_mode,mode);
HDMIRdReg(AV_MUTE,&mutestatus);
if(mutestatus && (m_AUDIO_MUTE | m_VIDEO_BLACK)) {
HDMIWrReg(AV_MUTE, v_AUDIO_MUTE(0) | v_VIDEO_MUTE(0));
- rk616_hdmi_sys_power_up();
- rk616_hdmi_sys_power_down();
- rk616_hdmi_sys_power_up();
- if(analog_sync){
- HDMIWrReg(0xce, 0x00);
- delay100us();
- HDMIWrReg(0xce, 0x01);
- analog_sync = 0;
- }
}
+ rk616_hdmi_sys_power_up();
+ rk616_hdmi_sys_power_down();
+ rk616_hdmi_sys_power_up();
+ HDMIWrReg(0xce, 0x00);
+ delay100us();
+ HDMIWrReg(0xce, 0x01);
}
else {
HDMIWrReg(AV_MUTE, v_AUDIO_MUTE(1) | v_VIDEO_MUTE(1));
hdmi->config_audio = rk616_hdmi_config_audio;
hdmi->detect_hotplug = rk616_hdmi_detect_hotplug;
hdmi->read_edid = rk616_hdmi_read_edid;
+ hdmi->set_vif = rk616_set_vif;
rk616_hdmi_reset();
memset(&hdmi->edid, 0, sizeof(struct hdmi_edid));
INIT_LIST_HEAD(&hdmi->edid.modelist);
hdmi->display = HDMI_DISABLE;
+ if(hdmi->set_vif)
+ hdmi->set_vif(hdmi->lcdc->screen1,0);
rk_fb_switch_screen(hdmi->lcdc->screen1, 0, hdmi->lcdc->id);
kobject_uevent_env(&hdmi->dev->kobj, KOBJ_REMOVE, envp);
#ifdef CONFIG_SWITCH