On 2017-05-08 02:32 PM, Alex Deucher wrote: > On Fri, May 5, 2017 at 10:27 AM, Alex Deucher <alexdeucher at gmail.com> wrote: >> Update the scratch reg for when the engine is hung. >> >> Signed-off-by: Alex Deucher <alexander.deucher at amd.com> > > ping on this series. > I'm not an expert on this and haven't had a chance to look up the atomfirmware definitions but this looks reasonable to me. Acked-by: Harry Wentland <harry.wentland at amd.com> Harry > Alex > >> --- >> drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | 13 +++++++++++++ >> drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.h | 2 ++ >> 2 files changed, 15 insertions(+) >> >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c >> index d735cd1..4bdda56 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c >> @@ -88,6 +88,19 @@ void amdgpu_atomfirmware_scratch_regs_restore(struct amdgpu_device *adev) >> WREG32(adev->bios_scratch_reg_offset + i, adev->bios_scratch[i]); >> } >> >> +void amdgpu_atomfirmware_scratch_regs_engine_hung(struct amdgpu_device *adev, >> + bool hung) >> +{ >> + u32 tmp = RREG32(adev->bios_scratch_reg_offset + 3); >> + >> + if (hung) >> + tmp |= ATOM_S3_ASIC_GUI_ENGINE_HUNG; >> + else >> + tmp &= ~ATOM_S3_ASIC_GUI_ENGINE_HUNG; >> + >> + WREG32(adev->bios_scratch_reg_offset + 3, tmp); >> +} >> + >> int amdgpu_atomfirmware_allocate_fb_scratch(struct amdgpu_device *adev) >> { >> struct atom_context *ctx = adev->mode_info.atom_context; >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.h >> index d0c4dcd..a2c3ebe 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.h >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.h >> @@ -28,6 +28,8 @@ bool amdgpu_atomfirmware_gpu_supports_virtualization(struct amdgpu_device *adev) >> void amdgpu_atomfirmware_scratch_regs_init(struct amdgpu_device *adev); >> void amdgpu_atomfirmware_scratch_regs_save(struct amdgpu_device *adev); >> void amdgpu_atomfirmware_scratch_regs_restore(struct amdgpu_device *adev); >> +void amdgpu_atomfirmware_scratch_regs_engine_hung(struct amdgpu_device *adev, >> + bool hung); >> int amdgpu_atomfirmware_allocate_fb_scratch(struct amdgpu_device *adev); >> >> #endif >> -- >> 2.5.5 >> > _______________________________________________ > amd-gfx mailing list > amd-gfx at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx >