Am 16.02.2017 um 08:25 schrieb Xiangliang Yu: > vi_mqd is only used by VI family but mqd_ptr is common for all > ASIC, so change the pointer to void. > > Signed-off-by: Xiangliang Yu <Xiangliang.Yu at amd.com> Nice cleanup, patch is Reviewed-by: Christian König <christian.koenig at amd.com>. Patch #2 and #3 are Acked-by: Christian König <christian.koenig at amd.com>. Regards, Christian. > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 2 +- > drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 26 +++++++++++++++++--------- > 2 files changed, 18 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h > index 3fd4ce8..a1bfc4e 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 772c42b..2202f02 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); > +}