Signed-off-by: Tom St Denis <tom.stde...@amd.com>

(v2) Don't print out PDE entries with PTE bit set
---
 src/lib/read_vram.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/lib/read_vram.c b/src/lib/read_vram.c
index 0df48dadec12..51823d71021e 100644
--- a/src/lib/read_vram.c
+++ b/src/lib/read_vram.c
@@ -509,7 +509,7 @@ static int umr_access_vram_ai(struct umr_asic *asic, 
uint32_t vmid,
                                pde_fields.system        = (pde_entry >> 1) & 1;
                                pde_fields.cache         = (pde_entry >> 2) & 1;
                                pde_fields.pte           = (pde_entry >> 54) & 
1;
-                               if (memcmp(&pde_fields, &pde_array[pde_cnt], 
sizeof pde_fields) && asic->options.verbose)
+                               if (!pde_fields.pte && memcmp(&pde_fields, 
&pde_array[pde_cnt], sizeof pde_fields) && asic->options.verbose)
                                        fprintf(stderr, "[VERBOSE]: %s 
PDE%d=0x%016llx, VA=0x%012llx, PBA==0x%012llx, V=%d, S=%d, C=%d, P=%d\n",
                                                        
&indentation[12-pde_cnt*3],
                                                        pde_cnt,
@@ -522,6 +522,11 @@ static int umr_access_vram_ai(struct umr_asic *asic, 
uint32_t vmid,
                                                        (int)pde_fields.pte);
                                memcpy(&pde_array[pde_cnt++], &pde_fields, 
sizeof pde_fields);
 
+                               if (pde_fields.pte) {
+                                       pte_entry = pde_entry;
+                                       goto pde_is_pte;
+                               }
+
                                if (!pde_fields.system)
                                        pde_fields.pte_base_addr -= 
vm_fb_offset;
 
@@ -539,6 +544,7 @@ static int umr_access_vram_ai(struct umr_asic *asic, 
uint32_t vmid,
                                return -1;
 
                        // decode PTE values
+pde_is_pte:
                        pte_fields.page_base_addr = pte_entry & 
0xFFFFFFFFFF000ULL;
                        pte_fields.fragment       = (pte_entry >> 7)  & 0x1F;
                        pte_fields.system         = (pte_entry >> 1) & 1;
-- 
2.12.0

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to