drm/amd/display: add comments to describe DM crtc color mgmt behavior
authorMelissa Wen <mwen@igalia.com>
Thu, 16 Nov 2023 19:57:53 +0000 (18:57 -0100)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 13 Dec 2023 21:08:01 +0000 (16:08 -0500)
Describe some expected behavior of the AMD DM color mgmt programming.

Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Melissa Wen <mwen@igalia.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c

index 4150e9370daf398c7702c37b83483d6492cf2bff..0b92513eab98f6f929e4a6dd347807974ad1dbe0 100644 (file)
@@ -661,13 +661,25 @@ int amdgpu_dm_update_crtc_color_mgmt(struct dm_crtc_state *crtc)
                crtc->cm_is_degamma_srgb = true;
                stream->out_transfer_func->type = TF_TYPE_DISTRIBUTED_POINTS;
                stream->out_transfer_func->tf = TRANSFER_FUNCTION_SRGB;
-
+               /*
+                * Note: although we pass has_rom as parameter here, we never
+                * actually use ROM because the color module only takes the ROM
+                * path if transfer_func->type == PREDEFINED.
+                *
+                * See more in mod_color_calculate_regamma_params()
+                */
                r = __set_legacy_tf(stream->out_transfer_func, regamma_lut,
                                    regamma_size, has_rom);
                if (r)
                        return r;
        } else if (has_regamma) {
-               /* If atomic regamma, CRTC RGM goes into RGM LUT. */
+               /*
+                * CRTC RGM goes into RGM LUT.
+                *
+                * Note: there is no implicit sRGB regamma here. We are using
+                * degamma calculation from color module to calculate the curve
+                * from a linear base.
+                */
                stream->out_transfer_func->type = TF_TYPE_DISTRIBUTED_POINTS;
                stream->out_transfer_func->tf = TRANSFER_FUNCTION_LINEAR;