static int rk610_hdmi_init(struct hdmi *hdmi) { struct rk610_hdmi_inf *rk610_hdmi = hdmi_priv(hdmi); #ifdef CONFIG_HDMI_SAVE_DATA int hdmi_data = hdmi_get_data(); if(hdmi_data<0){ hdmi_set_data((hdmi->resolution&0x7)|((hdmi->scale&0x1f)<<3)); } else{ hdmi->resolution = hdmi_data&0x7; hdmi->scale_set= ((hdmi_data>>3)&0x1f) + MIN_SCALE; hdmi->scale = hdmi->scale_set; } #endif RK610_DBG(&rk610_hdmi->client->dev,"%s \n",__FUNCTION__); rk610_hdmi->init =0; Rk610_hdmi_init(rk610_hdmi->client); hdmi_changed(hdmi,1); Rk610_hdmi_Set_Video(hdmi->resolution); Rk610_hdmi_Set_Audio(hdmi->audio_fs); Rk610_hdmi_Config_Done(rk610_hdmi->client); return 0; }