diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2017-03-23 13:00:20 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2017-03-29 23:54:13 -0400 |
commit | a2140e00e0b8c90b380497f3af3532ba0408213e (patch) | |
tree | e52da24f45d1fc22362e1b176effcf59dc387c5a /drivers/gpu/drm/amd/amdgpu | |
parent | 345346108bdca312b3458374a7fac833490a1303 (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.c | 24 |
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 | ||
4697 | static int gfx_v8_0_mqd_init(struct amdgpu_ring *ring, | 4697 | static 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 | ||
4815 | static int gfx_v8_0_kiq_init_register(struct amdgpu_ring *ring, | 4815 | static 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 | ||
4906 | static int gfx_v8_0_kiq_init_queue(struct amdgpu_ring *ring, | 4906 | static 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 | } |