summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2012-01-12 15:42:37 -0500
committerDave Airlie <airlied@redhat.com>2012-01-13 09:00:16 +0000
commit0b41da60c0393d3c7b75b6c898fa1ee7c24a40db (patch)
treef31e8c27b06954913ac150bd7e43792c1ab1fb3e
parent0e1133157986340e80a1c65ebf3bd20b74eb8075 (diff)
downloadlinux-0b41da60c0393d3c7b75b6c898fa1ee7c24a40db.tar.gz
linux-0b41da60c0393d3c7b75b6c898fa1ee7c24a40db.tar.bz2
linux-0b41da60c0393d3c7b75b6c898fa1ee7c24a40db.zip
drm/radeon/kms/ni: fix packet2 handling for VM IB parser
Packet2 is only one dword. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r--drivers/gpu/drm/radeon/evergreen_cs.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/evergreen_cs.c b/drivers/gpu/drm/radeon/evergreen_cs.c
index f7442e62c03f..8e8cd85e5c00 100644
--- a/drivers/gpu/drm/radeon/evergreen_cs.c
+++ b/drivers/gpu/drm/radeon/evergreen_cs.c
@@ -1793,10 +1793,12 @@ int evergreen_ib_parse(struct radeon_device *rdev, struct radeon_ib *ib)
ret = -EINVAL;
break;
case PACKET_TYPE2:
+ idx += 1;
break;
case PACKET_TYPE3:
pkt.opcode = CP_PACKET3_GET_OPCODE(ib->ptr[idx]);
ret = evergreen_vm_packet3_check(rdev, ib->ptr, &pkt);
+ idx += pkt.count + 2;
break;
default:
dev_err(rdev->dev, "Unknown packet type %d !\n", pkt.type);
@@ -1805,7 +1807,6 @@ int evergreen_ib_parse(struct radeon_device *rdev, struct radeon_ib *ib)
}
if (ret)
break;
- idx += pkt.count + 2;
} while (idx < ib->length_dw);
return ret;