Loading drivers/video/msm/mdss/mdss_mdp.h +0 −1 Original line number Diff line number Diff line Loading @@ -1213,7 +1213,6 @@ u32 mdss_mdp_get_mixercfg(struct mdss_mdp_mixer *mixer); u32 mdss_mdp_fb_stride(u32 fb_index, u32 xres, int bpp); void mdss_check_dsi_ctrl_status(struct work_struct *work, uint32_t interval); int mdss_mdp_limited_lut_igc_config(struct mdss_mdp_ctl *ctl); int mdss_mdp_calib_config(struct mdp_calib_config_data *cfg, u32 *copyback); int mdss_mdp_calib_config_buffer(struct mdp_calib_config_buffer *cfg, u32 *copyback); Loading drivers/video/msm/mdss/mdss_mdp_ctl.c +0 −3 Original line number Diff line number Diff line Loading @@ -2785,9 +2785,6 @@ struct mdss_mdp_ctl *mdss_mdp_ctl_init(struct mdss_panel_data *pdata, ctl->intf_type = MDSS_INTF_HDMI; ctl->opmode = MDSS_MDP_CTL_OP_VIDEO_MODE; ctl->ops.start_fnc = mdss_mdp_video_start; ret = mdss_mdp_limited_lut_igc_config(ctl); if (ret) pr_err("Unable to config IGC LUT data\n"); break; case WRITEBACK_PANEL: ctl->intf_num = MDSS_MDP_NO_INTF; Loading drivers/video/msm/mdss/mdss_mdp_pp.c +40 −10 Original line number Diff line number Diff line Loading @@ -345,6 +345,7 @@ static void mdss_mdp_hist_irq_clear_mask(u32 irq); static void mdss_mdp_hist_intr_notify(u32 disp); static int mdss_mdp_panel_default_dither_config(struct msm_fb_data_type *mfd, u32 panel_bpp); static int mdss_mdp_limited_lut_igc_config(struct msm_fb_data_type *mfd); static u32 last_sts, last_state; Loading Loading @@ -2374,8 +2375,15 @@ int mdss_mdp_pp_default_overlay_config(struct msm_fb_data_type *mfd, ret = mdss_mdp_panel_default_dither_config(mfd, pdata->panel_info.bpp); if (ret) pr_err("Unable to configure default dither on fb%d\n", mfd->index); pr_err("Unable to configure default dither on fb%d ret %d\n", mfd->index, ret); if (pdata->panel_info.type == DTV_PANEL) { ret = mdss_mdp_limited_lut_igc_config(mfd); if (ret) pr_err("Unable to configure DTV panel default IGC ret %d\n", ret); } return ret; } Loading Loading @@ -3017,27 +3025,49 @@ static void pp_update_igc_lut(struct mdp_igc_lut_data *cfg, writel_relaxed((cfg->c2_data[i] & 0xFFF) | data, addr); } int mdss_mdp_limited_lut_igc_config(struct mdss_mdp_ctl *ctl) static int mdss_mdp_limited_lut_igc_config(struct msm_fb_data_type *mfd) { int ret = 0; u32 copyback = 0; u32 copy_from_kernel = 1; struct mdp_igc_lut_data config; struct mdp_pp_feature_version igc_version = { .pp_feature = IGC, }; struct mdp_igc_lut_data_v1_7 igc_data; if (!ctl) if (!mfd) return -EINVAL; if (!mdss_mdp_mfd_valid_dspp(ctl->mfd)) { if (!mdss_mdp_mfd_valid_dspp(mfd)) { pr_warn("IGC not supported on display num %d hw configuration\n", ctl->mfd->index); mfd->index); return 0; } config.len = IGC_LUT_ENTRIES; ret = mdss_mdp_pp_get_version(&igc_version); if (ret) pr_err("failed to get default IGC version, ret %d\n", ret); config.version = igc_version.version_info; config.ops = MDP_PP_OPS_WRITE | MDP_PP_OPS_ENABLE; config.block = (ctl->mfd->index) + MDP_LOGICAL_BLOCK_DISP_0; config.block = (mfd->index) + MDP_LOGICAL_BLOCK_DISP_0; switch (config.version) { case mdp_igc_v1_7: config.cfg_payload = &igc_data; igc_data.table_fmt = mdp_igc_custom; igc_data.len = IGC_LUT_ENTRIES; igc_data.c0_c1_data = igc_limited; igc_data.c2_data = igc_limited; break; case mdp_pp_legacy: default: config.cfg_payload = NULL; config.len = IGC_LUT_ENTRIES; config.c0_c1_data = igc_limited; config.c2_data = igc_limited; break; } ret = mdss_mdp_igc_lut_config(&config, ©back, copy_from_kernel); Loading Loading
drivers/video/msm/mdss/mdss_mdp.h +0 −1 Original line number Diff line number Diff line Loading @@ -1213,7 +1213,6 @@ u32 mdss_mdp_get_mixercfg(struct mdss_mdp_mixer *mixer); u32 mdss_mdp_fb_stride(u32 fb_index, u32 xres, int bpp); void mdss_check_dsi_ctrl_status(struct work_struct *work, uint32_t interval); int mdss_mdp_limited_lut_igc_config(struct mdss_mdp_ctl *ctl); int mdss_mdp_calib_config(struct mdp_calib_config_data *cfg, u32 *copyback); int mdss_mdp_calib_config_buffer(struct mdp_calib_config_buffer *cfg, u32 *copyback); Loading
drivers/video/msm/mdss/mdss_mdp_ctl.c +0 −3 Original line number Diff line number Diff line Loading @@ -2785,9 +2785,6 @@ struct mdss_mdp_ctl *mdss_mdp_ctl_init(struct mdss_panel_data *pdata, ctl->intf_type = MDSS_INTF_HDMI; ctl->opmode = MDSS_MDP_CTL_OP_VIDEO_MODE; ctl->ops.start_fnc = mdss_mdp_video_start; ret = mdss_mdp_limited_lut_igc_config(ctl); if (ret) pr_err("Unable to config IGC LUT data\n"); break; case WRITEBACK_PANEL: ctl->intf_num = MDSS_MDP_NO_INTF; Loading
drivers/video/msm/mdss/mdss_mdp_pp.c +40 −10 Original line number Diff line number Diff line Loading @@ -345,6 +345,7 @@ static void mdss_mdp_hist_irq_clear_mask(u32 irq); static void mdss_mdp_hist_intr_notify(u32 disp); static int mdss_mdp_panel_default_dither_config(struct msm_fb_data_type *mfd, u32 panel_bpp); static int mdss_mdp_limited_lut_igc_config(struct msm_fb_data_type *mfd); static u32 last_sts, last_state; Loading Loading @@ -2374,8 +2375,15 @@ int mdss_mdp_pp_default_overlay_config(struct msm_fb_data_type *mfd, ret = mdss_mdp_panel_default_dither_config(mfd, pdata->panel_info.bpp); if (ret) pr_err("Unable to configure default dither on fb%d\n", mfd->index); pr_err("Unable to configure default dither on fb%d ret %d\n", mfd->index, ret); if (pdata->panel_info.type == DTV_PANEL) { ret = mdss_mdp_limited_lut_igc_config(mfd); if (ret) pr_err("Unable to configure DTV panel default IGC ret %d\n", ret); } return ret; } Loading Loading @@ -3017,27 +3025,49 @@ static void pp_update_igc_lut(struct mdp_igc_lut_data *cfg, writel_relaxed((cfg->c2_data[i] & 0xFFF) | data, addr); } int mdss_mdp_limited_lut_igc_config(struct mdss_mdp_ctl *ctl) static int mdss_mdp_limited_lut_igc_config(struct msm_fb_data_type *mfd) { int ret = 0; u32 copyback = 0; u32 copy_from_kernel = 1; struct mdp_igc_lut_data config; struct mdp_pp_feature_version igc_version = { .pp_feature = IGC, }; struct mdp_igc_lut_data_v1_7 igc_data; if (!ctl) if (!mfd) return -EINVAL; if (!mdss_mdp_mfd_valid_dspp(ctl->mfd)) { if (!mdss_mdp_mfd_valid_dspp(mfd)) { pr_warn("IGC not supported on display num %d hw configuration\n", ctl->mfd->index); mfd->index); return 0; } config.len = IGC_LUT_ENTRIES; ret = mdss_mdp_pp_get_version(&igc_version); if (ret) pr_err("failed to get default IGC version, ret %d\n", ret); config.version = igc_version.version_info; config.ops = MDP_PP_OPS_WRITE | MDP_PP_OPS_ENABLE; config.block = (ctl->mfd->index) + MDP_LOGICAL_BLOCK_DISP_0; config.block = (mfd->index) + MDP_LOGICAL_BLOCK_DISP_0; switch (config.version) { case mdp_igc_v1_7: config.cfg_payload = &igc_data; igc_data.table_fmt = mdp_igc_custom; igc_data.len = IGC_LUT_ENTRIES; igc_data.c0_c1_data = igc_limited; igc_data.c2_data = igc_limited; break; case mdp_pp_legacy: default: config.cfg_payload = NULL; config.len = IGC_LUT_ENTRIES; config.c0_c1_data = igc_limited; config.c2_data = igc_limited; break; } ret = mdss_mdp_igc_lut_config(&config, ©back, copy_from_kernel); Loading