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

drm/amdkfd: replace kgd_dev in static gfx v10_3 funcs

Static funcs in amdgpu_amdkfd_gfx_v10_3.c now using amdgpu_device.

Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Graham Sider and committed by
Alex Deucher
c531a58b 4056b033

+23 -29
+23 -29
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10_3.c
··· 43 43 return (struct amdgpu_device *)kgd; 44 44 } 45 45 46 - static void lock_srbm(struct kgd_dev *kgd, uint32_t mec, uint32_t pipe, 46 + static void lock_srbm(struct amdgpu_device *adev, uint32_t mec, uint32_t pipe, 47 47 uint32_t queue, uint32_t vmid) 48 48 { 49 - struct amdgpu_device *adev = get_amdgpu_device(kgd); 50 - 51 49 mutex_lock(&adev->srbm_mutex); 52 50 nv_grbm_select(adev, mec, pipe, queue, vmid); 53 51 } 54 52 55 - static void unlock_srbm(struct kgd_dev *kgd) 53 + static void unlock_srbm(struct amdgpu_device *adev) 56 54 { 57 - struct amdgpu_device *adev = get_amdgpu_device(kgd); 58 - 59 55 nv_grbm_select(adev, 0, 0, 0, 0); 60 56 mutex_unlock(&adev->srbm_mutex); 61 57 } 62 58 63 - static void acquire_queue(struct kgd_dev *kgd, uint32_t pipe_id, 59 + static void acquire_queue(struct amdgpu_device *adev, uint32_t pipe_id, 64 60 uint32_t queue_id) 65 61 { 66 - struct amdgpu_device *adev = get_amdgpu_device(kgd); 67 - 68 62 uint32_t mec = (pipe_id / adev->gfx.mec.num_pipe_per_mec) + 1; 69 63 uint32_t pipe = (pipe_id % adev->gfx.mec.num_pipe_per_mec); 70 64 71 - lock_srbm(kgd, mec, pipe, queue_id, 0); 65 + lock_srbm(adev, mec, pipe, queue_id, 0); 72 66 } 73 67 74 68 static uint64_t get_queue_mask(struct amdgpu_device *adev, ··· 74 80 return 1ull << bit; 75 81 } 76 82 77 - static void release_queue(struct kgd_dev *kgd) 83 + static void release_queue(struct amdgpu_device *adev) 78 84 { 79 - unlock_srbm(kgd); 85 + unlock_srbm(adev); 80 86 } 81 87 82 88 static void program_sh_mem_settings_v10_3(struct kgd_dev *kgd, uint32_t vmid, ··· 87 93 { 88 94 struct amdgpu_device *adev = get_amdgpu_device(kgd); 89 95 90 - lock_srbm(kgd, 0, 0, 0, vmid); 96 + lock_srbm(adev, 0, 0, 0, vmid); 91 97 92 98 WREG32_SOC15(GC, 0, mmSH_MEM_CONFIG, sh_mem_config); 93 99 WREG32_SOC15(GC, 0, mmSH_MEM_BASES, sh_mem_bases); 94 100 /* APE1 no longer exists on GFX9 */ 95 101 96 - unlock_srbm(kgd); 102 + unlock_srbm(adev); 97 103 } 98 104 99 105 /* ATC is defeatured on Sienna_Cichlid */ ··· 121 127 mec = (pipe_id / adev->gfx.mec.num_pipe_per_mec) + 1; 122 128 pipe = (pipe_id % adev->gfx.mec.num_pipe_per_mec); 123 129 124 - lock_srbm(kgd, mec, pipe, 0, 0); 130 + lock_srbm(adev, mec, pipe, 0, 0); 125 131 126 132 WREG32_SOC15(GC, 0, mmCPC_INT_CNTL, 127 133 CP_INT_CNTL_RING0__TIME_STAMP_INT_ENABLE_MASK | 128 134 CP_INT_CNTL_RING0__OPCODE_ERROR_INT_ENABLE_MASK); 129 135 130 - unlock_srbm(kgd); 136 + unlock_srbm(adev); 131 137 132 138 return 0; 133 139 } ··· 195 201 m = get_mqd(mqd); 196 202 197 203 pr_debug("Load hqd of pipe %d queue %d\n", pipe_id, queue_id); 198 - acquire_queue(kgd, pipe_id, queue_id); 204 + acquire_queue(adev, pipe_id, queue_id); 199 205 200 206 /* HIQ is set during driver init period with vmid set to 0*/ 201 207 if (m->cp_hqd_vmid == 0) { ··· 275 281 data = REG_SET_FIELD(m->cp_hqd_active, CP_HQD_ACTIVE, ACTIVE, 1); 276 282 WREG32_SOC15(GC, 0, mmCP_HQD_ACTIVE, data); 277 283 278 - release_queue(kgd); 284 + release_queue(adev); 279 285 280 286 return 0; 281 287 } ··· 292 298 293 299 m = get_mqd(mqd); 294 300 295 - acquire_queue(kgd, pipe_id, queue_id); 301 + acquire_queue(adev, pipe_id, queue_id); 296 302 297 303 mec = (pipe_id / adev->gfx.mec.num_pipe_per_mec) + 1; 298 304 pipe = (pipe_id % adev->gfx.mec.num_pipe_per_mec); ··· 328 334 329 335 out_unlock: 330 336 spin_unlock(&adev->gfx.kiq.ring_lock); 331 - release_queue(kgd); 337 + release_queue(adev); 332 338 333 339 return r; 334 340 } ··· 351 357 if (*dump == NULL) 352 358 return -ENOMEM; 353 359 354 - acquire_queue(kgd, pipe_id, queue_id); 360 + acquire_queue(adev, pipe_id, queue_id); 355 361 356 362 for (reg = SOC15_REG_OFFSET(GC, 0, mmCP_MQD_BASE_ADDR); 357 363 reg <= SOC15_REG_OFFSET(GC, 0, mmCP_HQD_PQ_WPTR_HI); reg++) 358 364 DUMP_REG(reg); 359 365 360 - release_queue(kgd); 366 + release_queue(adev); 361 367 362 368 WARN_ON_ONCE(i != HQD_N_REGS); 363 369 *n_regs = i; ··· 475 481 bool retval = false; 476 482 uint32_t low, high; 477 483 478 - acquire_queue(kgd, pipe_id, queue_id); 484 + acquire_queue(adev, pipe_id, queue_id); 479 485 act = RREG32_SOC15(GC, 0, mmCP_HQD_ACTIVE); 480 486 if (act) { 481 487 low = lower_32_bits(queue_address >> 8); ··· 485 491 high == RREG32_SOC15(GC, 0, mmCP_HQD_PQ_BASE_HI)) 486 492 retval = true; 487 493 } 488 - release_queue(kgd); 494 + release_queue(adev); 489 495 return retval; 490 496 } 491 497 ··· 519 525 uint32_t temp; 520 526 struct v10_compute_mqd *m = get_mqd(mqd); 521 527 522 - acquire_queue(kgd, pipe_id, queue_id); 528 + acquire_queue(adev, pipe_id, queue_id); 523 529 524 530 if (m->cp_hqd_vmid == 0) 525 531 WREG32_FIELD15(GC, 0, RLC_CP_SCHEDULERS, scheduler1, 0); ··· 549 555 if (time_after(jiffies, end_jiffies)) { 550 556 pr_err("cp queue pipe %d queue %d preemption failed\n", 551 557 pipe_id, queue_id); 552 - release_queue(kgd); 558 + release_queue(adev); 553 559 return -ETIME; 554 560 } 555 561 usleep_range(500, 1000); 556 562 } 557 563 558 - release_queue(kgd); 564 + release_queue(adev); 559 565 return 0; 560 566 } 561 567 ··· 660 666 { 661 667 struct amdgpu_device *adev = get_amdgpu_device(kgd); 662 668 663 - lock_srbm(kgd, 0, 0, 0, vmid); 669 + lock_srbm(adev, 0, 0, 0, vmid); 664 670 665 671 /* 666 672 * Program TBA registers ··· 679 685 WREG32(SOC15_REG_OFFSET(GC, 0, mmSQ_SHADER_TMA_HI), 680 686 upper_32_bits(tma_addr >> 8)); 681 687 682 - unlock_srbm(kgd); 688 + unlock_srbm(adev); 683 689 } 684 690 685 691 #if 0