]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/display/dp: Assume 8 bpc support when DSC is supported
authorAnkit Nautiyal <ankit.k.nautiyal@intel.com>
Thu, 24 Aug 2023 12:51:20 +0000 (18:21 +0530)
committerJani Nikula <jani.nikula@intel.com>
Wed, 30 Aug 2023 11:49:47 +0000 (14:49 +0300)
As per DP v1.4, a DP DSC Sink device shall support 8bpc in DPCD 6Ah.
Apparently some panels that do support DSC, are not setting the bit for
8bpc.

So always assume 8bpc support by DSC decoder, when DSC is claimed to be
supported.

v2: Use helper to get check dsc support. (Ankit)
v3: Fix styling and other typos. (Jani)

Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Acked-by: Maxime Ripard <mripard@kernel.org>
Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230824125121.840298-2-ankit.k.nautiyal@intel.com
drivers/gpu/drm/display/drm_dp_helper.c

index e6a78fd32380a1e73d58ecd4f5f4221ec5b599db..8a1b64c57dfdb42d52c2a6983d80533370a10d8a 100644 (file)
@@ -2449,12 +2449,16 @@ int drm_dp_dsc_sink_supported_input_bpcs(const u8 dsc_dpcd[DP_DSC_RECEIVER_CAP_S
        int num_bpc = 0;
        u8 color_depth = dsc_dpcd[DP_DSC_DEC_COLOR_DEPTH_CAP - DP_DSC_SUPPORT];
 
+       if (!drm_dp_sink_supports_dsc(dsc_dpcd))
+               return 0;
+
        if (color_depth & DP_DSC_12_BPC)
                dsc_bpc[num_bpc++] = 12;
        if (color_depth & DP_DSC_10_BPC)
                dsc_bpc[num_bpc++] = 10;
-       if (color_depth & DP_DSC_8_BPC)
-               dsc_bpc[num_bpc++] = 8;
+
+       /* A DP DSC Sink device shall support 8 bpc. */
+       dsc_bpc[num_bpc++] = 8;
 
        return num_bpc;
 }