Message ID | 20240204-dpu-dsc-multiplex-v1-1-080963233c52@somainline.org (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | drm/msm/dpu: Only enable DSC_MODE_MULTIPLEX if dsc_merge is enabled | expand |
On Sun, 4 Feb 2024 at 18:45, Marijn Suijten <marijn.suijten@somainline.org> wrote: > > When the topology calls for two interfaces on the current fixed topology > of 2 DSC blocks, or uses 1 DSC block for a single interface (e.g. SC7280 > with only one DSC block), there should be no merging of DSC output. > > This is already represented by the return value of > dpu_encoder_use_dsc_merge(), but not yet used to correctly configure > this flag. > > Fixes: 58dca9810749 ("drm/msm/disp/dpu1: Add support for DSC in encoder") > Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org> > --- > Note that more changes are needed to properly support the proposed 2:2:2 > and 1:1:1 topology (in contrast to the already-supported 2:2:1 topology), > but this could be a trivial patch to get going separately before all that > extra work is done. > --- > drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
On Sun, 04 Feb 2024 18:45:27 +0100, Marijn Suijten wrote: > When the topology calls for two interfaces on the current fixed topology > of 2 DSC blocks, or uses 1 DSC block for a single interface (e.g. SC7280 > with only one DSC block), there should be no merging of DSC output. > > This is already represented by the return value of > dpu_encoder_use_dsc_merge(), but not yet used to correctly configure > this flag. > > [...] Applied, thanks! [1/1] drm/msm/dpu: Only enable DSC_MODE_MULTIPLEX if dsc_merge is enabled https://gitlab.freedesktop.org/lumag/msm/-/commit/06267d22f9ee Best regards,
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c index 83380bc92a00..6d3ed4d870d7 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c @@ -1857,7 +1857,9 @@ static void dpu_encoder_prep_dsc(struct dpu_encoder_virt *dpu_enc, dsc_common_mode = 0; pic_width = dsc->pic_width; - dsc_common_mode = DSC_MODE_MULTIPLEX | DSC_MODE_SPLIT_PANEL; + dsc_common_mode = DSC_MODE_SPLIT_PANEL; + if (dpu_encoder_use_dsc_merge(enc_master->parent)) + dsc_common_mode |= DSC_MODE_MULTIPLEX; if (enc_master->intf_mode == INTF_MODE_VIDEO) dsc_common_mode |= DSC_MODE_VIDEO;
When the topology calls for two interfaces on the current fixed topology of 2 DSC blocks, or uses 1 DSC block for a single interface (e.g. SC7280 with only one DSC block), there should be no merging of DSC output. This is already represented by the return value of dpu_encoder_use_dsc_merge(), but not yet used to correctly configure this flag. Fixes: 58dca9810749 ("drm/msm/disp/dpu1: Add support for DSC in encoder") Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org> --- Note that more changes are needed to properly support the proposed 2:2:2 and 1:1:1 topology (in contrast to the already-supported 2:2:1 topology), but this could be a trivial patch to get going separately before all that extra work is done. --- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) --- base-commit: 01af33cc9894b4489fb68fa35c40e9fe85df63dc change-id: 20240204-dpu-dsc-multiplex-49c14b73f3e0 Best regards,