Re: [PATCH umr] Fix VMID of chained IBs

Christian König
2018-04-10T15:29:24Z

Am 10.04.2018 um 17:23 schrieb Tom St Denis:
> We were using the VMID field literally when inside an IB it's inherited instead
>
> Signed-off-by: Tom St Denis <tom.stdenis@amd.com>

Acked-by: Christian König <christian.koenig@amd.com>

> ---
> src/lib/dump_ib.c | 8 ++++----
> src/lib/ring_decode.c | 2 +-
> 2 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/src/lib/dump_ib.c b/src/lib/dump_ib.c
> index 74a3241c309e..cbf859e3633b 100644
> --- a/src/lib/dump_ib.c
> +++ b/src/lib/dump_ib.c
> @@ -39,10 +39,10 @@ void umr_dump_ib(struct umr_asic *asic, struct umr_ring_decoder *decoder)
> if (decoder->src.ib_addr == 0)
> printf("ring[%s%u%s]", BLUE, (unsigned)decoder->src.addr, RST);
> else
> - printf("IB[%s%u%s] at %s%d%s@%s0x%llx%s",
> - BLUE, (unsigned)decoder->src.addr, RST,
> - YELLOW, (int)decoder->src.vmid, RST,
> - YELLOW, (unsigned long long)decoder->src.ib_addr, RST);
> + printf("IB[%s%u%s@%s0x%llx%s + %s0x%x%s]",
> + BLUE, (int)decoder->src.vmid, RST,
> + YELLOW, (unsigned long long)decoder->src.ib_addr, RST,
> + YELLOW, (unsigned)decoder->src.addr * 4, RST);
>
> printf("\n");
>
> diff --git a/src/lib/ring_decode.c b/src/lib/ring_decode.c
> index c1d6bcb98bae..42265e0a74c9 100644
> --- a/src/lib/ring_decode.c
> +++ b/src/lib/ring_decode.c
> @@ -540,7 +540,7 @@ static void print_decode_pm4_pkt3(struct umr_asic *asic, struct umr_ring_decoder
> break;
> case 2: printf("IB_SIZE:%s%lu%s, VMID: %s%lu%s", BLUE, BITS(ib, 0, 20), RST, BLUE, BITS(ib, 24, 32), RST);
> decoder->pm4.next_ib_state.ib_size = BITS(ib, 0, 20) * 4;
> - decoder->pm4.next_ib_state.ib_vmid = BITS(ib, 24, 32);
> + decoder->pm4.next_ib_state.ib_vmid = decoder->next_ib_info.vmid ? decoder->next_ib_info.vmid : BITS(ib, 24, 32);
> add_ib_pm4(decoder);
> break;
> default: printf("Invalid word for opcode 0x%02lx", (unsigned long)decoder->pm4.cur_opcode);

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org