Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 83f39ea2 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: mdss: Reset AD event notification count"

parents afa70a95 bd1f86d1
Loading
Loading
Loading
Loading
+10 −8
Original line number Diff line number Diff line
@@ -5426,6 +5426,7 @@ static int mdss_mdp_ad_setup(struct msm_fb_data_type *mfd)
	struct mdss_data_type *mdata;
	u32 bypass = MDSS_PP_AD_BYPASS_DEF, bl;
	u32 width;
	struct mdss_overlay_private *mdp5_data;

	ret = mdss_mdp_get_ad(mfd, &ad);
	if (ret == -ENODEV || ret == -EPERM) {
@@ -5473,13 +5474,16 @@ static int mdss_mdp_ad_setup(struct msm_fb_data_type *mfd)
		if ((ad->cfg.mode == MDSS_AD_MODE_AUTO_STR) &&
							(ad->last_bl != bl)) {
			ad->last_bl = bl;
			ad->calc_itr = ad->cfg.stab_itr;
			ad->sts |= PP_AD_STS_DIRTY_VSYNC;
			linear_map(bl, &ad->bl_data,
				bl_mfd->panel_info->bl_max,
				MDSS_MDP_AD_BL_SCALE);
		}
		ad->calc_itr = ad->cfg.stab_itr;
		ad->sts |= PP_AD_STS_DIRTY_VSYNC;
		ad->reg_sts |= PP_AD_STS_DIRTY_DATA;
		mdp5_data = mfd_to_mdp5_data(mfd);
		if (mdp5_data)
			mdp5_data->ad_events = 0;
	}

	if (ad->sts & PP_AD_STS_DIRTY_CFG) {
@@ -5627,15 +5631,13 @@ static void pp_ad_calc_worker(struct work_struct *work)
			readl_relaxed(base + MDSS_MDP_REG_AD_STR_OUT));
		mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_OFF);
	}

	if (!ad->calc_itr) {
		ad->state &= ~PP_AD_STATE_VSYNC;
		ctl->ops.remove_vsync_handler(ctl, &ad->handle);
	} else {
	if (mdp5_data) {
		mdp5_data->ad_events++;
		sysfs_notify_dirent(mdp5_data->ad_event_sd);
	}
	if (!ad->calc_itr) {
		ad->state &= ~PP_AD_STATE_VSYNC;
		ctl->ops.remove_vsync_handler(ctl, &ad->handle);
	}
	mutex_unlock(&ad->lock);
}