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

Commit 0e48d332 authored by Dhaval Patel's avatar Dhaval Patel
Browse files

msm: mdss: skip software underrun recovery for split display



Commit cb78c355b9225b815302c721b8f410168cba4a84 ("msm:
mdss: Issue ctl sw reset when underrun happens") enables the
software underrun recovery for split display cases due to
hardware limitation. This limitation is not applicable to
8994, 8996 and all upcoming targets. This change skips the
recovery path when hardware supports it.

Change-Id: I09e17bb50749ea5a0ec32ed604adab7126434e59
Signed-off-by: default avatarDhaval Patel <pdhaval@codeaurora.org>
parent c025b09c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -158,6 +158,7 @@ enum mdss_hw_quirk {
enum mdss_hw_capabilities {
	MDSS_CAPS_YUV_CONFIG,
	MDSS_CAPS_SCM_RESTORE_NOT_REQUIRED,
	MDSS_CAPS_3D_MUX_UNDERRUN_RECOVERY_SUPPORTED,
	MDSS_CAPS_MAX,
};

+4 −0
Original line number Diff line number Diff line
@@ -1200,6 +1200,8 @@ static void mdss_mdp_hw_rev_caps_init(struct mdss_data_type *mdata)
		set_bit(MDSS_CAPS_YUV_CONFIG, mdata->mdss_caps_map);
		set_bit(MDSS_CAPS_SCM_RESTORE_NOT_REQUIRED,
			mdata->mdss_caps_map);
		set_bit(MDSS_CAPS_3D_MUX_UNDERRUN_RECOVERY_SUPPORTED,
			mdata->mdss_caps_map);
		mdss_mdp_init_default_prefill_factors(mdata);
		break;
	case MDSS_MDP_HW_REV_105:
@@ -1208,6 +1210,8 @@ static void mdss_mdp_hw_rev_caps_init(struct mdss_data_type *mdata)
		mdata->max_target_zorder = 7; /* excluding base layer */
		mdata->max_cursor_size = 128;
		set_bit(MDSS_QOS_OTLIM, mdata->mdss_qos_map);
		set_bit(MDSS_CAPS_3D_MUX_UNDERRUN_RECOVERY_SUPPORTED,
			mdata->mdss_caps_map);
		break;
	case MDSS_MDP_HW_REV_110:
		mdss_set_quirk(mdata, MDSS_QUIRK_BWCPANIC);
+3 −1
Original line number Diff line number Diff line
@@ -705,7 +705,9 @@ static void mdss_mdp_video_underrun_intr_done(void *arg)
	pr_debug("display underrun detected for ctl=%d count=%d\n", ctl->num,
			ctl->underrun_cnt);

	if (ctl->opmode & MDSS_MDP_CTL_OP_PACK_3D_ENABLE)
	if (!test_bit(MDSS_CAPS_3D_MUX_UNDERRUN_RECOVERY_SUPPORTED,
		ctl->mdata->mdss_caps_map) &&
		(ctl->opmode & MDSS_MDP_CTL_OP_PACK_3D_ENABLE))
		schedule_work(&ctl->recover_work);
}