aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2017-03-23 13:00:20 -0400
committerAlex Deucher <alexander.deucher@amd.com>2017-03-29 23:54:13 -0400
commita2140e00e0b8c90b380497f3af3532ba0408213e (patch)
treee52da24f45d1fc22362e1b176effcf59dc387c5a /drivers/gpu/drm/amd/amdgpu
parent345346108bdca312b3458374a7fac833490a1303 (diff)
drm/amdgpu/gfx8: further KIQ parameter cleanup
The ring structure already has what we need. Reviewed-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')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c24
1 files changed, 11 insertions, 13 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
index 4241e3254d20..1e177cd9b46b 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
@@ -4694,10 +4694,10 @@ static void gfx_v8_0_map_queue_enable(struct amdgpu_ring *kiq_ring,
4694 udelay(50); 4694 udelay(50);
4695} 4695}
4696 4696
4697static int gfx_v8_0_mqd_init(struct amdgpu_ring *ring, 4697static int gfx_v8_0_mqd_init(struct amdgpu_ring *ring)
4698 struct vi_mqd *mqd)
4699{ 4698{
4700 struct amdgpu_device *adev = ring->adev; 4699 struct amdgpu_device *adev = ring->adev;
4700 struct vi_mqd *mqd = ring->mqd_ptr;
4701 uint64_t hqd_gpu_addr, wb_gpu_addr, eop_base_addr; 4701 uint64_t hqd_gpu_addr, wb_gpu_addr, eop_base_addr;
4702 uint32_t tmp; 4702 uint32_t tmp;
4703 4703
@@ -4812,10 +4812,10 @@ static int gfx_v8_0_mqd_init(struct amdgpu_ring *ring,
4812 return 0; 4812 return 0;
4813} 4813}
4814 4814
4815static int gfx_v8_0_kiq_init_register(struct amdgpu_ring *ring, 4815static int gfx_v8_0_kiq_init_register(struct amdgpu_ring *ring)
4816 struct vi_mqd *mqd)
4817{ 4816{
4818 struct amdgpu_device *adev = ring->adev; 4817 struct amdgpu_device *adev = ring->adev;
4818 struct vi_mqd *mqd = ring->mqd_ptr;
4819 uint32_t tmp; 4819 uint32_t tmp;
4820 int j; 4820 int j;
4821 4821
@@ -4903,11 +4903,11 @@ static int gfx_v8_0_kiq_init_register(struct amdgpu_ring *ring,
4903 return 0; 4903 return 0;
4904} 4904}
4905 4905
4906static int gfx_v8_0_kiq_init_queue(struct amdgpu_ring *ring, 4906static int gfx_v8_0_kiq_init_queue(struct amdgpu_ring *ring)
4907 struct vi_mqd *mqd)
4908{ 4907{
4909 struct amdgpu_device *adev = ring->adev; 4908 struct amdgpu_device *adev = ring->adev;
4910 struct amdgpu_kiq *kiq = &adev->gfx.kiq; 4909 struct amdgpu_kiq *kiq = &adev->gfx.kiq;
4910 struct vi_mqd *mqd = ring->mqd_ptr;
4911 bool is_kiq = (ring->funcs->type == AMDGPU_RING_TYPE_KIQ); 4911 bool is_kiq = (ring->funcs->type == AMDGPU_RING_TYPE_KIQ);
4912 int mqd_idx = AMDGPU_MAX_COMPUTE_RINGS; 4912 int mqd_idx = AMDGPU_MAX_COMPUTE_RINGS;
4913 4913
@@ -4921,9 +4921,9 @@ static int gfx_v8_0_kiq_init_queue(struct amdgpu_ring *ring,
4921 memset((void *)mqd, 0, sizeof(*mqd)); 4921 memset((void *)mqd, 0, sizeof(*mqd));
4922 mutex_lock(&adev->srbm_mutex); 4922 mutex_lock(&adev->srbm_mutex);
4923 vi_srbm_select(adev, ring->me, ring->pipe, ring->queue, 0); 4923 vi_srbm_select(adev, ring->me, ring->pipe, ring->queue, 0);
4924 gfx_v8_0_mqd_init(ring, mqd); 4924 gfx_v8_0_mqd_init(ring);
4925 if (is_kiq) 4925 if (is_kiq)
4926 gfx_v8_0_kiq_init_register(ring, mqd); 4926 gfx_v8_0_kiq_init_register(ring);
4927 vi_srbm_select(adev, 0, 0, 0, 0); 4927 vi_srbm_select(adev, 0, 0, 0, 0);
4928 mutex_unlock(&adev->srbm_mutex); 4928 mutex_unlock(&adev->srbm_mutex);
4929 4929
@@ -4941,7 +4941,7 @@ static int gfx_v8_0_kiq_init_queue(struct amdgpu_ring *ring,
4941 if (is_kiq) { 4941 if (is_kiq) {
4942 mutex_lock(&adev->srbm_mutex); 4942 mutex_lock(&adev->srbm_mutex);
4943 vi_srbm_select(adev, ring->me, ring->pipe, ring->queue, 0); 4943 vi_srbm_select(adev, ring->me, ring->pipe, ring->queue, 0);
4944 gfx_v8_0_kiq_init_register(ring, mqd); 4944 gfx_v8_0_kiq_init_register(ring);
4945 vi_srbm_select(adev, 0, 0, 0, 0); 4945 vi_srbm_select(adev, 0, 0, 0, 0);
4946 mutex_unlock(&adev->srbm_mutex); 4946 mutex_unlock(&adev->srbm_mutex);
4947 } 4947 }
@@ -4970,8 +4970,7 @@ static int gfx_v8_0_kiq_resume(struct amdgpu_device *adev)
4970 4970
4971 r = amdgpu_bo_kmap(ring->mqd_obj, &ring->mqd_ptr); 4971 r = amdgpu_bo_kmap(ring->mqd_obj, &ring->mqd_ptr);
4972 if (!r) { 4972 if (!r) {
4973 r = gfx_v8_0_kiq_init_queue(ring, 4973 r = gfx_v8_0_kiq_init_queue(ring);
4974 (struct vi_mqd *)ring->mqd_ptr);
4975 amdgpu_bo_kunmap(ring->mqd_obj); 4974 amdgpu_bo_kunmap(ring->mqd_obj);
4976 ring->mqd_ptr = NULL; 4975 ring->mqd_ptr = NULL;
4977 } 4976 }
@@ -4994,8 +4993,7 @@ static int gfx_v8_0_kiq_resume(struct amdgpu_device *adev)
4994 goto done; 4993 goto done;
4995 r = amdgpu_bo_kmap(ring->mqd_obj, &ring->mqd_ptr); 4994 r = amdgpu_bo_kmap(ring->mqd_obj, &ring->mqd_ptr);
4996 if (!r) { 4995 if (!r) {
4997 r = gfx_v8_0_kiq_init_queue(ring, 4996 r = gfx_v8_0_kiq_init_queue(ring);
4998 (struct vi_mqd *)ring->mqd_ptr);
4999 amdgpu_bo_kunmap(ring->mqd_obj); 4997 amdgpu_bo_kunmap(ring->mqd_obj);
5000 ring->mqd_ptr = NULL; 4998 ring->mqd_ptr = NULL;
5001 } 4999 }