diff options
author | Dave Airlie <airlied@redhat.com> | 2021-05-21 15:59:04 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2021-05-21 15:59:05 +1000 |
commit | 9a91e5e0af5e03940d0eec72c36364a1701de240 (patch) | |
tree | 9231cabe7aecb0d57876c7c8b17892d90dc0156d /drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c | |
parent | c99c4d0ca57c978dcc2a2f41ab8449684ea154cc (diff) | |
parent | 81db370c88196400972acd6ebbaa73a1d1e4145f (diff) | |
download | linux-9a91e5e0af5e03940d0eec72c36364a1701de240.tar.bz2 |
Merge tag 'amd-drm-next-5.14-2021-05-21' of https://gitlab.freedesktop.org/agd5f/linux into drm-next
amd-drm-next-5.14-2021-05-21:
amdgpu:
- RAS fixes
- SR-IOV fixes
- More BO management cleanups
- Aldebaran fixes
- Display fixes
- Support for new GPU, Beige Goby
- Backlight fixes
amdkfd:
- RAS fixes
- DMA mapping fixes
- HMM SVM fixes
Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Alex Deucher <alexander.deucher@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210521045743.4047-1-alexander.deucher@amd.com
Diffstat (limited to 'drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c')
-rw-r--r-- | drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c | 63 |
1 files changed, 1 insertions, 62 deletions
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c index 5cd788b20c21..cce062adc439 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c @@ -176,7 +176,7 @@ int amdgpu_dm_crtc_configure_crc_source(struct drm_crtc *crtc, /* Configuration will be deferred to stream enable. */ if (!stream_state) - return 0; + return -EINVAL; mutex_lock(&adev->dm.dc_lock); @@ -525,67 +525,6 @@ cleanup: spin_unlock_irqrestore(&drm_dev->event_lock, flags1); } -void amdgpu_dm_crtc_secure_display_resume(struct amdgpu_device *adev) -{ - struct drm_crtc *crtc; - enum amdgpu_dm_pipe_crc_source cur_crc_src; - struct crc_rd_work *crc_rd_wrk = adev->dm.crc_rd_wrk; - struct crc_window_parm cur_crc_window; - struct amdgpu_crtc *acrtc = NULL; - - drm_for_each_crtc(crtc, &adev->ddev) { - acrtc = to_amdgpu_crtc(crtc); - - spin_lock_irq(&adev_to_drm(adev)->event_lock); - cur_crc_src = acrtc->dm_irq_params.crc_src; - cur_crc_window = acrtc->dm_irq_params.crc_window; - spin_unlock_irq(&adev_to_drm(adev)->event_lock); - - if (amdgpu_dm_is_valid_crc_source(cur_crc_src)) { - amdgpu_dm_crtc_set_crc_source(crtc, - pipe_crc_sources[cur_crc_src]); - spin_lock_irq(&adev_to_drm(adev)->event_lock); - acrtc->dm_irq_params.crc_window = cur_crc_window; - if (acrtc->dm_irq_params.crc_window.activated) { - acrtc->dm_irq_params.crc_window.update_win = true; - acrtc->dm_irq_params.crc_window.skip_frame_cnt = 1; - spin_lock_irq(&crc_rd_wrk->crc_rd_work_lock); - crc_rd_wrk->crtc = crtc; - spin_unlock_irq(&crc_rd_wrk->crc_rd_work_lock); - } - spin_unlock_irq(&adev_to_drm(adev)->event_lock); - } - } -} - -void amdgpu_dm_crtc_secure_display_suspend(struct amdgpu_device *adev) -{ - struct drm_crtc *crtc; - struct crc_window_parm cur_crc_window; - enum amdgpu_dm_pipe_crc_source cur_crc_src; - struct amdgpu_crtc *acrtc = NULL; - - drm_for_each_crtc(crtc, &adev->ddev) { - acrtc = to_amdgpu_crtc(crtc); - - spin_lock_irq(&adev_to_drm(adev)->event_lock); - cur_crc_src = acrtc->dm_irq_params.crc_src; - cur_crc_window = acrtc->dm_irq_params.crc_window; - cur_crc_window.update_win = false; - spin_unlock_irq(&adev_to_drm(adev)->event_lock); - - if (amdgpu_dm_is_valid_crc_source(cur_crc_src)) { - amdgpu_dm_crtc_set_crc_source(crtc, NULL); - spin_lock_irq(&adev_to_drm(adev)->event_lock); - /* For resume to set back crc source*/ - acrtc->dm_irq_params.crc_src = cur_crc_src; - acrtc->dm_irq_params.crc_window = cur_crc_window; - spin_unlock_irq(&adev_to_drm(adev)->event_lock); - } - } - -} - struct crc_rd_work *amdgpu_dm_crtc_secure_display_create_work(void) { struct crc_rd_work *crc_rd_wrk = NULL; |