void disp_ext_util_set_kcjprop( struct fb_kcjprop_data* kcjprop_data ) { DISP_LOCAL_LOG_EMERG("DISP disp_ext_util_set_kcjprop S\n"); disp_ext_util_disp_local_lock(); if( kcjprop_data->rw_display_gamma_normal_valid == 0) { disp_gamma_exttbl_set(kcjprop_data); DISP_LOCAL_LOG_EMERG("%s:gamma ext set\n", __func__); } #ifdef DISP_EXT_UTIL_PROPERTY_CABC if( kcjprop_data->rw_display_cabc_valid == 0) { if(kcjprop_data->rw_display_cabc > 3) { disp_ext_blc_set_select_mode(0); } else { disp_ext_blc_set_select_mode(kcjprop_data->rw_display_cabc); } DISP_LOCAL_LOG_EMERG("%s:select_mode=%d\n", __func__,disp_ext_blc_get_select_mode()); } #endif /* DISP_EXT_UTIL_PROPERTY_CABC */ #ifdef CONFIG_DISP_EXT_REFRESH if( kcjprop_data->rw_display_reflesh_valid == 0) { if(kcjprop_data->rw_display_reflesh != 0) { disp_ext_reflesh_set_enable(0); disp_ext_reflesh_set_start(0); DISP_LOCAL_LOG_EMERG("%s:display_reflesh_enable=%d\n", __func__,disp_ext_reflesh_get_enable()); } else { disp_ext_reflesh_start(); } } #endif /* CONFIG_DISP_EXT_REFRESH */ disp_ext_util_disp_local_unlock(); DISP_LOCAL_LOG_EMERG("DISP disp_ext_util_set_kcjprop E\n"); }
void disp_ext_reflesh_start(void) { #ifdef CONFIG_DISP_EXT_BOARD DISP_LOCAL_LOG_EMERG("DISP disp_ext_reflesh_start1\n"); queue_work(disp_ext_reflesh_wq, &disp_ext_reflesh_work); #else /* CONFIG_DISP_EXT_BOARD */ DISP_LOCAL_LOG_EMERG("DISP disp_ext_reflesh_start2\n"); disp_ext_reflesh_set_enable(1); disp_ext_reflesh_set_start(1); mdp_hw_vsync_irq_reg(); disp_ext_refresh_te_monitor_timer_release(); disp_ext_reflesh_before_te_run_count_init(); disp_ext_refresh_te_monitor_timer_set(); #endif /* CONFIG_DISP_EXT_BOARD */ }
void disp_ext_util_set_kcjprop(struct mdss_panel_data *pdata, struct fb_kcjprop_data* kcjprop_data) { struct mdss_dsi_ctrl_pdata *ctrl = NULL; DISP_LOCAL_LOG_EMERG("DISP disp_ext_util_set_kcjprop S\n"); disp_ext_util_disp_local_lock(); ctrl = container_of(pdata, struct mdss_dsi_ctrl_pdata, panel_data); if (kcjprop_data->rw_display_cabc_valid == 0) { update_dsi_cmd(&ctrl->on2_cmds, 0x55, &kcjprop_data->rw_display_cabc, 1); DISP_LOCAL_LOG_EMERG("%s:cabc ext set\n", __func__); } if (kcjprop_data->rw_display_gamma_valid == 0) { update_dsi_cmd(&ctrl->on2_cmds, 0xc7, kcjprop_data->rw_display_gamma_r, MSMFB_GAMMA_KCJPROP_DATA_NUM); update_dsi_cmd(&ctrl->on2_cmds, 0xc8, kcjprop_data->rw_display_gamma_g, MSMFB_GAMMA_KCJPROP_DATA_NUM); update_dsi_cmd(&ctrl->on2_cmds, 0xc9, kcjprop_data->rw_display_gamma_b, MSMFB_GAMMA_KCJPROP_DATA_NUM); DISP_LOCAL_LOG_EMERG("%s:gamma ext set\n", __func__); } #ifdef CONFIG_DISP_EXT_REFRESH if( kcjprop_data->rw_display_reflesh_valid == 0) { if(kcjprop_data->rw_display_reflesh != 0) { disp_ext_reflesh_set_enable(0); disp_ext_reflesh_set_start(0); DISP_LOCAL_LOG_EMERG("%s:display_reflesh_enable=%d\n", __func__,disp_ext_reflesh_get_enable()); } else { disp_ext_reflesh_start(); } } #endif disp_ext_util_disp_local_unlock(); DISP_LOCAL_LOG_EMERG("DISP disp_ext_util_set_kcjprop E\n"); }
static void disp_ext_reflesh_start_regist(struct work_struct *work) { int panel_detect; int i; DISP_LOCAL_LOG_EMERG("DISP disp_ext_reflesh_start_regist\n"); for( i=0; i<DISP_EXT_REFRESH_REGIST_TIME; i++ ) { msleep(50); disp_ext_util_disp_local_lock(); panel_detect = disp_ext_board_get_panel_detect(); switch( panel_detect ) { case 0: DISP_LOCAL_LOG_EMERG("DISP disp_ext_reflesh_start_regist check next\n"); break; case 1: #ifdef CONFIG_FB_MSM_MIPI_DSI_RENESAS_CM case 2: #endif DISP_LOCAL_LOG_EMERG("DISP disp_ext_reflesh_start_regist resist\n"); disp_ext_reflesh_set_enable(1); disp_ext_reflesh_set_start(1); mdp_hw_vsync_irq_reg(); disp_ext_refresh_te_monitor_timer_release(); disp_ext_reflesh_before_te_run_count_init(); disp_ext_refresh_te_monitor_timer_set(); disp_ext_util_disp_local_unlock(); return; default: /* -1,etc... */ DISP_LOCAL_LOG_EMERG("DISP disp_ext_reflesh_start_regist panel not found\n"); disp_ext_util_disp_local_unlock(); return; } disp_ext_util_disp_local_unlock(); } }