Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amdkfd: Swap trap temporary registers in gfx10 trap handler

ttmp[4:5] hold information useful to the debugger. Use ttmp[14:15]
instead, aligning implementation with gfx9 trap handler.

Signed-off-by: Jay Cornwall <jay.cornwall@amd.com>
Reviewed-by: shaoyun liu <Shaoyun.liu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Jay Cornwall and committed by
Alex Deucher
8fde7784 8b803170

+8 -8
+3 -3
drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler.h
··· 694 694 0x003f8000, 0x8f6f896f, 695 695 0x88776f77, 0x8a6eff6e, 696 696 0x023f8000, 0xb9eef807, 697 - 0xb970f812, 0xb971f813, 698 - 0x8ff08870, 0xf4051bb8, 697 + 0xb97af812, 0xb97bf813, 698 + 0x8ffa887a, 0xf4051bbd, 699 699 0xfa000000, 0xbf8cc07f, 700 - 0xf4051c38, 0xfa000008, 700 + 0xf4051ebd, 0xfa000008, 701 701 0xbf8cc07f, 0x87ee6e6e, 702 702 0xbf840001, 0xbe80206e, 703 703 0xb971f803, 0x8771ff71,
+5 -5
drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler_gfx10.asm
··· 187 187 // Read second-level TBA/TMA from first-level TMA and jump if available. 188 188 // ttmp[2:5] and ttmp12 can be used (others hold SPI-initialized debug data) 189 189 // ttmp12 holds SQ_WAVE_STATUS 190 - s_getreg_b32 ttmp4, hwreg(HW_REG_SHADER_TMA_LO) 191 - s_getreg_b32 ttmp5, hwreg(HW_REG_SHADER_TMA_HI) 192 - s_lshl_b64 [ttmp4, ttmp5], [ttmp4, ttmp5], 0x8 193 - s_load_dwordx2 [ttmp2, ttmp3], [ttmp4, ttmp5], 0x0 glc:1 // second-level TBA 190 + s_getreg_b32 ttmp14, hwreg(HW_REG_SHADER_TMA_LO) 191 + s_getreg_b32 ttmp15, hwreg(HW_REG_SHADER_TMA_HI) 192 + s_lshl_b64 [ttmp14, ttmp15], [ttmp14, ttmp15], 0x8 193 + s_load_dwordx2 [ttmp2, ttmp3], [ttmp14, ttmp15], 0x0 glc:1 // second-level TBA 194 194 s_waitcnt lgkmcnt(0) 195 - s_load_dwordx2 [ttmp4, ttmp5], [ttmp4, ttmp5], 0x8 glc:1 // second-level TMA 195 + s_load_dwordx2 [ttmp14, ttmp15], [ttmp14, ttmp15], 0x8 glc:1 // second-level TMA 196 196 s_waitcnt lgkmcnt(0) 197 197 s_and_b64 [ttmp2, ttmp3], [ttmp2, ttmp3], [ttmp2, ttmp3] 198 198 s_cbranch_scc0 L_NO_NEXT_TRAP // second-level trap handler not been set