aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu.h
diff options
context:
space:
mode:
authorLeo Li <[email protected]>2019-03-19 23:29:16 +0000
committerAlex Deucher <[email protected]>2019-04-10 18:53:28 +0000
commit113b7a010872117e90b16a3e411558db5cb5979e (patch)
tree6f806d720f725f50ad78e02e84e48192bd8fd21b /drivers/gpu/drm/amd/amdgpu/amdgpu.h
parentdrm/amd/display: HDR visual confirmation incorrectly reports black color (diff)
downloadkernel-113b7a010872117e90b16a3e411558db5cb5979e.tar.gz
kernel-113b7a010872117e90b16a3e411558db5cb5979e.zip
drm/amd/display: Recreate private_obj->state during S3 resume
[Why] When entering S3, amdgpu first calls DRM to cache the current atomic state, then commit the 'all-disabled' state. This sets dc->current_state to point at the private atomic object's dm_atomic_state->context, as any regular atomic commit would. Afterwards, amdgpu_dm calls dc_set_power_state() with S3 power state. This invalidates dc->current_state by wiping it to 0, consequently wiping dm_atomic_state->context. During resume, the cached atomic state is restored. When getting the private object however, the dm_atomic_state - containing the wiped context - is duplicated into the atomic state. This causes DC validation to fail during atomic check, as necessary function pointers in dc_state are now NULL. [How] Recreate the private object's dm_atomic_state->context during resume, restoring any static values such as function pointers. A TODO item is added to move static read-only values out of dc_state - they shouldn't be there anyways. Signed-off-by: Leo Li <[email protected]> Reviewed-by: Nicholas Kazlauskas <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu.h')
0 files changed, 0 insertions, 0 deletions