Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Revert "drm/amd/display: Hardware cursor changes color when switched to software cursor"

This reverts commit 272e6aab14bbf98d7a06b2b1cd6308a02d4a10a1.

Applying degamma curve to the cursor by default breaks Linux userspace
expectation.

On Linux, AMD display manager enables cursor degamma ROM just for
implict sRGB on HW versions where degamma is split into two blocks:
degamma ROM for pre-defined TFs and `gamma correction` for user/custom
curves, and degamma ROM settings doesn't apply to cursor plane.

Link: https://gitlab.freedesktop.org/drm/amd/-/issues/1513
Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2803
Reported-by: Michel Dänzer <michel.daenzer@mailbox.org>
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4144
Signed-off-by: Melissa Wen <mwen@igalia.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Melissa Wen and committed by
Alex Deucher
f6a305d4 553ad6fc

+3 -2
+3 -2
drivers/gpu/drm/amd/display/dc/dpp/dcn401/dcn401_dpp_cm.c
··· 120 120 enum dc_cursor_color_format color_format = cursor_attributes->color_format; 121 121 int cur_rom_en = 0; 122 122 123 - // DCN4 should always do Cursor degamma for Cursor Color modes 124 123 if (color_format == CURSOR_MODE_COLOR_PRE_MULTIPLIED_ALPHA || 125 124 color_format == CURSOR_MODE_COLOR_UN_PRE_MULTIPLIED_ALPHA) { 126 - cur_rom_en = 1; 125 + if (cursor_attributes->attribute_flags.bits.ENABLE_CURSOR_DEGAMMA) { 126 + cur_rom_en = 1; 127 + } 127 128 } 128 129 129 130 REG_UPDATE_3(CURSOR0_CONTROL,