On 2016å¹´12æ??20æ?¥ 17:48, Xiangliang Yu wrote: > + if (kiq->eop_obj == NULL) { > + r = amdgpu_bo_create(adev, > + MEC_HPD_SIZE, > + PAGE_SIZE, true, > + AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL, > + &kiq->eop_obj); > + if (r) { > + dev_warn(adev->dev, "(%d) create HDP EOP bo failed\n", r); > + return r; > + } > + } > + > + r = amdgpu_bo_reserve(kiq->eop_obj, false); > + if (unlikely(r != 0)) { > + gfx_v8_0_kiq_fini(adev); > + return r; > + } > + > + r = amdgpu_bo_pin(kiq->eop_obj, AMDGPU_GEM_DOMAIN_GTT, > + &kiq->eop_gpu_addr); > + if (r) { > + dev_warn(adev->dev, "(%d) pin HDP EOP bo failed\n", r); > + gfx_v8_0_kiq_fini(adev); > + return r; > + } > + > + r = amdgpu_bo_kmap(kiq->eop_obj, (void **)&hpd); you can use amdgpu_bo_create/free_kernel helper to do these. Regards, David Zhou