diff options
author | Christian König <christian.koenig@amd.com> | 2016-07-20 07:49:34 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2016-07-29 14:37:02 -0400 |
commit | f06505b8d27119202d76aeb1b80b2ca352c9567e (patch) | |
tree | 6d6cba5cd07c7b436ce32ba13d4463ee6b3c5d80 /drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | |
parent | 7c23ace2db5217cfbe066a21d98b761321c67efd (diff) |
drm/amdgpu: add begin/end_use ring callbacks
For manual UVD/VCE power and clock gating.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c index f305f6309e8e..85aeb0a804bb 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | |||
@@ -75,6 +75,10 @@ int amdgpu_ring_alloc(struct amdgpu_ring *ring, unsigned ndw) | |||
75 | 75 | ||
76 | ring->count_dw = ndw; | 76 | ring->count_dw = ndw; |
77 | ring->wptr_old = ring->wptr; | 77 | ring->wptr_old = ring->wptr; |
78 | |||
79 | if (ring->funcs->begin_use) | ||
80 | ring->funcs->begin_use(ring); | ||
81 | |||
78 | return 0; | 82 | return 0; |
79 | } | 83 | } |
80 | 84 | ||
@@ -127,6 +131,9 @@ void amdgpu_ring_commit(struct amdgpu_ring *ring) | |||
127 | 131 | ||
128 | mb(); | 132 | mb(); |
129 | amdgpu_ring_set_wptr(ring); | 133 | amdgpu_ring_set_wptr(ring); |
134 | |||
135 | if (ring->funcs->end_use) | ||
136 | ring->funcs->end_use(ring); | ||
130 | } | 137 | } |
131 | 138 | ||
132 | /** | 139 | /** |
@@ -139,6 +146,9 @@ void amdgpu_ring_commit(struct amdgpu_ring *ring) | |||
139 | void amdgpu_ring_undo(struct amdgpu_ring *ring) | 146 | void amdgpu_ring_undo(struct amdgpu_ring *ring) |
140 | { | 147 | { |
141 | ring->wptr = ring->wptr_old; | 148 | ring->wptr = ring->wptr_old; |
149 | |||
150 | if (ring->funcs->end_use) | ||
151 | ring->funcs->end_use(ring); | ||
142 | } | 152 | } |
143 | 153 | ||
144 | /** | 154 | /** |