drm/i915/dsc: make rc_model_size an encoder defined value
authorJani Nikula <jani.nikula@intel.com>
Tue, 8 Dec 2020 12:33:52 +0000 (14:33 +0200)
committerJani Nikula <jani.nikula@intel.com>
Thu, 10 Dec 2020 08:49:27 +0000 (10:49 +0200)
Move the initialization of the rc_model_size from the common code into
encoder code, allowing different encoders to specify the size according
to their needs. Keep using the hard coded value in the encoders for now
to make this a non-functional change.

Cc: Manasi Navare <manasi.d.navare@intel.com>
Cc: Vandita Kulkarni <vandita.kulkarni@intel.com>
Reviewed-by: Manasi Navare <manasi.d.navare@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/6843c4f6958619f7389180aa92fded7b9fdbb4ba.1607429866.git.jani.nikula@intel.com
drivers/gpu/drm/i915/display/icl_dsi.c
drivers/gpu/drm/i915/display/intel_dp.c
drivers/gpu/drm/i915/display/intel_vdsc.c

index a9439b4156037169b17361c2ea7a446f7d45b573..676e40172fe9975eb773b4ea63a9bfebf497131c 100644 (file)
@@ -1535,6 +1535,9 @@ static int gen11_dsi_dsc_compute_config(struct intel_encoder *encoder,
 
        vdsc_cfg->convert_rgb = true;
 
+       /* FIXME: initialize from VBT */
+       vdsc_cfg->rc_model_size = DSC_RC_MODEL_SIZE_CONST;
+
        ret = intel_dsc_compute_params(encoder, crtc_state);
        if (ret)
                return ret;
index cb5e42c3ecd574081c4a93b6e8d74b5df30e9c5a..b2bc0c8c39c72bf70ab13de5c6d1b155f1a678d8 100644 (file)
@@ -2289,6 +2289,14 @@ static int intel_dp_dsc_compute_params(struct intel_encoder *encoder,
        u8 line_buf_depth;
        int ret;
 
+       /*
+        * RC_MODEL_SIZE is currently a constant across all configurations.
+        *
+        * FIXME: Look into using sink defined DPCD DP_DSC_RC_BUF_BLK_SIZE and
+        * DP_DSC_RC_BUF_SIZE for this.
+        */
+       vdsc_cfg->rc_model_size = DSC_RC_MODEL_SIZE_CONST;
+
        ret = intel_dsc_compute_params(encoder, crtc_state);
        if (ret)
                return ret;
index 22d08679844f6ac0204afcd2bba886796f1d4498..f58cc5700784e2dd46bcbe73fa30ef49909b8bf3 100644 (file)
@@ -454,8 +454,6 @@ int intel_dsc_compute_params(struct intel_encoder *encoder,
        else if (vdsc_cfg->bits_per_component == 12)
                vdsc_cfg->mux_word_size = DSC_MUX_WORD_SIZE_12_BPC;
 
-       /* RC_MODEL_SIZE is a constant across all configurations */
-       vdsc_cfg->rc_model_size = DSC_RC_MODEL_SIZE_CONST;
        /* InitialScaleValue is a 6 bit value with 3 fractional bits (U3.3) */
        vdsc_cfg->initial_scale_value = (vdsc_cfg->rc_model_size << 3) /
                (vdsc_cfg->rc_model_size - vdsc_cfg->initial_offset);