summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/display/dc/irq/dcn20/irq_service_dcn20.c
diff options
context:
space:
mode:
authorWenjing Liu <wenjing.liu@amd.com>2024-02-09 22:00:27 +0300
committerAlex Deucher <alexander.deucher@amd.com>2024-02-22 18:25:36 +0300
commit34241dc665cf21bc628f1fea2249adb10010dfc0 (patch)
tree081d81870ca14517ea7ebc3c4171b434d29ae2fb /drivers/gpu/drm/amd/display/dc/irq/dcn20/irq_service_dcn20.c
parent340383c734f8a4e1663d26356b35fd8050851168 (diff)
downloadlinux-34241dc665cf21bc628f1fea2249adb10010dfc0.tar.xz
drm/amd/display: reenable windowed mpo odm support on dcn32 and dcn321
[why] The feature was disabled due to regression found during testing. Now that all the pending issues are addressed, we are reenabling the power saving feature again. The feature optimizes dispclk level when user is using MPO capable broswers or watching MPO capable videos in windowed mode. The feature achieves power optimization by utilizing free pipes to process incoming pixels in parallel. So it reduces max dispclk requirements for each pipe. Previously ODM power optimization will be disabled when MPO plane is present due to technical challeges. This is mainly because ODM divides pixel workload with respect to stream but MPO plane position and size are arbitrary with respect to stream. The pixel processing workload of an MPO plane is not guarenteed to be evenly distributed across DCN pipes. For example if a plane is moved inside single ODM slice, all the processing for the plane is distributed to the pipe in the current ODM slice, while the other ODM slices don't need to process this plane. If the plane is then moved to the middle crosing two ODM slices, each ODM slice gets half of the workload. This is especially difficult when the plane itself has a large source rect which can't be processed by single DCN pipe. In this case we can't enable ODM power optimization when the plane is only within one ODM slice. [how] To overcome the challeges, new pipe resource management is in place to make sure a plane is validated with ODM power optimization support if it can be validated regardless of its position and the same pipe topology can be used regardless of the plane's position. When the plane is moved outside current ODM slice, we will set recout to 0 so the pipe can be idling without the need to update pipe topology. When the user resizes a plane, it may result in downscaling ratio changes. When the downscaling ratio is above single pipe's threshold, we will seamlessly exit ODM power optimization and applies MPC combine to support the plane. when downscaling ratio becomes smaller, we will seamlessly enter ODM power optimization again. All these pipe transitions happen automatically and quietly when the conditions are met without any visual impacts to the user. Reviewed-by: Martin Leung <martin.leung@amd.com> Acked-by: Rodrigo Siqueira <rodrigo.siqueira@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Wenjing Liu <wenjing.liu@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/dc/irq/dcn20/irq_service_dcn20.c')
0 files changed, 0 insertions, 0 deletions