drm/i915/dp_mst: Use helpers to get dsc min/max input bpc
authorAnkit Nautiyal <ankit.k.nautiyal@intel.com>
Tue, 17 Dec 2024 09:32:37 +0000 (15:02 +0530)
committerAnkit Nautiyal <ankit.k.nautiyal@intel.com>
Tue, 24 Dec 2024 09:49:59 +0000 (15:19 +0530)
Use helpers for source min/max input bpc with DSC.

Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241217093244.3938132-8-ankit.k.nautiyal@intel.com
drivers/gpu/drm/i915/display/intel_dp.c
drivers/gpu/drm/i915/display/intel_dp.h
drivers/gpu/drm/i915/display/intel_dp_mst.c

index f13680c4fb803382771b3e7e33d8eae3d1c573f9..2435370b7a0607e344957257d956f0b17fd2e0ce 100644 (file)
@@ -1783,7 +1783,6 @@ intel_dp_compute_link_config_wide(struct intel_dp *intel_dp,
        return -EINVAL;
 }
 
-static
 int intel_dp_dsc_max_src_input_bpc(struct intel_display *display)
 {
        /* Max DSC Input BPC for ICL is 10 and for TGL+ is 12 */
@@ -2187,7 +2186,6 @@ static int dsc_compute_compressed_bpp(struct intel_dp *intel_dp,
                                           dsc_max_bpp, dsc_min_bpp, pipe_bpp, timeslots);
 }
 
-static
 int intel_dp_dsc_min_src_input_bpc(void)
 {
        /* Min DSC Input BPC for ICL+ is 8 */
index 03dde9756bdc27f374af629b382bb88fbe171ff4..07e8e6cba94d18ff93edfd5b62113f03426744b6 100644 (file)
@@ -207,5 +207,7 @@ bool intel_dp_link_params_valid(struct intel_dp *intel_dp, int link_rate,
                                u8 lane_count);
 bool intel_dp_has_connector(struct intel_dp *intel_dp,
                            const struct drm_connector_state *conn_state);
+int intel_dp_dsc_max_src_input_bpc(struct intel_display *display);
+int intel_dp_dsc_min_src_input_bpc(void);
 
 #endif /* __INTEL_DP_H__ */
index 4217350eefb0d35de774214b86d83eaf8196079c..c9c4c8b960f10a3bfcbb72a27b3d4a68822b4e3f 100644 (file)
@@ -396,17 +396,14 @@ static int mst_stream_dsc_compute_link_config(struct intel_dp *intel_dp,
        int i, num_bpc;
        u8 dsc_bpc[3] = {};
        int min_bpp, max_bpp, sink_min_bpp, sink_max_bpp;
-       u8 dsc_max_bpc;
+       int dsc_max_bpc, dsc_min_bpc;
        int min_compressed_bpp, max_compressed_bpp;
 
-       /* Max DSC Input BPC for ICL is 10 and for TGL+ is 12 */
-       if (DISPLAY_VER(display) >= 12)
-               dsc_max_bpc = min_t(u8, 12, conn_state->max_requested_bpc);
-       else
-               dsc_max_bpc = min_t(u8, 10, conn_state->max_requested_bpc);
+       dsc_max_bpc = intel_dp_dsc_max_src_input_bpc(display);
+       dsc_min_bpc = intel_dp_dsc_min_src_input_bpc();
 
-       max_bpp = min_t(u8, dsc_max_bpc * 3, limits->pipe.max_bpp);
-       min_bpp = limits->pipe.min_bpp;
+       max_bpp = min(dsc_max_bpc * 3, limits->pipe.max_bpp);
+       min_bpp = max(dsc_min_bpc * 3, limits->pipe.min_bpp);
 
        num_bpc = drm_dp_dsc_sink_supported_input_bpcs(connector->dp.dsc_dpcd,
                                                       dsc_bpc);