From 3dcb2d47ee9f3fe15f075e7eb1b80c0c625b4d69 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 4 Jan 2012 12:06:44 -0800 Subject: intel: Add support for parsing 965 3d packets using helper functions. I want to add packets, without contributing to the switch statement of doom. --- intel/intel_decode.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'intel') diff --git a/intel/intel_decode.c b/intel/intel_decode.c index 864d8027..1f01b114 100644 --- a/intel/intel_decode.c +++ b/intel/intel_decode.c @@ -2719,6 +2719,7 @@ decode_3d_965(struct drm_intel_decode *ctx) int unsigned max_len; const char *name; int gen; + int (*func)(struct drm_intel_decode *ctx); } opcodes_3d[] = { { 0x6000, 3, 3, "URB_FENCE" }, { 0x6001, 2, 2, "CS_URB_STATE" }, @@ -3341,7 +3342,12 @@ decode_3d_965(struct drm_intel_decode *ctx) if (opcode_3d->gen && opcode_3d->gen != ctx->gen) continue; - if ((data[0] & 0xffff0000) >> 16 == opcode_3d->opcode) { + if ((data[0] & 0xffff0000) >> 16 != opcode_3d->opcode) + continue; + + if (opcode_3d->func) { + return opcode_3d->func(ctx); + } else { unsigned int i; len = 1; -- cgit v1.2.3