diff options
| author | Tony Lindgren <[email protected]> | 2021-07-27 11:25:08 +0300 |
|---|---|---|
| committer | Tony Lindgren <[email protected]> | 2021-07-27 11:25:08 +0300 |
| commit | 353b7a55dcaf5fb8758e09ebe2ddf5f3adbac7c5 (patch) | |
| tree | 081200957b3d8925cbe913020d45a4e3ba61a7a3 /drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c | |
| parent | 3ff340e24c9dd5cff9fc07d67914c5adf67f80d6 (diff) | |
| parent | c68ef4ad180e09805fa46965d15e1dfadf09ffa5 (diff) | |
Merge branch 'fixes-v5.14' into fixes
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c b/drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c index de5dfcfb3859..01c242c5abc3 100644 --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c @@ -49,10 +49,13 @@ static int jpeg_v3_0_set_powergating_state(void *handle, static int jpeg_v3_0_early_init(void *handle) { struct amdgpu_device *adev = (struct amdgpu_device *)handle; - u32 harvest = RREG32_SOC15(JPEG, 0, mmCC_UVD_HARVESTING); - if (harvest & CC_UVD_HARVESTING__UVD_DISABLE_MASK) - return -ENOENT; + if (adev->asic_type != CHIP_YELLOW_CARP) { + u32 harvest = RREG32_SOC15(JPEG, 0, mmCC_UVD_HARVESTING); + + if (harvest & CC_UVD_HARVESTING__UVD_DISABLE_MASK) + return -ENOENT; + } adev->jpeg.num_jpeg_inst = 1; @@ -159,15 +162,13 @@ static int jpeg_v3_0_hw_init(void *handle) static int jpeg_v3_0_hw_fini(void *handle) { struct amdgpu_device *adev = (struct amdgpu_device *)handle; - struct amdgpu_ring *ring; - ring = &adev->jpeg.inst->ring_dec; + cancel_delayed_work_sync(&adev->vcn.idle_work); + if (adev->jpeg.cur_state != AMD_PG_STATE_GATE && RREG32_SOC15(JPEG, 0, mmUVD_JRBC_STATUS)) jpeg_v3_0_set_powergating_state(adev, AMD_PG_STATE_GATE); - ring->sched.ready = false; - return 0; } |