]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
drm/i915/dp: Move compressed bpp check with 420 format inside the helper
authorAnkit Nautiyal <ankit.k.nautiyal@intel.com>
Thu, 17 Aug 2023 14:24:43 +0000 (19:54 +0530)
committerAnkit Nautiyal <ankit.k.nautiyal@intel.com>
Fri, 18 Aug 2023 04:12:14 +0000 (09:42 +0530)
Move the check for limiting compressed bits_per_pixel for 420,422
formats in the helper to compute bits_per_pixel.

v2: Fix typo in commit message. (Ankit)

Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Arun R Murthy <arun.r.murthy@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230817142459.89764-3-ankit.k.nautiyal@intel.com
drivers/gpu/drm/i915/display/intel_dp.c

index 29aab055ef1108648c350b562aa694333efc1c76..ebf216596fddeb8d1557b95235f85fc5fe54ff15 100644 (file)
@@ -773,6 +773,15 @@ u16 intel_dp_dsc_get_output_bpp(struct drm_i915_private *i915,
        if (output_format == INTEL_OUTPUT_FORMAT_YCBCR420)
                bits_per_pixel *= 2;
 
+       /*
+        * According to DSC 1.2a Section 4.1.1 Table 4.1 the maximum
+        * supported PPS value can be 63.9375 and with the further
+        * mention that for 420, 422 formats, bpp should be programmed double
+        * the target bpp restricting our target bpp to be 31.9375 at max.
+        */
+       if (output_format == INTEL_OUTPUT_FORMAT_YCBCR420)
+               bits_per_pixel = min_t(u32, bits_per_pixel, 31);
+
        drm_dbg_kms(&i915->drm, "Max link bpp is %u for %u timeslots "
                                "total bw %u pixel clock %u\n",
                                bits_per_pixel, timeslots,
@@ -1738,15 +1747,6 @@ int intel_dp_dsc_compute_config(struct intel_dp *intel_dp,
                                                            pipe_config->output_format,
                                                            pipe_bpp,
                                                            timeslots);
-                       /*
-                        * According to DSC 1.2a Section 4.1.1 Table 4.1 the maximum
-                        * supported PPS value can be 63.9375 and with the further
-                        * mention that bpp should be programmed double the target bpp
-                        * restricting our target bpp to be 31.9375 at max
-                        */
-                       if (pipe_config->output_format == INTEL_OUTPUT_FORMAT_YCBCR420)
-                               dsc_max_output_bpp = min_t(u16, dsc_max_output_bpp, 31 << 4);
-
                        if (!dsc_max_output_bpp) {
                                drm_dbg_kms(&dev_priv->drm,
                                            "Compressed BPP not supported\n");