diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h index fa831a8030e4c3414f94e90c609d3399df09d0a5..80ab8516db7cba4207a90ac37e8e986064f92e5e 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h @@ -783,7 +783,7 @@ struct amdgpu_mec { u32 num_pipe; u32 num_mec; u32 num_queue; - struct vi_mqd *mqd_backup[AMDGPU_MAX_COMPUTE_RINGS + 1]; + void *mqd_backup[AMDGPU_MAX_COMPUTE_RINGS + 1]; }; struct amdgpu_kiq { diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h index 5d0f7c52fc015fcc914350bdab574bc0f0dbbcc2..da702dc6e2e58c862aabc7c3a05f71edcee34677 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h @@ -162,7 +162,7 @@ struct amdgpu_ring { u32 queue; struct amdgpu_bo *mqd_obj; uint64_t mqd_gpu_addr; - struct vi_mqd *mqd_ptr; + void *mqd_ptr; u32 doorbell_index; bool use_doorbell; unsigned wptr_offs; diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c index 61e23926eb7f34fb93037e2b8435a2d673118db9..8c4b40002dd607ea40f83c00200afc9cc80768a5 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c @@ -4940,8 +4940,10 @@ static int gfx_v8_0_kiq_resume(struct amdgpu_device *adev) gfx_v8_0_cp_compute_enable(adev, true); ring = &adev->gfx.kiq.ring; - if (!amdgpu_bo_kmap(ring->mqd_obj, (void **)&ring->mqd_ptr)) { - r = gfx_v8_0_kiq_init_queue(ring, ring->mqd_ptr, ring->mqd_gpu_addr); + if (!amdgpu_bo_kmap(ring->mqd_obj, &ring->mqd_ptr)) { + r = gfx_v8_0_kiq_init_queue(ring, + (struct vi_mqd *)ring->mqd_ptr, + ring->mqd_gpu_addr); amdgpu_bo_kunmap(ring->mqd_obj); ring->mqd_ptr = NULL; if (r) @@ -4952,8 +4954,10 @@ static int gfx_v8_0_kiq_resume(struct amdgpu_device *adev) for (i = 0; i < adev->gfx.num_compute_rings; i++) { ring = &adev->gfx.compute_ring[i]; - if (!amdgpu_bo_kmap(ring->mqd_obj, (void **)&ring->mqd_ptr)) { - r = gfx_v8_0_kiq_init_queue(ring, ring->mqd_ptr, ring->mqd_gpu_addr); + if (!amdgpu_bo_kmap(ring->mqd_obj, &ring->mqd_ptr)) { + r = gfx_v8_0_kiq_init_queue(ring, + (struct vi_mqd *)ring->mqd_ptr, + ring->mqd_gpu_addr); amdgpu_bo_kunmap(ring->mqd_obj); ring->mqd_ptr = NULL; if (r) @@ -7333,7 +7337,7 @@ static int gfx_v8_0_compute_mqd_soft_init(struct amdgpu_device *adev) if (!ring->mqd_obj) { r = amdgpu_bo_create_kernel(adev, sizeof(struct vi_mqd), PAGE_SIZE, AMDGPU_GEM_DOMAIN_GTT, &ring->mqd_obj, - &ring->mqd_gpu_addr, (void **)&ring->mqd_ptr); + &ring->mqd_gpu_addr, &ring->mqd_ptr); if (r) { dev_warn(adev->dev, "failed to create ring mqd ob (%d)", r); return r; @@ -7352,7 +7356,7 @@ static int gfx_v8_0_compute_mqd_soft_init(struct amdgpu_device *adev) if (!ring->mqd_obj) { r = amdgpu_bo_create_kernel(adev, sizeof(struct vi_mqd), PAGE_SIZE, AMDGPU_GEM_DOMAIN_GTT, &ring->mqd_obj, - &ring->mqd_gpu_addr, (void **)&ring->mqd_ptr); + &ring->mqd_gpu_addr, &ring->mqd_ptr); if (r) { dev_warn(adev->dev, "failed to create ring mqd ob (%d)", r); return r; @@ -7375,9 +7379,13 @@ static void gfx_v8_0_compute_mqd_soft_fini(struct amdgpu_device *adev) for (i = 0; i < adev->gfx.num_compute_rings; i++) { ring = &adev->gfx.compute_ring[i]; - amdgpu_bo_free_kernel(&ring->mqd_obj, &ring->mqd_gpu_addr, (void **)&ring->mqd_ptr); + amdgpu_bo_free_kernel(&ring->mqd_obj, + &ring->mqd_gpu_addr, + &ring->mqd_ptr); } ring = &adev->gfx.kiq.ring; - amdgpu_bo_free_kernel(&ring->mqd_obj, &ring->mqd_gpu_addr, (void **)&ring->mqd_ptr); -} \ No newline at end of file + amdgpu_bo_free_kernel(&ring->mqd_obj, + &ring->mqd_gpu_addr, + &ring->mqd_ptr); +}