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

Commit e5e32a18 authored by Sandeep Panda's avatar Sandeep Panda
Browse files

msm: mdss: Don't allow any ioctls during dynamic switch



Don't allow any ioctls like DISPLAY_COMMIT, OVERLAY_SET,
OVERLAY_PLAY when dsi dynamic switch is underway, to avoid
any stability issues.

Change-Id: I66e68e399c1fb31e7b9dcd3a4840d4fe59a58914
Signed-off-by: default avatarSandeep Panda <spanda@codeaurora.org>
parent 83dd8ec0
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -474,11 +474,12 @@ static int mdss_fb_lpm_enable(struct msm_fb_data_type *mfd, int mode)
		pr_debug("Already in requested mode!\n");
		return 0;
	}
	pr_debug("Enter mode: %d\n", mode);

	pdata = dev_get_platdata(&mfd->pdev->dev);

	pr_debug("Enter mode: %d\n", mode);
	pdata->panel_info.dynamic_switch_pending = true;
	mdss_fb_pan_idle(mfd);

	mutex_lock(&mfd->bl_lock);
	bl_lvl = mfd->bl_level;
@@ -2956,6 +2957,7 @@ int mdss_fb_do_ioctl(struct fb_info *info, unsigned int cmd,
	struct mdp_buf_sync buf_sync;
	struct msm_sync_pt_data *sync_pt_data = NULL;
	unsigned int dsi_mode = 0;
	struct mdss_panel_data *pdata = NULL;

	if (!info || !info->par)
		return -EINVAL;
@@ -2967,6 +2969,10 @@ int mdss_fb_do_ioctl(struct fb_info *info, unsigned int cmd,
	if (mfd->shutdown_pending)
		return -EPERM;

	pdata = dev_get_platdata(&mfd->pdev->dev);
	if (!pdata || pdata->panel_info.dynamic_switch_pending)
		return -EPERM;

	atomic_inc(&mfd->ioctl_ref_cnt);

	mdss_fb_power_setting_idle(mfd);