diff options
author | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2024-09-30 20:04:15 +0300 |
---|---|---|
committer | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2024-10-04 00:33:44 +0300 |
commit | 45c548642b563ec7fd761a3f3a412e99b3c88e27 (patch) | |
tree | fea9602aecd224f2b8bdceadd8b929817b01b0ba /drivers/gpu/Makefile | |
parent | a6d4d9776e1ebfae9a8e96241f1bfb223adff40d (diff) | |
download | linux-45c548642b563ec7fd761a3f3a412e99b3c88e27.tar.xz |
drm/i915/dsb: Use DSB for plane/color management updates
Push regular plane/color management updates to the DSB,
if other constraints allow it.
The first part of the sequence will go as follows:
- CPU will kick off DSB0 immediately
- DSB0 writes double bufferd non-arming registers
- DSB0 evades the vblank
- DSB0 writes double buffered arming registers
If no color management updates is needed we follow that up with:
- DSB0 waits for the undelayed vblank
- DSB0 waits for the delayed vblank (usec wait)
- DSB0 emits an interrupt which will cause the CPU to complete the commit
If color management update is needed:
- DSB0 will start DSB1 with wait for undelayed vblank
- DSB0 will in parallel perform the force DEwake tricks
- DSB1 writes single buffered LUT registers
- DSB1 waits for the delayed vblank (usec wait)
- DSB1 emits an interrupt which will cause the CPU to complete the commit
With this sequence we don't need to increase the vblank delay
to make room for register programming during vblank, which is
a good thing for high refresh rate display. But I'll need to
still think of some way to eliminate VRR commit completion
related races under this scheme.
Stuff that isn't ready for DSB yet:
- modesets (potentially we could do
at least the plane enabling via DSB)
- fastsets
- VRR
- PSR
- scalers
- async flips
Reviewed-by: Animesh Manna <animesh.manna@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240930170415.23841-14-ville.syrjala@linux.intel.com
Diffstat (limited to 'drivers/gpu/Makefile')
0 files changed, 0 insertions, 0 deletions