[PATCH v2 08/14] drm/msm/dpu: update mixer number info earlier
Jun Nie
jun.nie at linaro.org
Wed Oct 9 08:50:21 UTC 2024
Update mixer number info earlier so that the plane nopipe check
can have the info to clip the plane. Otherwise, the first nonpipe
check will have mixer number as 0 and plane is not checked.
Signed-off-by: Jun Nie <jun.nie at linaro.org>
---
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
index dfe282c607933..68655c8817bf8 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
@@ -638,6 +638,7 @@ static int dpu_encoder_virt_atomic_check(
struct dpu_global_state *global_state;
struct drm_framebuffer *fb;
struct drm_dsc_config *dsc;
+ struct dpu_crtc_state *cstate;
int ret = 0;
if (!drm_enc || !crtc_state || !conn_state) {
@@ -662,6 +663,8 @@ static int dpu_encoder_virt_atomic_check(
dsc = dpu_encoder_get_dsc_config(drm_enc);
topology = dpu_encoder_get_topology(dpu_enc, dpu_kms, adj_mode, crtc_state, dsc);
+ cstate = to_dpu_crtc_state(crtc_state);
+ cstate->num_mixers = topology.num_lm;
/*
* Use CDM only for writeback or DP at the moment as other interfaces cannot handle it.
@@ -1170,7 +1173,13 @@ static void dpu_encoder_virt_atomic_mode_set(struct drm_encoder *drm_enc,
}
cstate->num_dscs = num_dsc;
- cstate->num_mixers = num_lm;
+ if (cstate->num_mixers != num_lm) {
+ if (!cstate->num_mixers)
+ DPU_ERROR_ENC(dpu_enc,
+ "mixer number %d is not as expected %d\n",
+ num_lm, cstate->num_mixers);
+ cstate->num_mixers = num_lm;
+ }
dpu_enc->connector = conn_state->connector;
/*
--
2.34.1
More information about the Freedreno
mailing list