Commit 21cd942e authored by Christian König's avatar Christian König Committed by Alex Deucher

drm/amdgpu: move the ring type into the funcs structure (v2)

It's constant, so it doesn't make to much sense to keep it
with the variable data.

v2: update vce and uvd phys mode ring structures as well
Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent e12f3d7a
...@@ -942,8 +942,8 @@ static int amdgpu_cs_ib_fill(struct amdgpu_device *adev, ...@@ -942,8 +942,8 @@ static int amdgpu_cs_ib_fill(struct amdgpu_device *adev,
/* UVD & VCE fw doesn't support user fences */ /* UVD & VCE fw doesn't support user fences */
if (parser->job->uf_addr && ( if (parser->job->uf_addr && (
parser->job->ring->type == AMDGPU_RING_TYPE_UVD || parser->job->ring->funcs->type == AMDGPU_RING_TYPE_UVD ||
parser->job->ring->type == AMDGPU_RING_TYPE_VCE)) parser->job->ring->funcs->type == AMDGPU_RING_TYPE_VCE))
return -EINVAL; return -EINVAL;
return 0; return 0;
......
...@@ -164,8 +164,7 @@ void amdgpu_ring_undo(struct amdgpu_ring *ring) ...@@ -164,8 +164,7 @@ void amdgpu_ring_undo(struct amdgpu_ring *ring)
*/ */
int amdgpu_ring_init(struct amdgpu_device *adev, struct amdgpu_ring *ring, int amdgpu_ring_init(struct amdgpu_device *adev, struct amdgpu_ring *ring,
unsigned max_dw, u32 nop, u32 align_mask, unsigned max_dw, u32 nop, u32 align_mask,
struct amdgpu_irq_src *irq_src, unsigned irq_type, struct amdgpu_irq_src *irq_src, unsigned irq_type)
enum amdgpu_ring_type ring_type)
{ {
int r; int r;
...@@ -218,7 +217,6 @@ int amdgpu_ring_init(struct amdgpu_device *adev, struct amdgpu_ring *ring, ...@@ -218,7 +217,6 @@ int amdgpu_ring_init(struct amdgpu_device *adev, struct amdgpu_ring *ring,
amdgpu_sched_hw_submission); amdgpu_sched_hw_submission);
ring->align_mask = align_mask; ring->align_mask = align_mask;
ring->nop = nop; ring->nop = nop;
ring->type = ring_type;
/* Allocate ring buffer */ /* Allocate ring buffer */
if (ring->ring_obj == NULL) { if (ring->ring_obj == NULL) {
......
...@@ -92,6 +92,8 @@ unsigned amdgpu_fence_count_emitted(struct amdgpu_ring *ring); ...@@ -92,6 +92,8 @@ unsigned amdgpu_fence_count_emitted(struct amdgpu_ring *ring);
/* provided by hw blocks that expose a ring buffer for commands */ /* provided by hw blocks that expose a ring buffer for commands */
struct amdgpu_ring_funcs { struct amdgpu_ring_funcs {
enum amdgpu_ring_type type;
/* ring read/write ptr handling */ /* ring read/write ptr handling */
u32 (*get_rptr)(struct amdgpu_ring *ring); u32 (*get_rptr)(struct amdgpu_ring *ring);
u32 (*get_wptr)(struct amdgpu_ring *ring); u32 (*get_wptr)(struct amdgpu_ring *ring);
...@@ -161,7 +163,6 @@ struct amdgpu_ring { ...@@ -161,7 +163,6 @@ struct amdgpu_ring {
unsigned wptr_offs; unsigned wptr_offs;
unsigned fence_offs; unsigned fence_offs;
uint64_t current_ctx; uint64_t current_ctx;
enum amdgpu_ring_type type;
char name[16]; char name[16];
unsigned cond_exe_offs; unsigned cond_exe_offs;
u64 cond_exe_gpu_addr; u64 cond_exe_gpu_addr;
...@@ -178,8 +179,7 @@ void amdgpu_ring_commit(struct amdgpu_ring *ring); ...@@ -178,8 +179,7 @@ void amdgpu_ring_commit(struct amdgpu_ring *ring);
void amdgpu_ring_undo(struct amdgpu_ring *ring); void amdgpu_ring_undo(struct amdgpu_ring *ring);
int amdgpu_ring_init(struct amdgpu_device *adev, struct amdgpu_ring *ring, int amdgpu_ring_init(struct amdgpu_device *adev, struct amdgpu_ring *ring,
unsigned ring_size, u32 nop, u32 align_mask, unsigned ring_size, u32 nop, u32 align_mask,
struct amdgpu_irq_src *irq_src, unsigned irq_type, struct amdgpu_irq_src *irq_src, unsigned irq_type);
enum amdgpu_ring_type ring_type);
void amdgpu_ring_fini(struct amdgpu_ring *ring); void amdgpu_ring_fini(struct amdgpu_ring *ring);
#endif #endif
...@@ -348,7 +348,7 @@ static bool amdgpu_vm_ring_has_compute_vm_bug(struct amdgpu_ring *ring) ...@@ -348,7 +348,7 @@ static bool amdgpu_vm_ring_has_compute_vm_bug(struct amdgpu_ring *ring)
struct amdgpu_device *adev = ring->adev; struct amdgpu_device *adev = ring->adev;
const struct amdgpu_ip_block_version *ip_block; const struct amdgpu_ip_block_version *ip_block;
if (ring->type != AMDGPU_RING_TYPE_COMPUTE) if (ring->funcs->type != AMDGPU_RING_TYPE_COMPUTE)
/* only compute rings */ /* only compute rings */
return false; return false;
......
...@@ -946,8 +946,8 @@ static int cik_sdma_sw_init(void *handle) ...@@ -946,8 +946,8 @@ static int cik_sdma_sw_init(void *handle)
SDMA_PACKET(SDMA_OPCODE_NOP, 0, 0), 0xf, SDMA_PACKET(SDMA_OPCODE_NOP, 0, 0), 0xf,
&adev->sdma.trap_irq, &adev->sdma.trap_irq,
(i == 0) ? (i == 0) ?
AMDGPU_SDMA_IRQ_TRAP0 : AMDGPU_SDMA_IRQ_TRAP1, AMDGPU_SDMA_IRQ_TRAP0 :
AMDGPU_RING_TYPE_SDMA); AMDGPU_SDMA_IRQ_TRAP1);
if (r) if (r)
return r; return r;
} }
...@@ -1209,6 +1209,7 @@ const struct amd_ip_funcs cik_sdma_ip_funcs = { ...@@ -1209,6 +1209,7 @@ const struct amd_ip_funcs cik_sdma_ip_funcs = {
}; };
static const struct amdgpu_ring_funcs cik_sdma_ring_funcs = { static const struct amdgpu_ring_funcs cik_sdma_ring_funcs = {
.type = AMDGPU_RING_TYPE_SDMA,
.get_rptr = cik_sdma_ring_get_rptr, .get_rptr = cik_sdma_ring_get_rptr,
.get_wptr = cik_sdma_ring_get_wptr, .get_wptr = cik_sdma_ring_get_wptr,
.set_wptr = cik_sdma_ring_set_wptr, .set_wptr = cik_sdma_ring_set_wptr,
......
...@@ -1940,7 +1940,7 @@ static int gfx_v6_0_cp_resume(struct amdgpu_device *adev) ...@@ -1940,7 +1940,7 @@ static int gfx_v6_0_cp_resume(struct amdgpu_device *adev)
static void gfx_v6_0_ring_emit_pipeline_sync(struct amdgpu_ring *ring) static void gfx_v6_0_ring_emit_pipeline_sync(struct amdgpu_ring *ring)
{ {
int usepfp = (ring->type == AMDGPU_RING_TYPE_GFX); int usepfp = (ring->funcs->type == AMDGPU_RING_TYPE_GFX);
uint32_t seq = ring->fence_drv.sync_seq; uint32_t seq = ring->fence_drv.sync_seq;
uint64_t addr = ring->fence_drv.gpu_addr; uint64_t addr = ring->fence_drv.gpu_addr;
...@@ -1966,7 +1966,7 @@ static void gfx_v6_0_ring_emit_pipeline_sync(struct amdgpu_ring *ring) ...@@ -1966,7 +1966,7 @@ static void gfx_v6_0_ring_emit_pipeline_sync(struct amdgpu_ring *ring)
static void gfx_v6_0_ring_emit_vm_flush(struct amdgpu_ring *ring, static void gfx_v6_0_ring_emit_vm_flush(struct amdgpu_ring *ring,
unsigned vm_id, uint64_t pd_addr) unsigned vm_id, uint64_t pd_addr)
{ {
int usepfp = (ring->type == AMDGPU_RING_TYPE_GFX); int usepfp = (ring->funcs->type == AMDGPU_RING_TYPE_GFX);
/* write new base address */ /* write new base address */
amdgpu_ring_write(ring, PACKET3(PACKET3_WRITE_DATA, 3)); amdgpu_ring_write(ring, PACKET3(PACKET3_WRITE_DATA, 3));
...@@ -2870,8 +2870,7 @@ static int gfx_v6_0_sw_init(void *handle) ...@@ -2870,8 +2870,7 @@ static int gfx_v6_0_sw_init(void *handle)
sprintf(ring->name, "gfx"); sprintf(ring->name, "gfx");
r = amdgpu_ring_init(adev, ring, 1024, r = amdgpu_ring_init(adev, ring, 1024,
0x80000000, 0xff, 0x80000000, 0xff,
&adev->gfx.eop_irq, AMDGPU_CP_IRQ_GFX_EOP, &adev->gfx.eop_irq, AMDGPU_CP_IRQ_GFX_EOP);
AMDGPU_RING_TYPE_GFX);
if (r) if (r)
return r; return r;
} }
...@@ -2894,8 +2893,7 @@ static int gfx_v6_0_sw_init(void *handle) ...@@ -2894,8 +2893,7 @@ static int gfx_v6_0_sw_init(void *handle)
irq_type = AMDGPU_CP_IRQ_COMPUTE_MEC1_PIPE0_EOP + ring->pipe; irq_type = AMDGPU_CP_IRQ_COMPUTE_MEC1_PIPE0_EOP + ring->pipe;
r = amdgpu_ring_init(adev, ring, 1024, r = amdgpu_ring_init(adev, ring, 1024,
0x80000000, 0xff, 0x80000000, 0xff,
&adev->gfx.eop_irq, irq_type, &adev->gfx.eop_irq, irq_type);
AMDGPU_RING_TYPE_COMPUTE);
if (r) if (r)
return r; return r;
} }
...@@ -3228,6 +3226,7 @@ const struct amd_ip_funcs gfx_v6_0_ip_funcs = { ...@@ -3228,6 +3226,7 @@ const struct amd_ip_funcs gfx_v6_0_ip_funcs = {
}; };
static const struct amdgpu_ring_funcs gfx_v6_0_ring_funcs_gfx = { static const struct amdgpu_ring_funcs gfx_v6_0_ring_funcs_gfx = {
.type = AMDGPU_RING_TYPE_GFX,
.get_rptr = gfx_v6_0_ring_get_rptr, .get_rptr = gfx_v6_0_ring_get_rptr,
.get_wptr = gfx_v6_0_ring_get_wptr, .get_wptr = gfx_v6_0_ring_get_wptr,
.set_wptr = gfx_v6_0_ring_set_wptr_gfx, .set_wptr = gfx_v6_0_ring_set_wptr_gfx,
...@@ -3252,6 +3251,7 @@ static const struct amdgpu_ring_funcs gfx_v6_0_ring_funcs_gfx = { ...@@ -3252,6 +3251,7 @@ static const struct amdgpu_ring_funcs gfx_v6_0_ring_funcs_gfx = {
}; };
static const struct amdgpu_ring_funcs gfx_v6_0_ring_funcs_compute = { static const struct amdgpu_ring_funcs gfx_v6_0_ring_funcs_compute = {
.type = AMDGPU_RING_TYPE_COMPUTE,
.get_rptr = gfx_v6_0_ring_get_rptr, .get_rptr = gfx_v6_0_ring_get_rptr,
.get_wptr = gfx_v6_0_ring_get_wptr, .get_wptr = gfx_v6_0_ring_get_wptr,
.set_wptr = gfx_v6_0_ring_set_wptr_compute, .set_wptr = gfx_v6_0_ring_set_wptr_compute,
......
...@@ -2077,9 +2077,9 @@ static int gfx_v7_0_ring_test_ring(struct amdgpu_ring *ring) ...@@ -2077,9 +2077,9 @@ static int gfx_v7_0_ring_test_ring(struct amdgpu_ring *ring)
static void gfx_v7_0_ring_emit_hdp_flush(struct amdgpu_ring *ring) static void gfx_v7_0_ring_emit_hdp_flush(struct amdgpu_ring *ring)
{ {
u32 ref_and_mask; u32 ref_and_mask;
int usepfp = ring->type == AMDGPU_RING_TYPE_COMPUTE ? 0 : 1; int usepfp = ring->funcs->type == AMDGPU_RING_TYPE_COMPUTE ? 0 : 1;
if (ring->type == AMDGPU_RING_TYPE_COMPUTE) { if (ring->funcs->type == AMDGPU_RING_TYPE_COMPUTE) {
switch (ring->me) { switch (ring->me) {
case 1: case 1:
ref_and_mask = GPU_HDP_FLUSH_DONE__CP2_MASK << ring->pipe; ref_and_mask = GPU_HDP_FLUSH_DONE__CP2_MASK << ring->pipe;
...@@ -3222,7 +3222,7 @@ static int gfx_v7_0_cp_resume(struct amdgpu_device *adev) ...@@ -3222,7 +3222,7 @@ static int gfx_v7_0_cp_resume(struct amdgpu_device *adev)
*/ */
static void gfx_v7_0_ring_emit_pipeline_sync(struct amdgpu_ring *ring) static void gfx_v7_0_ring_emit_pipeline_sync(struct amdgpu_ring *ring)
{ {
int usepfp = (ring->type == AMDGPU_RING_TYPE_GFX); int usepfp = (ring->funcs->type == AMDGPU_RING_TYPE_GFX);
uint32_t seq = ring->fence_drv.sync_seq; uint32_t seq = ring->fence_drv.sync_seq;
uint64_t addr = ring->fence_drv.gpu_addr; uint64_t addr = ring->fence_drv.gpu_addr;
...@@ -3262,7 +3262,7 @@ static void gfx_v7_0_ring_emit_pipeline_sync(struct amdgpu_ring *ring) ...@@ -3262,7 +3262,7 @@ static void gfx_v7_0_ring_emit_pipeline_sync(struct amdgpu_ring *ring)
static void gfx_v7_0_ring_emit_vm_flush(struct amdgpu_ring *ring, static void gfx_v7_0_ring_emit_vm_flush(struct amdgpu_ring *ring,
unsigned vm_id, uint64_t pd_addr) unsigned vm_id, uint64_t pd_addr)
{ {
int usepfp = (ring->type == AMDGPU_RING_TYPE_GFX); int usepfp = (ring->funcs->type == AMDGPU_RING_TYPE_GFX);
amdgpu_ring_write(ring, PACKET3(PACKET3_WRITE_DATA, 3)); amdgpu_ring_write(ring, PACKET3(PACKET3_WRITE_DATA, 3));
amdgpu_ring_write(ring, (WRITE_DATA_ENGINE_SEL(usepfp) | amdgpu_ring_write(ring, (WRITE_DATA_ENGINE_SEL(usepfp) |
...@@ -4612,8 +4612,7 @@ static int gfx_v7_0_sw_init(void *handle) ...@@ -4612,8 +4612,7 @@ static int gfx_v7_0_sw_init(void *handle)
sprintf(ring->name, "gfx"); sprintf(ring->name, "gfx");
r = amdgpu_ring_init(adev, ring, 1024, r = amdgpu_ring_init(adev, ring, 1024,
PACKET3(PACKET3_NOP, 0x3FFF), 0xff, PACKET3(PACKET3_NOP, 0x3FFF), 0xff,
&adev->gfx.eop_irq, AMDGPU_CP_IRQ_GFX_EOP, &adev->gfx.eop_irq, AMDGPU_CP_IRQ_GFX_EOP);
AMDGPU_RING_TYPE_GFX);
if (r) if (r)
return r; return r;
} }
...@@ -4639,8 +4638,7 @@ static int gfx_v7_0_sw_init(void *handle) ...@@ -4639,8 +4638,7 @@ static int gfx_v7_0_sw_init(void *handle)
/* type-2 packets are deprecated on MEC, use type-3 instead */ /* type-2 packets are deprecated on MEC, use type-3 instead */
r = amdgpu_ring_init(adev, ring, 1024, r = amdgpu_ring_init(adev, ring, 1024,
PACKET3(PACKET3_NOP, 0x3FFF), 0xff, PACKET3(PACKET3_NOP, 0x3FFF), 0xff,
&adev->gfx.eop_irq, irq_type, &adev->gfx.eop_irq, irq_type);
AMDGPU_RING_TYPE_COMPUTE);
if (r) if (r)
return r; return r;
} }
...@@ -5109,6 +5107,7 @@ const struct amd_ip_funcs gfx_v7_0_ip_funcs = { ...@@ -5109,6 +5107,7 @@ const struct amd_ip_funcs gfx_v7_0_ip_funcs = {
}; };
static const struct amdgpu_ring_funcs gfx_v7_0_ring_funcs_gfx = { static const struct amdgpu_ring_funcs gfx_v7_0_ring_funcs_gfx = {
.type = AMDGPU_RING_TYPE_GFX,
.get_rptr = gfx_v7_0_ring_get_rptr, .get_rptr = gfx_v7_0_ring_get_rptr,
.get_wptr = gfx_v7_0_ring_get_wptr_gfx, .get_wptr = gfx_v7_0_ring_get_wptr_gfx,
.set_wptr = gfx_v7_0_ring_set_wptr_gfx, .set_wptr = gfx_v7_0_ring_set_wptr_gfx,
...@@ -5136,6 +5135,7 @@ static const struct amdgpu_ring_funcs gfx_v7_0_ring_funcs_gfx = { ...@@ -5136,6 +5135,7 @@ static const struct amdgpu_ring_funcs gfx_v7_0_ring_funcs_gfx = {
}; };
static const struct amdgpu_ring_funcs gfx_v7_0_ring_funcs_compute = { static const struct amdgpu_ring_funcs gfx_v7_0_ring_funcs_compute = {
.type = AMDGPU_RING_TYPE_COMPUTE,
.get_rptr = gfx_v7_0_ring_get_rptr, .get_rptr = gfx_v7_0_ring_get_rptr,
.get_wptr = gfx_v7_0_ring_get_wptr_compute, .get_wptr = gfx_v7_0_ring_get_wptr_compute,
.set_wptr = gfx_v7_0_ring_set_wptr_compute, .set_wptr = gfx_v7_0_ring_set_wptr_compute,
......
...@@ -2036,8 +2036,7 @@ static int gfx_v8_0_sw_init(void *handle) ...@@ -2036,8 +2036,7 @@ static int gfx_v8_0_sw_init(void *handle)
r = amdgpu_ring_init(adev, ring, 1024, r = amdgpu_ring_init(adev, ring, 1024,
PACKET3(PACKET3_NOP, 0x3FFF), 0xff, PACKET3(PACKET3_NOP, 0x3FFF), 0xff,
&adev->gfx.eop_irq, AMDGPU_CP_IRQ_GFX_EOP, &adev->gfx.eop_irq, AMDGPU_CP_IRQ_GFX_EOP);
AMDGPU_RING_TYPE_GFX);
if (r) if (r)
return r; return r;
} }
...@@ -2063,8 +2062,7 @@ static int gfx_v8_0_sw_init(void *handle) ...@@ -2063,8 +2062,7 @@ static int gfx_v8_0_sw_init(void *handle)
/* type-2 packets are deprecated on MEC, use type-3 instead */ /* type-2 packets are deprecated on MEC, use type-3 instead */
r = amdgpu_ring_init(adev, ring, 1024, r = amdgpu_ring_init(adev, ring, 1024,
PACKET3(PACKET3_NOP, 0x3FFF), 0xff, PACKET3(PACKET3_NOP, 0x3FFF), 0xff,
&adev->gfx.eop_irq, irq_type, &adev->gfx.eop_irq, irq_type);
AMDGPU_RING_TYPE_COMPUTE);
if (r) if (r)
return r; return r;
} }
...@@ -6127,7 +6125,7 @@ static void gfx_v8_0_ring_emit_hdp_flush(struct amdgpu_ring *ring) ...@@ -6127,7 +6125,7 @@ static void gfx_v8_0_ring_emit_hdp_flush(struct amdgpu_ring *ring)
{ {
u32 ref_and_mask, reg_mem_engine; u32 ref_and_mask, reg_mem_engine;
if (ring->type == AMDGPU_RING_TYPE_COMPUTE) { if (ring->funcs->type == AMDGPU_RING_TYPE_COMPUTE) {
switch (ring->me) { switch (ring->me) {
case 1: case 1:
ref_and_mask = GPU_HDP_FLUSH_DONE__CP2_MASK << ring->pipe; ref_and_mask = GPU_HDP_FLUSH_DONE__CP2_MASK << ring->pipe;
...@@ -6229,7 +6227,7 @@ static void gfx_v8_0_ring_emit_fence_gfx(struct amdgpu_ring *ring, u64 addr, ...@@ -6229,7 +6227,7 @@ static void gfx_v8_0_ring_emit_fence_gfx(struct amdgpu_ring *ring, u64 addr,
static void gfx_v8_0_ring_emit_pipeline_sync(struct amdgpu_ring *ring) static void gfx_v8_0_ring_emit_pipeline_sync(struct amdgpu_ring *ring)
{ {
int usepfp = (ring->type == AMDGPU_RING_TYPE_GFX); int usepfp = (ring->funcs->type == AMDGPU_RING_TYPE_GFX);
uint32_t seq = ring->fence_drv.sync_seq; uint32_t seq = ring->fence_drv.sync_seq;
uint64_t addr = ring->fence_drv.gpu_addr; uint64_t addr = ring->fence_drv.gpu_addr;
...@@ -6247,7 +6245,7 @@ static void gfx_v8_0_ring_emit_pipeline_sync(struct amdgpu_ring *ring) ...@@ -6247,7 +6245,7 @@ static void gfx_v8_0_ring_emit_pipeline_sync(struct amdgpu_ring *ring)
static void gfx_v8_0_ring_emit_vm_flush(struct amdgpu_ring *ring, static void gfx_v8_0_ring_emit_vm_flush(struct amdgpu_ring *ring,
unsigned vm_id, uint64_t pd_addr) unsigned vm_id, uint64_t pd_addr)
{ {
int usepfp = (ring->type == AMDGPU_RING_TYPE_GFX); int usepfp = (ring->funcs->type == AMDGPU_RING_TYPE_GFX);
amdgpu_ring_write(ring, PACKET3(PACKET3_WRITE_DATA, 3)); amdgpu_ring_write(ring, PACKET3(PACKET3_WRITE_DATA, 3));
amdgpu_ring_write(ring, (WRITE_DATA_ENGINE_SEL(usepfp) | amdgpu_ring_write(ring, (WRITE_DATA_ENGINE_SEL(usepfp) |
...@@ -6529,6 +6527,7 @@ const struct amd_ip_funcs gfx_v8_0_ip_funcs = { ...@@ -6529,6 +6527,7 @@ const struct amd_ip_funcs gfx_v8_0_ip_funcs = {
}; };
static const struct amdgpu_ring_funcs gfx_v8_0_ring_funcs_gfx = { static const struct amdgpu_ring_funcs gfx_v8_0_ring_funcs_gfx = {
.type = AMDGPU_RING_TYPE_GFX,
.get_rptr = gfx_v8_0_ring_get_rptr, .get_rptr = gfx_v8_0_ring_get_rptr,
.get_wptr = gfx_v8_0_ring_get_wptr_gfx, .get_wptr = gfx_v8_0_ring_get_wptr_gfx,
.set_wptr = gfx_v8_0_ring_set_wptr_gfx, .set_wptr = gfx_v8_0_ring_set_wptr_gfx,
...@@ -6558,6 +6557,7 @@ static const struct amdgpu_ring_funcs gfx_v8_0_ring_funcs_gfx = { ...@@ -6558,6 +6557,7 @@ static const struct amdgpu_ring_funcs gfx_v8_0_ring_funcs_gfx = {
}; };
static const struct amdgpu_ring_funcs gfx_v8_0_ring_funcs_compute = { static const struct amdgpu_ring_funcs gfx_v8_0_ring_funcs_compute = {
.type = AMDGPU_RING_TYPE_COMPUTE,
.get_rptr = gfx_v8_0_ring_get_rptr, .get_rptr = gfx_v8_0_ring_get_rptr,
.get_wptr = gfx_v8_0_ring_get_wptr_compute, .get_wptr = gfx_v8_0_ring_get_wptr_compute,
.set_wptr = gfx_v8_0_ring_set_wptr_compute, .set_wptr = gfx_v8_0_ring_set_wptr_compute,
......
...@@ -952,8 +952,8 @@ static int sdma_v2_4_sw_init(void *handle) ...@@ -952,8 +952,8 @@ static int sdma_v2_4_sw_init(void *handle)
SDMA_PKT_NOP_HEADER_OP(SDMA_OP_NOP), 0xf, SDMA_PKT_NOP_HEADER_OP(SDMA_OP_NOP), 0xf,
&adev->sdma.trap_irq, &adev->sdma.trap_irq,
(i == 0) ? (i == 0) ?
AMDGPU_SDMA_IRQ_TRAP0 : AMDGPU_SDMA_IRQ_TRAP1, AMDGPU_SDMA_IRQ_TRAP0 :
AMDGPU_RING_TYPE_SDMA); AMDGPU_SDMA_IRQ_TRAP1);
if (r) if (r)
return r; return r;
} }
...@@ -1206,6 +1206,7 @@ const struct amd_ip_funcs sdma_v2_4_ip_funcs = { ...@@ -1206,6 +1206,7 @@ const struct amd_ip_funcs sdma_v2_4_ip_funcs = {
}; };
static const struct amdgpu_ring_funcs sdma_v2_4_ring_funcs = { static const struct amdgpu_ring_funcs sdma_v2_4_ring_funcs = {
.type = AMDGPU_RING_TYPE_SDMA,
.get_rptr = sdma_v2_4_ring_get_rptr, .get_rptr = sdma_v2_4_ring_get_rptr,
.get_wptr = sdma_v2_4_ring_get_wptr, .get_wptr = sdma_v2_4_ring_get_wptr,
.set_wptr = sdma_v2_4_ring_set_wptr, .set_wptr = sdma_v2_4_ring_set_wptr,
......
...@@ -1164,8 +1164,8 @@ static int sdma_v3_0_sw_init(void *handle) ...@@ -1164,8 +1164,8 @@ static int sdma_v3_0_sw_init(void *handle)
SDMA_PKT_NOP_HEADER_OP(SDMA_OP_NOP), 0xf, SDMA_PKT_NOP_HEADER_OP(SDMA_OP_NOP), 0xf,
&adev->sdma.trap_irq, &adev->sdma.trap_irq,
(i == 0) ? (i == 0) ?
AMDGPU_SDMA_IRQ_TRAP0 : AMDGPU_SDMA_IRQ_TRAP1, AMDGPU_SDMA_IRQ_TRAP0 :
AMDGPU_RING_TYPE_SDMA); AMDGPU_SDMA_IRQ_TRAP1);
if (r) if (r)
return r; return r;
} }
...@@ -1549,6 +1549,7 @@ const struct amd_ip_funcs sdma_v3_0_ip_funcs = { ...@@ -1549,6 +1549,7 @@ const struct amd_ip_funcs sdma_v3_0_ip_funcs = {
}; };
static const struct amdgpu_ring_funcs sdma_v3_0_ring_funcs = { static const struct amdgpu_ring_funcs sdma_v3_0_ring_funcs = {
.type = AMDGPU_RING_TYPE_SDMA,
.get_rptr = sdma_v3_0_ring_get_rptr, .get_rptr = sdma_v3_0_ring_get_rptr,
.get_wptr = sdma_v3_0_ring_get_wptr, .get_wptr = sdma_v3_0_ring_get_wptr,
.set_wptr = sdma_v3_0_ring_set_wptr, .set_wptr = sdma_v3_0_ring_set_wptr,
......
...@@ -534,8 +534,8 @@ static int si_dma_sw_init(void *handle) ...@@ -534,8 +534,8 @@ static int si_dma_sw_init(void *handle)
DMA_PACKET(DMA_PACKET_NOP, 0, 0, 0, 0), 0xf, DMA_PACKET(DMA_PACKET_NOP, 0, 0, 0, 0), 0xf,
&adev->sdma.trap_irq, &adev->sdma.trap_irq,
(i == 0) ? (i == 0) ?
AMDGPU_SDMA_IRQ_TRAP0 : AMDGPU_SDMA_IRQ_TRAP1, AMDGPU_SDMA_IRQ_TRAP0 :
AMDGPU_RING_TYPE_SDMA); AMDGPU_SDMA_IRQ_TRAP1);
if (r) if (r)
return r; return r;
} }
...@@ -764,6 +764,7 @@ const struct amd_ip_funcs si_dma_ip_funcs = { ...@@ -764,6 +764,7 @@ const struct amd_ip_funcs si_dma_ip_funcs = {
}; };
static const struct amdgpu_ring_funcs si_dma_ring_funcs = { static const struct amdgpu_ring_funcs si_dma_ring_funcs = {
.type = AMDGPU_RING_TYPE_SDMA,
.get_rptr = si_dma_ring_get_rptr, .get_rptr = si_dma_ring_get_rptr,
.get_wptr = si_dma_ring_get_wptr, .get_wptr = si_dma_ring_get_wptr,
.set_wptr = si_dma_ring_set_wptr, .set_wptr = si_dma_ring_set_wptr,
......
...@@ -117,7 +117,7 @@ static int uvd_v4_2_sw_init(void *handle) ...@@ -117,7 +117,7 @@ static int uvd_v4_2_sw_init(void *handle)
ring = &adev->uvd.ring; ring = &adev->uvd.ring;
sprintf(ring->name, "uvd"); sprintf(ring->name, "uvd");
r = amdgpu_ring_init(adev, ring, 512, PACKET0(mmUVD_NO_OP, 0), 0xf, r = amdgpu_ring_init(adev, ring, 512, PACKET0(mmUVD_NO_OP, 0), 0xf,
&adev->uvd.irq, 0, AMDGPU_RING_TYPE_UVD); &adev->uvd.irq, 0);
return r; return r;
} }
...@@ -742,6 +742,7 @@ const struct amd_ip_funcs uvd_v4_2_ip_funcs = { ...@@ -742,6 +742,7 @@ const struct amd_ip_funcs uvd_v4_2_ip_funcs = {
}; };
static const struct amdgpu_ring_funcs uvd_v4_2_ring_funcs = { static const struct amdgpu_ring_funcs uvd_v4_2_ring_funcs = {
.type = AMDGPU_RING_TYPE_UVD,
.get_rptr = uvd_v4_2_ring_get_rptr, .get_rptr = uvd_v4_2_ring_get_rptr,
.get_wptr = uvd_v4_2_ring_get_wptr, .get_wptr = uvd_v4_2_ring_get_wptr,
.set_wptr = uvd_v4_2_ring_set_wptr, .set_wptr = uvd_v4_2_ring_set_wptr,
......
...@@ -113,7 +113,7 @@ static int uvd_v5_0_sw_init(void *handle) ...@@ -113,7 +113,7 @@ static int uvd_v5_0_sw_init(void *handle)
ring = &adev->uvd.ring; ring = &adev->uvd.ring;
sprintf(ring->name, "uvd"); sprintf(ring->name, "uvd");
r = amdgpu_ring_init(adev, ring, 512, PACKET0(mmUVD_NO_OP, 0), 0xf, r = amdgpu_ring_init(adev, ring, 512, PACKET0(mmUVD_NO_OP, 0), 0xf,
&adev->uvd.irq, 0, AMDGPU_RING_TYPE_UVD); &adev->uvd.irq, 0);
return r; return r;
} }
...@@ -793,6 +793,7 @@ const struct amd_ip_funcs uvd_v5_0_ip_funcs = { ...@@ -793,6 +793,7 @@ const struct amd_ip_funcs uvd_v5_0_ip_funcs = {
}; };
static const struct amdgpu_ring_funcs uvd_v5_0_ring_funcs = { static const struct amdgpu_ring_funcs uvd_v5_0_ring_funcs = {
.type = AMDGPU_RING_TYPE_UVD,
.get_rptr = uvd_v5_0_ring_get_rptr, .get_rptr = uvd_v5_0_ring_get_rptr,
.get_wptr = uvd_v5_0_ring_get_wptr, .get_wptr = uvd_v5_0_ring_get_wptr,
.set_wptr = uvd_v5_0_ring_set_wptr, .set_wptr = uvd_v5_0_ring_set_wptr,
......
...@@ -117,7 +117,7 @@ static int uvd_v6_0_sw_init(void *handle) ...@@ -117,7 +117,7 @@ static int uvd_v6_0_sw_init(void *handle)
ring = &adev->uvd.ring; ring = &adev->uvd.ring;
sprintf(ring->name, "uvd"); sprintf(ring->name, "uvd");
r = amdgpu_ring_init(adev, ring, 512, PACKET0(mmUVD_NO_OP, 0), 0xf, r = amdgpu_ring_init(adev, ring, 512, PACKET0(mmUVD_NO_OP, 0), 0xf,
&adev->uvd.irq, 0, AMDGPU_RING_TYPE_UVD); &adev->uvd.irq, 0);
return r; return r;
} }
...@@ -1023,6 +1023,7 @@ const struct amd_ip_funcs uvd_v6_0_ip_funcs = { ...@@ -1023,6 +1023,7 @@ const struct amd_ip_funcs uvd_v6_0_ip_funcs = {
}; };
static const struct amdgpu_ring_funcs uvd_v6_0_ring_phys_funcs = { static const struct amdgpu_ring_funcs uvd_v6_0_ring_phys_funcs = {
.type = AMDGPU_RING_TYPE_UVD,
.get_rptr = uvd_v6_0_ring_get_rptr, .get_rptr = uvd_v6_0_ring_get_rptr,
.get_wptr = uvd_v6_0_ring_get_wptr, .get_wptr = uvd_v6_0_ring_get_wptr,
.set_wptr = uvd_v6_0_ring_set_wptr, .set_wptr = uvd_v6_0_ring_set_wptr,
...@@ -1046,6 +1047,7 @@ static const struct amdgpu_ring_funcs uvd_v6_0_ring_phys_funcs = { ...@@ -1046,6 +1047,7 @@ static const struct amdgpu_ring_funcs uvd_v6_0_ring_phys_funcs = {
}; };
static const struct amdgpu_ring_funcs uvd_v6_0_ring_vm_funcs = { static const struct amdgpu_ring_funcs uvd_v6_0_ring_vm_funcs = {
.type = AMDGPU_RING_TYPE_UVD,
.get_rptr = uvd_v6_0_ring_get_rptr, .get_rptr = uvd_v6_0_ring_get_rptr,
.get_wptr = uvd_v6_0_ring_get_wptr, .get_wptr = uvd_v6_0_ring_get_wptr,
.set_wptr = uvd_v6_0_ring_set_wptr, .set_wptr = uvd_v6_0_ring_set_wptr,
......
...@@ -225,7 +225,7 @@ static int vce_v2_0_sw_init(void *handle) ...@@ -225,7 +225,7 @@ static int vce_v2_0_sw_init(void *handle)
ring = &adev->vce.ring[i]; ring = &adev->vce.ring[i];
sprintf(ring->name, "vce%d", i); sprintf(ring->name, "vce%d", i);
r = amdgpu_ring_init(adev, ring, 512, VCE_CMD_NO_OP, 0xf, r = amdgpu_ring_init(adev, ring, 512, VCE_CMD_NO_OP, 0xf,
&adev->vce.irq, 0, AMDGPU_RING_TYPE_VCE); &adev->vce.irq, 0);
if (r) if (r)
return r; return r;
} }
...@@ -610,6 +610,7 @@ const struct amd_ip_funcs vce_v2_0_ip_funcs = { ...@@ -610,6 +610,7 @@ const struct amd_ip_funcs vce_v2_0_ip_funcs = {
}; };
static const struct amdgpu_ring_funcs vce_v2_0_ring_funcs = { static const struct amdgpu_ring_funcs vce_v2_0_ring_funcs = {
.type = AMDGPU_RING_TYPE_VCE,
.get_rptr = vce_v2_0_ring_get_rptr, .get_rptr = vce_v2_0_ring_get_rptr,
.get_wptr = vce_v2_0_ring_get_wptr, .get_wptr = vce_v2_0_ring_get_wptr,
.set_wptr = vce_v2_0_ring_set_wptr, .set_wptr = vce_v2_0_ring_set_wptr,
......
...@@ -390,7 +390,7 @@ static int vce_v3_0_sw_init(void *handle) ...@@ -390,7 +390,7 @@ static int vce_v3_0_sw_init(void *handle)
ring = &adev->vce.ring[i]; ring = &adev->vce.ring[i];
sprintf(ring->name, "vce%d", i); sprintf(ring->name, "vce%d", i);
r = amdgpu_ring_init(adev, ring, 512, VCE_CMD_NO_OP, 0xf, r = amdgpu_ring_init(adev, ring, 512, VCE_CMD_NO_OP, 0xf,
&adev->vce.irq, 0, AMDGPU_RING_TYPE_VCE); &adev->vce.irq, 0);
if (r) if (r)
return r; return r;
} }
...@@ -829,6 +829,7 @@ const struct amd_ip_funcs vce_v3_0_ip_funcs = { ...@@ -829,6 +829,7 @@ const struct amd_ip_funcs vce_v3_0_ip_funcs = {
}; };
static const struct amdgpu_ring_funcs vce_v3_0_ring_phys_funcs = { static const struct amdgpu_ring_funcs vce_v3_0_ring_phys_funcs = {
.type = AMDGPU_RING_TYPE_VCE,
.get_rptr = vce_v3_0_ring_get_rptr, .get_rptr = vce_v3_0_ring_get_rptr,
.get_wptr = vce_v3_0_ring_get_wptr, .get_wptr = vce_v3_0_ring_get_wptr,
.set_wptr = vce_v3_0_ring_set_wptr, .set_wptr = vce_v3_0_ring_set_wptr,
...@@ -848,6 +849,7 @@ static const struct amdgpu_ring_funcs vce_v3_0_ring_phys_funcs = { ...@@ -848,6 +849,7 @@ static const struct amdgpu_ring_funcs vce_v3_0_ring_phys_funcs = {
}; };
static const struct amdgpu_ring_funcs vce_v3_0_ring_vm_funcs = { static const struct amdgpu_ring_funcs vce_v3_0_ring_vm_funcs = {
.type = AMDGPU_RING_TYPE_VCE,
.get_rptr = vce_v3_0_ring_get_rptr, .get_rptr = vce_v3_0_ring_get_rptr,
.get_wptr = vce_v3_0_ring_get_wptr, .get_wptr = vce_v3_0_ring_get_wptr,
.set_wptr = vce_v3_0_ring_set_wptr, .set_wptr = vce_v3_0_ring_set_wptr,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment