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>
This commit is contained in:
parent
7c23ace2db
commit
f06505b8d2
|
@ -313,6 +313,9 @@ struct amdgpu_ring_funcs {
|
|||
void (*pad_ib)(struct amdgpu_ring *ring, struct amdgpu_ib *ib);
|
||||
unsigned (*init_cond_exec)(struct amdgpu_ring *ring);
|
||||
void (*patch_cond_exec)(struct amdgpu_ring *ring, unsigned offset);
|
||||
/* note usage for clock and power gating */
|
||||
void (*begin_use)(struct amdgpu_ring *ring);
|
||||
void (*end_use)(struct amdgpu_ring *ring);
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
@ -75,6 +75,10 @@ int amdgpu_ring_alloc(struct amdgpu_ring *ring, unsigned ndw)
|
|||
|
||||
ring->count_dw = ndw;
|
||||
ring->wptr_old = ring->wptr;
|
||||
|
||||
if (ring->funcs->begin_use)
|
||||
ring->funcs->begin_use(ring);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -127,6 +131,9 @@ void amdgpu_ring_commit(struct amdgpu_ring *ring)
|
|||
|
||||
mb();
|
||||
amdgpu_ring_set_wptr(ring);
|
||||
|
||||
if (ring->funcs->end_use)
|
||||
ring->funcs->end_use(ring);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -139,6 +146,9 @@ void amdgpu_ring_commit(struct amdgpu_ring *ring)
|
|||
void amdgpu_ring_undo(struct amdgpu_ring *ring)
|
||||
{
|
||||
ring->wptr = ring->wptr_old;
|
||||
|
||||
if (ring->funcs->end_use)
|
||||
ring->funcs->end_use(ring);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue