コード例 #1
0
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");
}
コード例 #2
0
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");
}
コード例 #3
0
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();
    }
}
コード例 #4
0
int disp_ext_blc_mode_select( uint8_t mode )
{
	struct msm_fb_data_type *mfd;

    DISP_LOCAL_LOG_EMERG("DISP mipi_novatek_wxga_cabc_mode_select mode=%d S\n",mode);
#ifdef CONFIG_DISP_EXT_UTIL
	disp_ext_util_mipitx_lock();
	disp_ext_util_disp_local_lock();
#endif /* CONFIG_DISP_EXT_UTIL */
	if( disp_ext_util_get_disp_state() != LOCAL_DISPLAY_ON ) {
#ifdef CONFIG_DISP_EXT_UTIL
		disp_ext_util_disp_local_unlock();
		disp_ext_util_mipitx_unlock();
#endif /* CONFIG_DISP_EXT_UTIL */
		pr_err("%s:panel off\n", __func__);
		return -1;
	}

	if( mode > 0x01 ) {
#ifdef CONFIG_DISP_EXT_UTIL
		disp_ext_util_disp_local_unlock();
		disp_ext_util_mipitx_unlock();
#endif /* CONFIG_DISP_EXT_UTIL */
		pr_err("%s:parameter err\n", __func__);
		return -1;
	}

	if( select_mode_ctrl == mode ) {
#ifdef CONFIG_DISP_EXT_UTIL
		disp_ext_util_disp_local_unlock();
		disp_ext_util_mipitx_unlock();
#endif /* CONFIG_DISP_EXT_UTIL */
		DISP_LOCAL_LOG_EMERG("%s:Request a double. state=%d,req=%d\n",__func__,select_mode_ctrl,mode);
		return 0;
	}

#ifndef CONFIG_FB_MSM_MIPI_DSI_RENESAS_CM
	mfd = mipi_novatek_wxga_get_mfd();
#else
	mfd = mipi_renesas_cm_get_mfd();
#endif
	if( mfd == NULL ) {
#ifdef CONFIG_DISP_EXT_UTIL
		disp_ext_util_disp_local_unlock();
		disp_ext_util_mipitx_unlock();
#endif /* CONFIG_DISP_EXT_UTIL */
		pr_err("%s:mfd == NULL\n", __func__);
		return -1;
	}

	select_mode_ctrl=mode;

	msm_fb_pan_lock();
	msm_fb_ioctl_ppp_lock();
	msm_fb_ioctl_lut_lock();
#ifndef CONFIG_FB_MSM_MIPI_DSI_RENESAS_CM
	mdp4_dsi_cmd_dma_busy_wait(mfd);
	mdp4_dsi_blt_dmap_busy_wait(mfd);
	mipi_dsi_mdp_busy_wait(mfd);
#else
	mdp4_dsi_cmd_busy();
	mipi_dsi_mdp_busy_wait();
#endif
	if( mode == 0 ) {
#ifndef CONFIG_FB_MSM_MIPI_DSI_RENESAS_CM
		cabc_change[1] = 0;
#else
		cabc_mode_select_cmds = renesas_cm_blc_off_cmds;
		cabc_mode_select_cmds_size = ARRAY_SIZE(renesas_cm_blc_off_cmds);
#endif
	}
	else {
#ifndef CONFIG_FB_MSM_MIPI_DSI_RENESAS_CM
		cabc_change[1] = select_mode;
#else
		cabc_mode_select_cmds = renesas_cm_blc_on_cmds;
		cabc_mode_select_cmds_size = ARRAY_SIZE(renesas_cm_blc_on_cmds);
#endif
	}
#ifndef CONFIG_FB_MSM_MIPI_DSI_RENESAS_CM
	pr_debug("%s:cabc_change[%d,%d]\n", __func__,cabc_change[0],cabc_change[1]);
	DISP_LOCAL_LOG_EMERG("%s:cabc_change[%d,%d]\n", __func__,cabc_change[0],cabc_change[1]);
#endif
#ifndef CONFIG_FB_MSM_MIPI_DSI_RENESAS_CM
	mipi_dsi_cmds_tx(mfd, &disp_ext_blc_tx_buf,
					cabc_mode_select_cmds,
					ARRAY_SIZE(cabc_mode_select_cmds));
#else
	mipi_set_tx_power_mode(0);
	mipi_dsi_clk_cfg(1);
	mipi_dsi_cmds_tx(&disp_ext_blc_tx_buf,
					cabc_mode_select_cmds,
					cabc_mode_select_cmds_size);
	mipi_dsi_clk_cfg(0);
#endif
	udelay(1);

	msm_fb_ioctl_lut_unlock();
	msm_fb_ioctl_ppp_unlock();
	msm_fb_pan_unlock();
#ifdef CONFIG_DISP_EXT_UTIL
	disp_ext_util_disp_local_unlock();
	disp_ext_util_mipitx_unlock();
#endif /* CONFIG_DISP_EXT_UTIL */
	pr_debug("%s:cabc select\n", __func__);
    DISP_LOCAL_LOG_EMERG("DISP mipi_novatek_wxga_cabc_mode_select E\n");
	return 0;
}
コード例 #5
0
int disp_ext_blc_mode_select( uint8_t mode )
{
#ifdef DISP_BLC_CTRL_ENABLE
	struct msm_fb_data_type *mfd;

    DISP_LOCAL_LOG_EMERG("DISP mipi_novatek_wxga_cabc_mode_select mode=%d S\n",mode);
#ifdef CONFIG_DISP_EXT_UTIL
	disp_ext_util_mipitx_lock();
	disp_ext_util_disp_local_lock();
#endif /* CONFIG_DISP_EXT_UTIL */
	if( disp_ext_util_get_disp_state() != LOCAL_DISPLAY_ON ) {
#ifdef CONFIG_DISP_EXT_UTIL
		disp_ext_util_disp_local_unlock();
		disp_ext_util_mipitx_unlock();
#endif /* CONFIG_DISP_EXT_UTIL */
		pr_err("%s:panel off\n", __func__);
		return -1;
	}

	if( mode > 0x01 ) {
#ifdef CONFIG_DISP_EXT_UTIL
		disp_ext_util_disp_local_unlock();
		disp_ext_util_mipitx_unlock();
#endif /* CONFIG_DISP_EXT_UTIL */
		pr_err("%s:parameter err\n", __func__);
		return -1;
	}

	if( select_mode_ctrl == mode ) {
#ifdef CONFIG_DISP_EXT_UTIL
		disp_ext_util_disp_local_unlock();
		disp_ext_util_mipitx_unlock();
#endif /* CONFIG_DISP_EXT_UTIL */
		DISP_LOCAL_LOG_EMERG("%s:Request a double. state=%d,req=%d\n",__func__,select_mode_ctrl,mode);
		return 0;
	}

	mfd = mipi_novatek_wxga_get_mfd();
	if( mfd == NULL ) {
#ifdef CONFIG_DISP_EXT_UTIL
		disp_ext_util_disp_local_unlock();
		disp_ext_util_mipitx_unlock();
#endif /* CONFIG_DISP_EXT_UTIL */
		pr_err("%s:mfd == NULL\n", __func__);
		return -1;
	}

	select_mode_ctrl=mode;

	msm_fb_pan_lock();
	msm_fb_ioctl_ppp_lock();
	msm_fb_ioctl_lut_lock();
	mipi_dsi_mdp_busy_wait();
	if( mode == 0 ) {
		cabc_change[1] = 0;
	}
	else {
		cabc_change[1] = select_mode;
	}
	pr_debug("%s:cabc_change[%d,%d]\n", __func__,cabc_change[0],cabc_change[1]);
	DISP_LOCAL_LOG_EMERG("%s:cabc_change[%d,%d]\n", __func__,cabc_change[0],cabc_change[1]);
	mipi_dsi_clk_cfg(1);
	mipi_dsi_cmds_tx( &disp_ext_blc_tx_buf,
					cabc_mode_select_cmds,
					ARRAY_SIZE(cabc_mode_select_cmds));
	mipi_dsi_clk_cfg(0);
	udelay(1);

	msm_fb_ioctl_lut_unlock();
	msm_fb_ioctl_ppp_unlock();
	msm_fb_pan_unlock();
#ifdef CONFIG_DISP_EXT_UTIL
	disp_ext_util_disp_local_unlock();
	disp_ext_util_mipitx_unlock();
#endif /* CONFIG_DISP_EXT_UTIL */
	pr_debug("%s:cabc select\n", __func__);
    DISP_LOCAL_LOG_EMERG("DISP mipi_novatek_wxga_cabc_mode_select E\n");
#endif /*DISP_BLC_CTRL_ENABLE*/
	return 0;
}