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

Commit 9cbd8036 authored by Sandeep Panda's avatar Sandeep Panda Committed by Matt Wagantall
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 1792fab8
Loading
Loading
Loading
Loading
+7 −1
Original line number Original line Diff line number Diff line
@@ -511,11 +511,12 @@ static int mdss_fb_lpm_enable(struct msm_fb_data_type *mfd, int mode)
		pr_debug("Already in requested mode!\n");
		pr_debug("Already in requested mode!\n");
		return 0;
		return 0;
	}
	}
	pr_debug("Enter mode: %d\n", mode);


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


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


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


	if (!info || !info->par)
	if (!info || !info->par)
		return -EINVAL;
		return -EINVAL;
@@ -3153,6 +3155,10 @@ int mdss_fb_do_ioctl(struct fb_info *info, unsigned int cmd,
	if (mfd->shutdown_pending)
	if (mfd->shutdown_pending)
		return -EPERM;
		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);
	atomic_inc(&mfd->ioctl_ref_cnt);


	mdss_fb_power_setting_idle(mfd);
	mdss_fb_power_setting_idle(mfd);