drm/msm/dsi: Appropriately set dsc->mux_word_size based on bpc
authorMarijn Suijten <marijn.suijten@somainline.org>
Wed, 26 Oct 2022 18:28:19 +0000 (20:28 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 31 Dec 2022 12:32:07 +0000 (13:32 +0100)
[ Upstream commit 0ca870ca304d3449b2ccdc3f0bad9843ff1519f0 ]

This field is currently unread but will come into effect when duplicated
code below is migrated to call drm_dsc_compute_rc_parameters(), which
uses the bpc-dependent value of the local variable mux_words_size in
much the same way.

The hardcoded constant seems to be a remnant from the `/* bpc 8 */`
comment right above, indicating that this group of field assignments is
applicable to bpc = 8 exclusively and should probably bail out on
different bpc values, until constants for other bpc values are added (or
the current ones are confirmed to be correct across multiple bpc's).

Fixes: b9080324d6ca ("drm/msm/dsi: add support for dsc data")
Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
Patchwork: https://patchwork.freedesktop.org/patch/508943/
Link: https://lore.kernel.org/r/20221026182824.876933-6-marijn.suijten@somainline.org
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/msm/dsi/dsi_host.c

index c3156e9..906ee38 100644 (file)
@@ -1786,6 +1786,7 @@ static int dsi_populate_dsc_params(struct drm_dsc_config *dsc)
        if (dsc->bits_per_component == 12)
                mux_words_size = 64;
 
+       dsc->mux_word_size = mux_words_size;
        dsc->initial_xmit_delay = 512;
        dsc->initial_scale_value = 32;
        dsc->first_line_bpg_offset = 12;
@@ -1796,7 +1797,6 @@ static int dsi_populate_dsc_params(struct drm_dsc_config *dsc)
        dsc->flatness_max_qp = 12;
        dsc->rc_quant_incr_limit0 = 11;
        dsc->rc_quant_incr_limit1 = 11;
-       dsc->mux_word_size = DSC_MUX_WORD_SIZE_8_10_BPC;
 
        /* FIXME: need to call drm_dsc_compute_rc_parameters() so that rest of
         * params are calculated