mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 18:43:33 +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> (cherry picked from commit906ad45167) Cc: stable@vger.kernel.org
This commit is contained in:
parent
50f29ead1f
commit
35a5440832
|
|
@ -3643,6 +3643,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