diff options
| author | Nicholas Kazlauskas <[email protected]> | 2019-07-11 16:32:43 +0000 |
|---|---|---|
| committer | Alex Deucher <[email protected]> | 2019-07-18 19:27:26 +0000 |
| commit | 21ffcc94d5b3dc024fedac700f1e7f9dacf4ab4f (patch) | |
| tree | 271461a02161458bfce249af50339ac4fda72c53 /drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | |
| parent | drm/amd/display: Add debug entry to destroy disconnected edp link (diff) | |
| download | kernel-21ffcc94d5b3dc024fedac700f1e7f9dacf4ab4f.tar.gz kernel-21ffcc94d5b3dc024fedac700f1e7f9dacf4ab4f.zip | |
drm/amd/display: Copy GSL groups when committing a new context
[Why]
DC configures the GSL group for the pipe when pipe_split is enabled
and we're switching flip types (buffered <-> immediate flip) on DCN2.
In order to record what GSL group the pipe is using DC stores it in
the pipe's stream_res. DM is not aware of this internal grouping, nor
is DC resource.
So when DM creates a dc_state context and passes it to DC the current
GSL group is lost - DM never knew about it in the first place.
After 3 immediate flips we run out of GSL groups and we're no longer
able to correctly perform *any* flip for multi-pipe scenarios.
[How]
The gsl_group needs to be copied to the new context.
DM has no insight into GSL grouping and could even potentially create
a brand new context without referencing current hardware state. So this
makes the most sense to have happen in DC.
There are two places where DC can apply a new context:
- dc_commit_state
- dc_commit_updates_for_stream
But what's shared between both of these is apply_ctx_for_surface.
This logic only matters for DCN2, so it can be placed in
dcn20_apply_ctx_for_surface. Before doing any locking (where the GSL
group is setup) we can copy over the GSL groups before committing the
new context.
Signed-off-by: Nicholas Kazlauskas <[email protected]>
Reviewed-by: Hersen Wu <[email protected]>
Acked-by: Leo Li <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c')
0 files changed, 0 insertions, 0 deletions
