|
@@ -1007,8 +1007,22 @@ static int r600_cs_check_reg(struct radeon_cs_parser *p, u32 reg, u32 idx)
|
|
|
case R_008C64_SQ_VSTMP_RING_SIZE:
|
|
|
case R_0288C8_SQ_GS_VERT_ITEMSIZE:
|
|
|
/* get value to populate the IB don't remove */
|
|
|
- tmp =radeon_get_ib_value(p, idx);
|
|
|
- ib[idx] = 0;
|
|
|
+ /*tmp =radeon_get_ib_value(p, idx);
|
|
|
+ ib[idx] = 0;*/
|
|
|
+ break;
|
|
|
+ case SQ_ESGS_RING_BASE:
|
|
|
+ case SQ_GSVS_RING_BASE:
|
|
|
+ case SQ_ESTMP_RING_BASE:
|
|
|
+ case SQ_GSTMP_RING_BASE:
|
|
|
+ case SQ_PSTMP_RING_BASE:
|
|
|
+ case SQ_VSTMP_RING_BASE:
|
|
|
+ r = radeon_cs_packet_next_reloc(p, &reloc, 0);
|
|
|
+ if (r) {
|
|
|
+ dev_warn(p->dev, "bad SET_CONTEXT_REG "
|
|
|
+ "0x%04X\n", reg);
|
|
|
+ return -EINVAL;
|
|
|
+ }
|
|
|
+ ib[idx] += (u32)((reloc->lobj.gpu_offset >> 8) & 0xffffffff);
|
|
|
break;
|
|
|
case SQ_CONFIG:
|
|
|
track->sq_config = radeon_get_ib_value(p, idx);
|