drm/radeon: use pointers instead of indexes for CS chunks
Nobody is interested at which index the chunk is. What's needed is a pointer to the chunk. Remove unused chunk_id field as well. Signed-off-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:

committed by
Alex Deucher

parent
466be3386f
commit
6d2d13dd0e
@@ -493,7 +493,7 @@ static int radeon_uvd_cs_reloc(struct radeon_cs_parser *p,
|
||||
uint64_t start, end;
|
||||
int r;
|
||||
|
||||
relocs_chunk = &p->chunks[p->chunk_relocs_idx];
|
||||
relocs_chunk = p->chunk_relocs;
|
||||
offset = radeon_get_ib_value(p, data0);
|
||||
idx = radeon_get_ib_value(p, data1);
|
||||
if (idx >= relocs_chunk->length_dw) {
|
||||
@@ -610,13 +610,13 @@ int radeon_uvd_cs_parse(struct radeon_cs_parser *p)
|
||||
[0x00000003] = 2048,
|
||||
};
|
||||
|
||||
if (p->chunks[p->chunk_ib_idx].length_dw % 16) {
|
||||
if (p->chunk_ib->length_dw % 16) {
|
||||
DRM_ERROR("UVD IB length (%d) not 16 dwords aligned!\n",
|
||||
p->chunks[p->chunk_ib_idx].length_dw);
|
||||
p->chunk_ib->length_dw);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (p->chunk_relocs_idx == -1) {
|
||||
if (p->chunk_relocs == NULL) {
|
||||
DRM_ERROR("No relocation chunk !\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
@@ -640,7 +640,7 @@ int radeon_uvd_cs_parse(struct radeon_cs_parser *p)
|
||||
DRM_ERROR("Unknown packet type %d !\n", pkt.type);
|
||||
return -EINVAL;
|
||||
}
|
||||
} while (p->idx < p->chunks[p->chunk_ib_idx].length_dw);
|
||||
} while (p->idx < p->chunk_ib->length_dw);
|
||||
|
||||
if (!has_msg_cmd) {
|
||||
DRM_ERROR("UVD-IBs need a msg command!\n");
|
||||
|
Reference in New Issue
Block a user