aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
diff options
context:
space:
mode:
authorMonk Liu <Monk.Liu@amd.com>2017-09-21 03:10:06 -0400
committerAlex Deucher <alexander.deucher@amd.com>2017-09-26 15:14:24 -0400
commitbeb841028480a13a664f868688102f3cee762a6b (patch)
treea54f9fc03362135a922032415c709b9bd3c02478 /drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
parent85f95ad629558b65ab27cce583c683fb9e3da35c (diff)
drm/amdgpu/sriov:alloc KIQ MQD in VRAM(v2)
this way after KIQ MQD released in drv unloading, CPC can still let KIQ access this MQD thus RLCV SAVE_VF will not fail v2: always use VRAM domain for KIQ MQD no matter BM or SRIOV Signed-off-by: Monk Liu <Monk.Liu@amd.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
index 4f6c68fc1dd9..4fcd98e65998 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
@@ -260,8 +260,13 @@ int amdgpu_gfx_compute_mqd_sw_init(struct amdgpu_device *adev,
260 /* create MQD for KIQ */ 260 /* create MQD for KIQ */
261 ring = &adev->gfx.kiq.ring; 261 ring = &adev->gfx.kiq.ring;
262 if (!ring->mqd_obj) { 262 if (!ring->mqd_obj) {
263 /* originaly the KIQ MQD is put in GTT domain, but for SRIOV VRAM domain is a must
264 * otherwise hypervisor trigger SAVE_VF fail after driver unloaded which mean MQD
265 * deallocated and gart_unbind, to strict diverage we decide to use VRAM domain for
266 * KIQ MQD no matter SRIOV or Bare-metal
267 */
263 r = amdgpu_bo_create_kernel(adev, mqd_size, PAGE_SIZE, 268 r = amdgpu_bo_create_kernel(adev, mqd_size, PAGE_SIZE,
264 AMDGPU_GEM_DOMAIN_GTT, &ring->mqd_obj, 269 AMDGPU_GEM_DOMAIN_VRAM, &ring->mqd_obj,
265 &ring->mqd_gpu_addr, &ring->mqd_ptr); 270 &ring->mqd_gpu_addr, &ring->mqd_ptr);
266 if (r) { 271 if (r) {
267 dev_warn(adev->dev, "failed to create ring mqd ob (%d)", r); 272 dev_warn(adev->dev, "failed to create ring mqd ob (%d)", r);