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

Commit a9a92a5f authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "disp: msm: sde: fix the QOS setting mismatch"

parents b37df495 99a7f030
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -619,6 +619,24 @@ static inline enum sde_crtc_client_type sde_crtc_get_client_type(
	return cstate->rsc_client ? RT_RSC_CLIENT : RT_CLIENT;
}

/**
 * sde_crtc_get_client_type_for_qos - check the crtc type- rt, nrt, rsc_rt, etc.
 * @crtc: Pointer to crtc
 */
static inline enum sde_crtc_client_type sde_crtc_get_client_type_for_qos(
						struct drm_crtc *crtc)
{
	struct sde_crtc_state *cstate =
			crtc ? to_sde_crtc_state(crtc->state) : NULL;

	if (!cstate)
		return NRT_CLIENT;

	return sde_crtc_get_intf_mode(crtc) ==
			INTF_MODE_WB_LINE ? NRT_CLIENT :
			(cstate->rsc_client ? RT_RSC_CLIENT : RT_CLIENT);
}

/**
 * sde_crtc_is_enabled - check if sde crtc is enabled or not
 * @crtc: Pointer to crtc
+4 −2
Original line number Diff line number Diff line
@@ -376,7 +376,8 @@ static void _sde_plane_set_qos_lut(struct drm_plane *plane,

		if (fmt && SDE_FORMAT_IS_LINEAR(fmt))
			lut_usage = SDE_QOS_LUT_USAGE_LINEAR;
		else if (psde->features & BIT(SDE_SSPP_SCALER_QSEED3))
		else if (psde->features & BIT(SDE_SSPP_SCALER_QSEED3) ||
			psde->features & BIT(SDE_SSPP_SCALER_QSEED3LITE))
			lut_usage = SDE_QOS_LUT_USAGE_MACROTILE_QSEED;
		else
			lut_usage = SDE_QOS_LUT_USAGE_MACROTILE;
@@ -3194,7 +3195,8 @@ static int sde_plane_sspp_atomic_update(struct drm_plane *plane,
		return 0;
	pstate->pending = true;

	psde->is_rt_pipe = (sde_crtc_get_client_type(crtc) != NRT_CLIENT);
	psde->is_rt_pipe =
		(sde_crtc_get_client_type_for_qos(crtc) != NRT_CLIENT);
	_sde_plane_set_qos_ctrl(plane, false, SDE_PLANE_QOS_PANIC_CTRL);

	_sde_plane_update_properties(plane, crtc, fb);