tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: f68868ba718e30594165879cc3020607165b0761 commit: 075b44aa210bd8be1c2c23ba742218fc4fc2bfa8 [9749/10134] drm/amdgpu: Add gmc v12_0 ip block support (v7) config: loongarch-allmodconfig (https://download.01.org/0day-ci/archive/20240501/202405012128.UZdRC5sp-lkp@xxxxxxxxx/config) compiler: loongarch64-linux-gcc (GCC) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240501/202405012128.UZdRC5sp-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202405012128.UZdRC5sp-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): >> drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c:290: warning: Function parameter or struct member 'vmhub' not described in 'gmc_v12_0_flush_gpu_tlb' >> drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c:290: warning: Function parameter or struct member 'flush_type' not described in 'gmc_v12_0_flush_gpu_tlb' >> drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c:330: warning: Function parameter or struct member 'flush_type' not described in 'gmc_v12_0_flush_gpu_tlb_pasid' >> drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c:330: warning: Function parameter or struct member 'all_hub' not described in 'gmc_v12_0_flush_gpu_tlb_pasid' >> drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c:330: warning: Function parameter or struct member 'inst' not described in 'gmc_v12_0_flush_gpu_tlb_pasid' vim +290 drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c 279 280 /** 281 * gmc_v12_0_flush_gpu_tlb - gart tlb flush callback 282 * 283 * @adev: amdgpu_device pointer 284 * @vmid: vm instance to flush 285 * 286 * Flush the TLB for the requested page table. 287 */ 288 static void gmc_v12_0_flush_gpu_tlb(struct amdgpu_device *adev, uint32_t vmid, 289 uint32_t vmhub, uint32_t flush_type) > 290 { 291 if ((vmhub == AMDGPU_GFXHUB(0)) && !adev->gfx.is_poweron) 292 return; 293 294 /* flush hdp cache */ 295 adev->hdp.funcs->flush_hdp(adev, NULL); 296 297 /* This is necessary for SRIOV as well as for GFXOFF to function 298 * properly under bare metal 299 */ 300 if ((adev->gfx.kiq[0].ring.sched.ready || adev->mes.ring.sched.ready) && 301 (amdgpu_sriov_runtime(adev) || !amdgpu_sriov_vf(adev))) { 302 struct amdgpu_vmhub *hub = &adev->vmhub[vmhub]; 303 const unsigned eng = 17; 304 u32 inv_req = hub->vmhub_funcs->get_invalidate_req(vmid, flush_type); 305 u32 req = hub->vm_inv_eng0_req + hub->eng_distance * eng; 306 u32 ack = hub->vm_inv_eng0_ack + hub->eng_distance * eng; 307 308 amdgpu_gmc_fw_reg_write_reg_wait(adev, req, ack, inv_req, 309 1 << vmid, GET_INST(GC, 0)); 310 return; 311 } 312 313 mutex_lock(&adev->mman.gtt_window_lock); 314 gmc_v12_0_flush_vm_hub(adev, vmid, vmhub, 0); 315 mutex_unlock(&adev->mman.gtt_window_lock); 316 return; 317 } 318 319 /** 320 * gmc_v12_0_flush_gpu_tlb_pasid - tlb flush via pasid 321 * 322 * @adev: amdgpu_device pointer 323 * @pasid: pasid to be flush 324 * 325 * Flush the TLB for the requested pasid. 326 */ 327 static void gmc_v12_0_flush_gpu_tlb_pasid(struct amdgpu_device *adev, 328 uint16_t pasid, uint32_t flush_type, 329 bool all_hub, uint32_t inst) > 330 { 331 uint16_t queried; 332 int vmid, i; 333 334 for (vmid = 1; vmid < 16; vmid++) { 335 bool valid; 336 337 valid = gmc_v12_0_get_vmid_pasid_mapping_info(adev, vmid, 338 &queried); 339 if (!valid || queried != pasid) 340 continue; 341 342 if (all_hub) { 343 for_each_set_bit(i, adev->vmhubs_mask, 344 AMDGPU_MAX_VMHUBS) 345 gmc_v12_0_flush_gpu_tlb(adev, vmid, i, 346 flush_type); 347 } else { 348 gmc_v12_0_flush_gpu_tlb(adev, vmid, AMDGPU_GFXHUB(0), 349 flush_type); 350 } 351 } 352 } 353 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki