mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 23:22:31 +02:00
drm/amdgpu: cancel gfx idle work in device suspend for s0ix
This is normally handled in the gfx IP suspend callbacks, but for S0ix, those are skipped because we don't want to touch gfx. So handle it in device suspend. Fixes:b9467983b7("drm/amdgpu: add dynamic workload profile switching for gfx10") Fixes:963537ca23("drm/amdgpu: add dynamic workload profile switching for gfx11") Fixes:5f95a15495("drm/amdgpu: add dynamic workload profile switching for gfx12") Reviewed-by: Mario Limonciello <mario.limonciello@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
b23f81c442
commit
906ad45167
|
|
@ -3653,6 +3653,13 @@ static int amdgpu_device_ip_suspend_phase2(struct amdgpu_device *adev)
|
|||
adev, adev->ip_blocks[i].version->type))
|
||||
continue;
|
||||
|
||||
/* Since we skip suspend for S0i3, we need to cancel the delayed
|
||||
* idle work here as the suspend callback never gets called.
|
||||
*/
|
||||
if (adev->in_s0ix &&
|
||||
adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GFX &&
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) >= IP_VERSION(10, 0, 0))
|
||||
cancel_delayed_work_sync(&adev->gfx.idle_work);
|
||||
/* skip suspend of gfx/mes and psp for S0ix
|
||||
* gfx is in gfxoff state, so on resume it will exit gfxoff just
|
||||
* like at runtime. PSP is also part of the always on hardware
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user