Commit 012e976d authored by Ilija Hadzic's avatar Ilija Hadzic Committed by Alex Deucher

drm/radeon: use common next_reloc function

This patch eliminates ASIC-specific ***_cs_packet_next_reloc
functions and hooks up the new common function.
Signed-off-by: default avatarIlija Hadzic <ihadzic@research.bell-labs.com>
Reviewed-by: default avatarMarek Olšák <maraeo@gmail.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent e9716993
This diff is collapsed.
...@@ -1215,7 +1215,7 @@ int r100_reloc_pitch_offset(struct radeon_cs_parser *p, ...@@ -1215,7 +1215,7 @@ int r100_reloc_pitch_offset(struct radeon_cs_parser *p,
struct radeon_cs_reloc *reloc; struct radeon_cs_reloc *reloc;
u32 value; u32 value;
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for ib[%d]=0x%04X\n", DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
idx, reg); idx, reg);
...@@ -1268,7 +1268,7 @@ int r100_packet3_load_vbpntr(struct radeon_cs_parser *p, ...@@ -1268,7 +1268,7 @@ int r100_packet3_load_vbpntr(struct radeon_cs_parser *p,
} }
track->num_arrays = c; track->num_arrays = c;
for (i = 0; i < (c - 1); i+=2, idx+=3) { for (i = 0; i < (c - 1); i+=2, idx+=3) {
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for packet3 %d\n", DRM_ERROR("No reloc for packet3 %d\n",
pkt->opcode); pkt->opcode);
...@@ -1281,7 +1281,7 @@ int r100_packet3_load_vbpntr(struct radeon_cs_parser *p, ...@@ -1281,7 +1281,7 @@ int r100_packet3_load_vbpntr(struct radeon_cs_parser *p,
track->arrays[i + 0].esize = idx_value >> 8; track->arrays[i + 0].esize = idx_value >> 8;
track->arrays[i + 0].robj = reloc->robj; track->arrays[i + 0].robj = reloc->robj;
track->arrays[i + 0].esize &= 0x7F; track->arrays[i + 0].esize &= 0x7F;
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for packet3 %d\n", DRM_ERROR("No reloc for packet3 %d\n",
pkt->opcode); pkt->opcode);
...@@ -1294,7 +1294,7 @@ int r100_packet3_load_vbpntr(struct radeon_cs_parser *p, ...@@ -1294,7 +1294,7 @@ int r100_packet3_load_vbpntr(struct radeon_cs_parser *p,
track->arrays[i + 1].esize &= 0x7F; track->arrays[i + 1].esize &= 0x7F;
} }
if (c & 1) { if (c & 1) {
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for packet3 %d\n", DRM_ERROR("No reloc for packet3 %d\n",
pkt->opcode); pkt->opcode);
...@@ -1445,54 +1445,6 @@ int r100_cs_packet_parse_vline(struct radeon_cs_parser *p) ...@@ -1445,54 +1445,6 @@ int r100_cs_packet_parse_vline(struct radeon_cs_parser *p)
return 0; return 0;
} }
/**
* r100_cs_packet_next_reloc() - parse next packet which should be reloc packet3
* @parser: parser structure holding parsing context.
* @data: pointer to relocation data
* @offset_start: starting offset
* @offset_mask: offset mask (to align start offset on)
* @reloc: reloc informations
*
* Check next packet is relocation packet3, do bo validation and compute
* GPU offset using the provided start.
**/
int r100_cs_packet_next_reloc(struct radeon_cs_parser *p,
struct radeon_cs_reloc **cs_reloc)
{
struct radeon_cs_chunk *relocs_chunk;
struct radeon_cs_packet p3reloc;
unsigned idx;
int r;
if (p->chunk_relocs_idx == -1) {
DRM_ERROR("No relocation chunk !\n");
return -EINVAL;
}
*cs_reloc = NULL;
relocs_chunk = &p->chunks[p->chunk_relocs_idx];
r = radeon_cs_packet_parse(p, &p3reloc, p->idx);
if (r) {
return r;
}
p->idx += p3reloc.count + 2;
if (p3reloc.type != PACKET_TYPE3 || p3reloc.opcode != PACKET3_NOP) {
DRM_ERROR("No packet3 for relocation for packet at %d.\n",
p3reloc.idx);
radeon_cs_dump_packet(p, &p3reloc);
return -EINVAL;
}
idx = radeon_get_ib_value(p, p3reloc.idx + 1);
if (idx >= relocs_chunk->length_dw) {
DRM_ERROR("Relocs at %d after relocations chunk end %d !\n",
idx, relocs_chunk->length_dw);
radeon_cs_dump_packet(p, &p3reloc);
return -EINVAL;
}
/* FIXME: we assume reloc size is 4 dwords */
*cs_reloc = p->relocs_ptr[(idx / 4)];
return 0;
}
static int r100_get_vtx_size(uint32_t vtx_fmt) static int r100_get_vtx_size(uint32_t vtx_fmt)
{ {
int vtx_size; int vtx_size;
...@@ -1583,7 +1535,7 @@ static int r100_packet0_check(struct radeon_cs_parser *p, ...@@ -1583,7 +1535,7 @@ static int r100_packet0_check(struct radeon_cs_parser *p,
return r; return r;
break; break;
case RADEON_RB3D_DEPTHOFFSET: case RADEON_RB3D_DEPTHOFFSET:
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for ib[%d]=0x%04X\n", DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
idx, reg); idx, reg);
...@@ -1596,7 +1548,7 @@ static int r100_packet0_check(struct radeon_cs_parser *p, ...@@ -1596,7 +1548,7 @@ static int r100_packet0_check(struct radeon_cs_parser *p,
ib[idx] = idx_value + ((u32)reloc->lobj.gpu_offset); ib[idx] = idx_value + ((u32)reloc->lobj.gpu_offset);
break; break;
case RADEON_RB3D_COLOROFFSET: case RADEON_RB3D_COLOROFFSET:
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for ib[%d]=0x%04X\n", DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
idx, reg); idx, reg);
...@@ -1612,7 +1564,7 @@ static int r100_packet0_check(struct radeon_cs_parser *p, ...@@ -1612,7 +1564,7 @@ static int r100_packet0_check(struct radeon_cs_parser *p,
case RADEON_PP_TXOFFSET_1: case RADEON_PP_TXOFFSET_1:
case RADEON_PP_TXOFFSET_2: case RADEON_PP_TXOFFSET_2:
i = (reg - RADEON_PP_TXOFFSET_0) / 24; i = (reg - RADEON_PP_TXOFFSET_0) / 24;
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for ib[%d]=0x%04X\n", DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
idx, reg); idx, reg);
...@@ -1639,7 +1591,7 @@ static int r100_packet0_check(struct radeon_cs_parser *p, ...@@ -1639,7 +1591,7 @@ static int r100_packet0_check(struct radeon_cs_parser *p,
case RADEON_PP_CUBIC_OFFSET_T0_3: case RADEON_PP_CUBIC_OFFSET_T0_3:
case RADEON_PP_CUBIC_OFFSET_T0_4: case RADEON_PP_CUBIC_OFFSET_T0_4:
i = (reg - RADEON_PP_CUBIC_OFFSET_T0_0) / 4; i = (reg - RADEON_PP_CUBIC_OFFSET_T0_0) / 4;
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for ib[%d]=0x%04X\n", DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
idx, reg); idx, reg);
...@@ -1657,7 +1609,7 @@ static int r100_packet0_check(struct radeon_cs_parser *p, ...@@ -1657,7 +1609,7 @@ static int r100_packet0_check(struct radeon_cs_parser *p,
case RADEON_PP_CUBIC_OFFSET_T1_3: case RADEON_PP_CUBIC_OFFSET_T1_3:
case RADEON_PP_CUBIC_OFFSET_T1_4: case RADEON_PP_CUBIC_OFFSET_T1_4:
i = (reg - RADEON_PP_CUBIC_OFFSET_T1_0) / 4; i = (reg - RADEON_PP_CUBIC_OFFSET_T1_0) / 4;
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for ib[%d]=0x%04X\n", DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
idx, reg); idx, reg);
...@@ -1675,7 +1627,7 @@ static int r100_packet0_check(struct radeon_cs_parser *p, ...@@ -1675,7 +1627,7 @@ static int r100_packet0_check(struct radeon_cs_parser *p,
case RADEON_PP_CUBIC_OFFSET_T2_3: case RADEON_PP_CUBIC_OFFSET_T2_3:
case RADEON_PP_CUBIC_OFFSET_T2_4: case RADEON_PP_CUBIC_OFFSET_T2_4:
i = (reg - RADEON_PP_CUBIC_OFFSET_T2_0) / 4; i = (reg - RADEON_PP_CUBIC_OFFSET_T2_0) / 4;
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for ib[%d]=0x%04X\n", DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
idx, reg); idx, reg);
...@@ -1693,7 +1645,7 @@ static int r100_packet0_check(struct radeon_cs_parser *p, ...@@ -1693,7 +1645,7 @@ static int r100_packet0_check(struct radeon_cs_parser *p,
track->zb_dirty = true; track->zb_dirty = true;
break; break;
case RADEON_RB3D_COLORPITCH: case RADEON_RB3D_COLORPITCH:
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for ib[%d]=0x%04X\n", DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
idx, reg); idx, reg);
...@@ -1764,7 +1716,7 @@ static int r100_packet0_check(struct radeon_cs_parser *p, ...@@ -1764,7 +1716,7 @@ static int r100_packet0_check(struct radeon_cs_parser *p,
track->zb_dirty = true; track->zb_dirty = true;
break; break;
case RADEON_RB3D_ZPASS_ADDR: case RADEON_RB3D_ZPASS_ADDR:
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for ib[%d]=0x%04X\n", DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
idx, reg); idx, reg);
...@@ -1925,7 +1877,7 @@ static int r100_packet3_check(struct radeon_cs_parser *p, ...@@ -1925,7 +1877,7 @@ static int r100_packet3_check(struct radeon_cs_parser *p,
return r; return r;
break; break;
case PACKET3_INDX_BUFFER: case PACKET3_INDX_BUFFER:
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for packet3 %d\n", pkt->opcode); DRM_ERROR("No reloc for packet3 %d\n", pkt->opcode);
radeon_cs_dump_packet(p, pkt); radeon_cs_dump_packet(p, pkt);
...@@ -1939,7 +1891,7 @@ static int r100_packet3_check(struct radeon_cs_parser *p, ...@@ -1939,7 +1891,7 @@ static int r100_packet3_check(struct radeon_cs_parser *p,
break; break;
case 0x23: case 0x23:
/* 3D_RNDR_GEN_INDX_PRIM on r100/r200 */ /* 3D_RNDR_GEN_INDX_PRIM on r100/r200 */
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for packet3 %d\n", pkt->opcode); DRM_ERROR("No reloc for packet3 %d\n", pkt->opcode);
radeon_cs_dump_packet(p, pkt); radeon_cs_dump_packet(p, pkt);
......
...@@ -81,8 +81,6 @@ struct r100_cs_track { ...@@ -81,8 +81,6 @@ struct r100_cs_track {
int r100_cs_track_check(struct radeon_device *rdev, struct r100_cs_track *track); int r100_cs_track_check(struct radeon_device *rdev, struct r100_cs_track *track);
void r100_cs_track_clear(struct radeon_device *rdev, struct r100_cs_track *track); void r100_cs_track_clear(struct radeon_device *rdev, struct r100_cs_track *track);
int r100_cs_packet_next_reloc(struct radeon_cs_parser *p,
struct radeon_cs_reloc **cs_reloc);
int r100_cs_packet_parse_vline(struct radeon_cs_parser *p); int r100_cs_packet_parse_vline(struct radeon_cs_parser *p);
......
...@@ -175,7 +175,7 @@ int r200_packet0_check(struct radeon_cs_parser *p, ...@@ -175,7 +175,7 @@ int r200_packet0_check(struct radeon_cs_parser *p,
return r; return r;
break; break;
case RADEON_RB3D_DEPTHOFFSET: case RADEON_RB3D_DEPTHOFFSET:
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for ib[%d]=0x%04X\n", DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
idx, reg); idx, reg);
...@@ -188,7 +188,7 @@ int r200_packet0_check(struct radeon_cs_parser *p, ...@@ -188,7 +188,7 @@ int r200_packet0_check(struct radeon_cs_parser *p,
ib[idx] = idx_value + ((u32)reloc->lobj.gpu_offset); ib[idx] = idx_value + ((u32)reloc->lobj.gpu_offset);
break; break;
case RADEON_RB3D_COLOROFFSET: case RADEON_RB3D_COLOROFFSET:
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for ib[%d]=0x%04X\n", DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
idx, reg); idx, reg);
...@@ -207,7 +207,7 @@ int r200_packet0_check(struct radeon_cs_parser *p, ...@@ -207,7 +207,7 @@ int r200_packet0_check(struct radeon_cs_parser *p,
case R200_PP_TXOFFSET_4: case R200_PP_TXOFFSET_4:
case R200_PP_TXOFFSET_5: case R200_PP_TXOFFSET_5:
i = (reg - R200_PP_TXOFFSET_0) / 24; i = (reg - R200_PP_TXOFFSET_0) / 24;
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for ib[%d]=0x%04X\n", DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
idx, reg); idx, reg);
...@@ -260,7 +260,7 @@ int r200_packet0_check(struct radeon_cs_parser *p, ...@@ -260,7 +260,7 @@ int r200_packet0_check(struct radeon_cs_parser *p,
case R200_PP_CUBIC_OFFSET_F5_5: case R200_PP_CUBIC_OFFSET_F5_5:
i = (reg - R200_PP_TXOFFSET_0) / 24; i = (reg - R200_PP_TXOFFSET_0) / 24;
face = (reg - ((i * 24) + R200_PP_TXOFFSET_0)) / 4; face = (reg - ((i * 24) + R200_PP_TXOFFSET_0)) / 4;
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for ib[%d]=0x%04X\n", DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
idx, reg); idx, reg);
...@@ -278,7 +278,7 @@ int r200_packet0_check(struct radeon_cs_parser *p, ...@@ -278,7 +278,7 @@ int r200_packet0_check(struct radeon_cs_parser *p,
track->zb_dirty = true; track->zb_dirty = true;
break; break;
case RADEON_RB3D_COLORPITCH: case RADEON_RB3D_COLORPITCH:
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for ib[%d]=0x%04X\n", DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
idx, reg); idx, reg);
...@@ -355,7 +355,7 @@ int r200_packet0_check(struct radeon_cs_parser *p, ...@@ -355,7 +355,7 @@ int r200_packet0_check(struct radeon_cs_parser *p,
track->zb_dirty = true; track->zb_dirty = true;
break; break;
case RADEON_RB3D_ZPASS_ADDR: case RADEON_RB3D_ZPASS_ADDR:
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for ib[%d]=0x%04X\n", DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
idx, reg); idx, reg);
......
...@@ -630,7 +630,7 @@ static int r300_packet0_check(struct radeon_cs_parser *p, ...@@ -630,7 +630,7 @@ static int r300_packet0_check(struct radeon_cs_parser *p,
case R300_RB3D_COLOROFFSET2: case R300_RB3D_COLOROFFSET2:
case R300_RB3D_COLOROFFSET3: case R300_RB3D_COLOROFFSET3:
i = (reg - R300_RB3D_COLOROFFSET0) >> 2; i = (reg - R300_RB3D_COLOROFFSET0) >> 2;
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for ib[%d]=0x%04X\n", DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
idx, reg); idx, reg);
...@@ -643,7 +643,7 @@ static int r300_packet0_check(struct radeon_cs_parser *p, ...@@ -643,7 +643,7 @@ static int r300_packet0_check(struct radeon_cs_parser *p,
ib[idx] = idx_value + ((u32)reloc->lobj.gpu_offset); ib[idx] = idx_value + ((u32)reloc->lobj.gpu_offset);
break; break;
case R300_ZB_DEPTHOFFSET: case R300_ZB_DEPTHOFFSET:
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for ib[%d]=0x%04X\n", DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
idx, reg); idx, reg);
...@@ -672,7 +672,7 @@ static int r300_packet0_check(struct radeon_cs_parser *p, ...@@ -672,7 +672,7 @@ static int r300_packet0_check(struct radeon_cs_parser *p,
case R300_TX_OFFSET_0+56: case R300_TX_OFFSET_0+56:
case R300_TX_OFFSET_0+60: case R300_TX_OFFSET_0+60:
i = (reg - R300_TX_OFFSET_0) >> 2; i = (reg - R300_TX_OFFSET_0) >> 2;
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for ib[%d]=0x%04X\n", DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
idx, reg); idx, reg);
...@@ -745,7 +745,7 @@ static int r300_packet0_check(struct radeon_cs_parser *p, ...@@ -745,7 +745,7 @@ static int r300_packet0_check(struct radeon_cs_parser *p,
/* RB3D_COLORPITCH2 */ /* RB3D_COLORPITCH2 */
/* RB3D_COLORPITCH3 */ /* RB3D_COLORPITCH3 */
if (!(p->cs_flags & RADEON_CS_KEEP_TILING_FLAGS)) { if (!(p->cs_flags & RADEON_CS_KEEP_TILING_FLAGS)) {
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for ib[%d]=0x%04X\n", DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
idx, reg); idx, reg);
...@@ -830,7 +830,7 @@ static int r300_packet0_check(struct radeon_cs_parser *p, ...@@ -830,7 +830,7 @@ static int r300_packet0_check(struct radeon_cs_parser *p,
case 0x4F24: case 0x4F24:
/* ZB_DEPTHPITCH */ /* ZB_DEPTHPITCH */
if (!(p->cs_flags & RADEON_CS_KEEP_TILING_FLAGS)) { if (!(p->cs_flags & RADEON_CS_KEEP_TILING_FLAGS)) {
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for ib[%d]=0x%04X\n", DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
idx, reg); idx, reg);
...@@ -1045,7 +1045,7 @@ static int r300_packet0_check(struct radeon_cs_parser *p, ...@@ -1045,7 +1045,7 @@ static int r300_packet0_check(struct radeon_cs_parser *p,
track->tex_dirty = true; track->tex_dirty = true;
break; break;
case R300_ZB_ZPASS_ADDR: case R300_ZB_ZPASS_ADDR:
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for ib[%d]=0x%04X\n", DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
idx, reg); idx, reg);
...@@ -1087,7 +1087,7 @@ static int r300_packet0_check(struct radeon_cs_parser *p, ...@@ -1087,7 +1087,7 @@ static int r300_packet0_check(struct radeon_cs_parser *p,
track->cb_dirty = true; track->cb_dirty = true;
break; break;
case R300_RB3D_AARESOLVE_OFFSET: case R300_RB3D_AARESOLVE_OFFSET:
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for ib[%d]=0x%04X\n", DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
idx, reg); idx, reg);
...@@ -1156,7 +1156,7 @@ static int r300_packet3_check(struct radeon_cs_parser *p, ...@@ -1156,7 +1156,7 @@ static int r300_packet3_check(struct radeon_cs_parser *p,
return r; return r;
break; break;
case PACKET3_INDX_BUFFER: case PACKET3_INDX_BUFFER:
r = r100_cs_packet_next_reloc(p, &reloc); r = radeon_cs_packet_next_reloc(p, &reloc, 0);
if (r) { if (r) {
DRM_ERROR("No reloc for packet3 %d\n", pkt->opcode); DRM_ERROR("No reloc for packet3 %d\n", pkt->opcode);
radeon_cs_dump_packet(p, pkt); radeon_cs_dump_packet(p, pkt);
......
This diff is collapsed.
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