aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2014-09-30 09:25:32 -0400
committerAlex Deucher <alexander.deucher@amd.com>2014-10-01 09:00:09 -0400
commit9d0223d5f883bd85f5b24a6eacb79ee5a446d648 (patch)
tree9f75f0aa638a8bf2df27fc5ccbad98f4127febb9
parentd7952ddf6837d711231e37ddafe46f9960ef4d5a (diff)
drm/radeon/si: print full CS when we hit a packet 0
We should never have a packet 0 in the command stream. Dump the full command stream to help debug. bug: https://bugs.freedesktop.org/show_bug.cgi?id=84500 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/radeon/si.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c
index 6bce40847753..423a8cd052aa 100644
--- a/drivers/gpu/drm/radeon/si.c
+++ b/drivers/gpu/drm/radeon/si.c
@@ -4684,7 +4684,7 @@ static int si_vm_packet3_compute_check(struct radeon_device *rdev,
4684int si_ib_parse(struct radeon_device *rdev, struct radeon_ib *ib) 4684int si_ib_parse(struct radeon_device *rdev, struct radeon_ib *ib)
4685{ 4685{
4686 int ret = 0; 4686 int ret = 0;
4687 u32 idx = 0; 4687 u32 idx = 0, i;
4688 struct radeon_cs_packet pkt; 4688 struct radeon_cs_packet pkt;
4689 4689
4690 do { 4690 do {
@@ -4695,6 +4695,12 @@ int si_ib_parse(struct radeon_device *rdev, struct radeon_ib *ib)
4695 switch (pkt.type) { 4695 switch (pkt.type) {
4696 case RADEON_PACKET_TYPE0: 4696 case RADEON_PACKET_TYPE0:
4697 dev_err(rdev->dev, "Packet0 not allowed!\n"); 4697 dev_err(rdev->dev, "Packet0 not allowed!\n");
4698 for (i = 0; i < ib->length_dw; i++) {
4699 if (i == idx)
4700 printk("\t0x%08x <---\n", ib->ptr[i]);
4701 else
4702 printk("\t0x%08x\n", ib->ptr[i]);
4703 }
4698 ret = -EINVAL; 4704 ret = -EINVAL;
4699 break; 4705 break;
4700 case RADEON_PACKET_TYPE2: 4706 case RADEON_PACKET_TYPE2: