drm/amd/display: add workaround for subvp cursor corruption for DCN32/321

[Why&How]
Kernel does not have a means to tell the userspace to use software
cursor. Due to lack of this functionality, reducing the max cursor size
is the only way to ensure that power savings of Subview port feature is
utilized for asics that support it. The workaround could be removed
after cursor caching is fixed while a subviewport config is active.

Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Reviewed-by: Alvin Lee <Alvin.Lee2@amd.com>
Acked-by: Pavle Kotarac <Pavle.Kotarac@amd.com>
Signed-off-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Aurabindo Pillai 2022-08-25 15:05:58 -04:00 committed by Alex Deucher
parent 1bb8df6692
commit ceb756004a
2 changed files with 4 additions and 2 deletions

View File

@ -2040,7 +2040,8 @@ static bool dcn32_resource_construct(
dc->caps.max_downscale_ratio = 600; dc->caps.max_downscale_ratio = 600;
dc->caps.i2c_speed_in_khz = 100; dc->caps.i2c_speed_in_khz = 100;
dc->caps.i2c_speed_in_khz_hdcp = 100; /*1.4 w/a applied by default*/ dc->caps.i2c_speed_in_khz_hdcp = 100; /*1.4 w/a applied by default*/
dc->caps.max_cursor_size = 256; /* TODO: Bring max_cursor_size back to 256 after subvp cursor corruption is fixed*/
dc->caps.max_cursor_size = 64;
dc->caps.min_horizontal_blanking_period = 80; dc->caps.min_horizontal_blanking_period = 80;
dc->caps.dmdata_alloc_size = 2048; dc->caps.dmdata_alloc_size = 2048;
dc->caps.mall_size_per_mem_channel = 0; dc->caps.mall_size_per_mem_channel = 0;

View File

@ -1652,7 +1652,8 @@ static bool dcn321_resource_construct(
dc->caps.max_downscale_ratio = 600; dc->caps.max_downscale_ratio = 600;
dc->caps.i2c_speed_in_khz = 100; dc->caps.i2c_speed_in_khz = 100;
dc->caps.i2c_speed_in_khz_hdcp = 100; /*1.4 w/a applied by default*/ dc->caps.i2c_speed_in_khz_hdcp = 100; /*1.4 w/a applied by default*/
dc->caps.max_cursor_size = 256; /* TODO: Bring max cursor size back to 256 after subvp cursor corruption is fixed*/
dc->caps.max_cursor_size = 64;
dc->caps.min_horizontal_blanking_period = 80; dc->caps.min_horizontal_blanking_period = 80;
dc->caps.dmdata_alloc_size = 2048; dc->caps.dmdata_alloc_size = 2048;
dc->caps.mall_size_per_mem_channel = 0; dc->caps.mall_size_per_mem_channel = 0;