ac/debug: handle index field in SET_*_REG correctly
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Mon, 15 May 2017 09:10:31 +0000 (11:10 +0200)
committerNicolai Hähnle <nicolai.haehnle@amd.com>
Tue, 16 May 2017 14:11:53 +0000 (16:11 +0200)
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/amd/common/ac_debug.c

index 9d051f9159ec2fd3b824686ae81a4d1e09bee02a..a8f81bf9a9b1895319d1fcc3ddc410e4fcd05df9 100644 (file)
@@ -132,9 +132,15 @@ void ac_dump_reg(FILE *file, unsigned offset, uint32_t value,
 static void ac_parse_set_reg_packet(FILE *f, uint32_t *ib, unsigned count,
                                    unsigned reg_offset)
 {
-       unsigned reg = (ib[1] << 2) + reg_offset;
+       unsigned reg = ((ib[1] & 0xFFFF) << 2) + reg_offset;
+       unsigned index = ib[1] >> 28;
        int i;
 
+       if (index != 0) {
+               print_spaces(f, INDENT_PKT);
+               fprintf(f, "INDEX = %u\n", index);
+       }
+
        for (i = 0; i < count; i++)
                ac_dump_reg(f, reg + i*4, ib[2+i], ~0);
 }