linux/drivers/gpu/drm/amd/display/dc/inc/hw
Krunoslav Kovac 8f8372c7d1 drm/amd/display: Optimize regamma calculations
There are several optimizations:
1) Use predefined SRGB, don't calculate. This is the most common case.
2) Precompute HW X points at boot since they're fixed in ColModule
3) Precompute PQ - it never changes and is very CPU intensive in fixed pt.
4) Reduce number of points in ColModule to 512 (32x16) from 1024. This also
requires reducing some regions for legacy DCEs to 16 pts at most.

Performance
1) is super-fast, build_output_tf is 1-2us, down from 25000-30000.
Programming also fast since only one reg write.
2)+3) gives build_output_tf for PQ in ~100us range, down from ~80000-110000
2) + 4) results in slightly over 50% improvement. It gives an idea of the
savings when we can't use SRGB or PQ table (e.g. sdr white level > 80).

There's also a bit of refactoring: renaming some stuff that was misleading
and removing a lot of magic numbers that novices might not be able to
understand where they come from and what they mean.

Signed-off-by: Krunoslav Kovac <Krunoslav.Kovac@amd.com>
Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
Acked-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2018-02-19 14:19:35 -05:00
..
abm.h drm/amd/display: Fix check for whether dmcu fw is running 2017-12-20 14:46:32 -05:00
audio.h
display_clock.h drm/amd/display: fix eDP bootup/S4 backlight on 2017-09-26 18:16:39 -04:00
dmcu.h drm/amd/display: Fix check for whether dmcu fw is running 2017-12-20 14:46:32 -05:00
dpp.h drm/amd/display: Move dpp reg access from hwss to dpp module. 2018-02-19 14:17:33 -05:00
gpio.h
hubp.h drm/amd/display: Move hubp reg access from hwss to hubp module. 2018-02-19 14:17:28 -05:00
hw_shared.h drm/amd/display: Optimize regamma calculations 2018-02-19 14:19:35 -05:00
ipp.h drm/amd/display: Apply VQ adjustments in MPO case 2017-12-04 16:41:37 -05:00
link_encoder.h drm/amd/display: Pass signal directly to enable_tmds_output 2018-02-19 14:17:24 -05:00
mem_input.h drm/amd/display: rename struct mem_input to hubp for dcn 2017-10-21 16:48:26 -04:00
mpc.h drm/amd/display: Reset MPCC muxes during init 2017-12-14 10:53:44 -05:00
opp.h drm/amd/display: Move opp reg access from hwss to opp module. 2018-02-19 14:17:34 -05:00
stream_encoder.h drm/amdgpu: add license to files where it was missing 2017-12-07 11:51:25 -05:00
timing_generator.h drm/amd/display: Remove couple of unused OPTC registers 2018-02-19 14:19:31 -05:00
transform.h drm/amd/display: Pass full 3x4 remap matrix for color transform 2018-02-19 14:17:22 -05:00