void set_vout_mode_fr_auto(char* name) { vmode_t vmode; amlog_mask_level(LOG_MASK_PARA,LOG_LEVEL_HIGH,"tvmode set to %s\n",name); vmode=validate_vmode(name); if(VMODE_MAX==vmode) { amlog_mask_level(LOG_MASK_PARA,LOG_LEVEL_HIGH,"no matched vout mode\n"); return ; } if(vmode==get_current_vmode()) { amlog_mask_level(LOG_MASK_PARA,LOG_LEVEL_HIGH,"don't set the same mode as current.\n"); return ; } update_vmode_status(name); set_current_vmode(vmode); amlog_mask_level(LOG_MASK_PARA,LOG_LEVEL_HIGH,"new mode %s set ok\n",name); vout_notifier_call_chain(VOUT_EVENT_MODE_CHANGE,&vmode) ; printk("%s[%d]\n", __func__, __LINE__); }
static void set_vout_mode(char * name) { #ifdef CONFIG_AML_HDMI_TX extern void hdmi_pre_set_change_mode(void); #endif vmode_t mode; amlog_mask_level(LOG_MASK_PARA,LOG_LEVEL_HIGH,"tvmode set to %s\r\n",name); mode=validate_vmode(name); if(VMODE_MAX==mode) { amlog_mask_level(LOG_MASK_PARA,LOG_LEVEL_HIGH,"no matched vout mode\n"); return ; } if(mode==get_current_vmode()) { amlog_mask_level(LOG_MASK_PARA,LOG_LEVEL_HIGH,"don't set the same mode as current.\r\n"); return ; } #ifdef CONFIG_AML_HDMI_TX if(mode < VMODE_LCD) hdmi_pre_set_change_mode(); #endif set_current_vmode(mode); amlog_mask_level(LOG_MASK_PARA,LOG_LEVEL_HIGH,"new mode %s set ok\r\n",name); vout_notifier_call_chain(VOUT_EVENT_MODE_CHANGE,&mode) ; printk("%s[%d]\n", __func__, __LINE__); }
static void set_vout_mode(char * name) { vmode_t mode; amlog_mask_level(LOG_MASK_PARA,LOG_LEVEL_HIGH,"tvmode set to %s\n",name); mode=validate_vmode(name); if(VMODE_MAX==mode) { amlog_mask_level(LOG_MASK_PARA,LOG_LEVEL_HIGH,"no matched vout mode\n"); return ; } #ifdef CONFIG_AML_VOUT_FRAMERATE_AUTOMATION mode_by_user = mode; #endif if(mode==get_current_vmode()) { amlog_mask_level(LOG_MASK_PARA,LOG_LEVEL_HIGH,"don't set the same mode as current.\n"); return ; } #ifdef CONFIG_AML_VOUT_FRAMERATE_AUTOMATION //if plug hdmi during fps (stream is playing), then adjust mode to fps vmode fps_auto_adjust_mode(&mode); printk("%s[%d]fps_target_mode=%d\n",__func__,__LINE__,mode); update_vmode_status(get_name_from_vmode(mode)); #endif set_current_vmode(mode); #ifdef CONFIG_AML_VOUT_FRAMERATE_AUTOMATION amlog_mask_level(LOG_MASK_PARA,LOG_LEVEL_HIGH,"new mode =%s set ok\n",get_name_from_vmode(mode)); #endif vout_notifier_call_chain(VOUT_EVENT_MODE_CHANGE,&mode) ; printk("%s[%d]\n", __func__, __LINE__); }
static void set_vout_mode(char * name) { vmode_t mode; amlog_mask_level(LOG_MASK_PARA,LOG_LEVEL_LOW,"tvmode set to %s\r\n",name); mode=validate_vmode(name); if(VMODE_MAX==mode) { amlog_mask_level(LOG_MASK_PARA,LOG_LEVEL_HIGH,"no matched vout mode\n"); return ; } if(mode==get_current_vmode()) { amlog_mask_level(LOG_MASK_PARA,LOG_LEVEL_HIGH,"don't set the same mode as current.\r\n"); return ; } set_current_vmode(mode); amlog_mask_level(LOG_MASK_PARA,LOG_LEVEL_LOW,"new mode %s set ok\r\n",name); vout_notifier_call_chain(VOUT_EVENT_MODE_CHANGE,&mode) ; }
/*************************************************** ** ** The first digit control component Y output DAC number ** The 2nd digit control component U output DAC number ** The 3rd digit control component V output DAC number ** The 4th digit control composite CVBS output DAC number ** The 5th digit control s-video Luma output DAC number ** The 6th digit control s-video chroma output DAC number ** examble : ** echo 120120 > /sys/class/display/vdac_setting ** the first digit from the left side . ******************************************************/ static void parse_vdac_setting(char *para) { int i; char *pt=strstrip(para); int len=strlen(pt); u32 vdac_sequence=get_current_vdac_setting(); amlog_mask_level(LOG_MASK_PARA,LOG_LEVEL_LOW,"origin vdac setting:0x%x,strlen:%d\n",vdac_sequence,len); if(len!=6) { amlog_mask_level(LOG_MASK_PARA,LOG_LEVEL_HIGH,"can't parse vdac settings\n"); return ; } vdac_sequence=0; for(i=0;i<6;i++) { vdac_sequence<<=4; vdac_sequence|=*pt -'0'; pt++; } amlog_mask_level(LOG_MASK_PARA,LOG_LEVEL_LOW,"current vdac setting:0x%x\n",vdac_sequence); change_vdac_setting(vdac_sequence,get_current_vmode()); }