aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c
diff options
context:
space:
mode:
authorTony Lindgren <[email protected]>2021-07-27 11:25:08 +0300
committerTony Lindgren <[email protected]>2021-07-27 11:25:08 +0300
commit353b7a55dcaf5fb8758e09ebe2ddf5f3adbac7c5 (patch)
tree081200957b3d8925cbe913020d45a4e3ba61a7a3 /drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c
parent3ff340e24c9dd5cff9fc07d67914c5adf67f80d6 (diff)
parentc68ef4ad180e09805fa46965d15e1dfadf09ffa5 (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.c15
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;
}