Commit 5fddd4f5 authored by Kalyan Thota's avatar Kalyan Thota Committed by Rob Clark
Browse files

drm/msm/dpu: request for display color blocks based on hw catalog entry



Request for color processing blocks only if they are
available in the display hw catalog and they are
sufficient in number for the selection.

Signed-off-by: default avatarKalyan Thota <kalyan_t@codeaurora.org>
Fixes: e47616df ("drm/msm/dpu: add support for color processing
Tested-by: default avatarJohn Stultz <john.stultz@linaro.org>
Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
parent 1cb2c4a2
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -521,7 +521,7 @@ static struct msm_display_topology dpu_encoder_get_topology(
			struct dpu_kms *dpu_kms,
			struct drm_display_mode *mode)
{
	struct msm_display_topology topology;
	struct msm_display_topology topology = {0};
	int i, intf_count = 0;

	for (i = 0; i < MAX_PHYS_ENCODERS_PER_VIRTUAL; i++)
@@ -537,7 +537,8 @@ static struct msm_display_topology dpu_encoder_get_topology(
	 * 1 LM, 1 INTF
	 * 2 LM, 1 INTF (stream merge to support high resolution interfaces)
	 *
	 * Adding color blocks only to primary interface
	 * Adding color blocks only to primary interface if available in
	 * sufficient number
	 */
	if (intf_count == 2)
		topology.num_lm = 2;
@@ -546,8 +547,11 @@ static struct msm_display_topology dpu_encoder_get_topology(
	else
		topology.num_lm = (mode->hdisplay > MAX_HDISPLAY_SPLIT) ? 2 : 1;

	if (dpu_enc->disp_info.intf_type == DRM_MODE_ENCODER_DSI)
	if (dpu_enc->disp_info.intf_type == DRM_MODE_ENCODER_DSI) {
		if (dpu_kms->catalog->dspp &&
			(dpu_kms->catalog->dspp_count >= topology.num_lm))
			topology.num_dspp = topology.num_lm;
	}

	topology.num_enc = 0;
	topology.num_intf = intf_count;