Merge tag 'pm+acpi-4.3-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael...
[firefly-linux-kernel-4.4.55.git] / arch / mips / lib / dump_tlb.c
index 519ededbf9a4cc4d6879fdb9856e2076e2506e2f..92a37319efbe9a7498c6b38cd119abdd4c35b218 100644 (file)
@@ -23,7 +23,16 @@ void dump_tlb_regs(void)
        pr_info("EntryLo0 : %0*lx\n", field, read_c0_entrylo0());
        pr_info("EntryLo1 : %0*lx\n", field, read_c0_entrylo1());
        pr_info("Wired    : %0x\n", read_c0_wired());
-       pr_info("PageGrain: %0x\n", read_c0_pagegrain());
+       switch (current_cpu_type()) {
+       case CPU_R10000:
+       case CPU_R12000:
+       case CPU_R14000:
+       case CPU_R16000:
+               pr_info("FrameMask: %0x\n", read_c0_framemask());
+               break;
+       }
+       if (cpu_has_small_pages || cpu_has_rixi || cpu_has_xpa)
+               pr_info("PageGrain: %0x\n", read_c0_pagegrain());
        if (cpu_has_htw) {
                pr_info("PWField  : %0*lx\n", field, read_c0_pwfield());
                pr_info("PWSize   : %0*lx\n", field, read_c0_pwsize());
@@ -105,7 +114,7 @@ static void dump_tlb(int first, int last)
                 * leave only a single G bit set after a machine check exception
                 * due to duplicate TLB entry.
                 */
-               if (!((entrylo0 | entrylo1) & MIPS_ENTRYLO_G) &&
+               if (!((entrylo0 | entrylo1) & ENTRYLO_G) &&
                    (entryhi & 0xff) != asid)
                        continue;
 
@@ -114,8 +123,8 @@ static void dump_tlb(int first, int last)
                 */
                printk("Index: %2d pgmask=%s ", i, msk2str(pagemask));
 
-               c0 = (entrylo0 & MIPS_ENTRYLO_C) >> MIPS_ENTRYLO_C_SHIFT;
-               c1 = (entrylo1 & MIPS_ENTRYLO_C) >> MIPS_ENTRYLO_C_SHIFT;
+               c0 = (entrylo0 & ENTRYLO_C) >> ENTRYLO_C_SHIFT;
+               c1 = (entrylo1 & ENTRYLO_C) >> ENTRYLO_C_SHIFT;
 
                printk("va=%0*lx asid=%02lx\n",
                       vwidth, (entryhi & ~0x1fffUL),
@@ -132,9 +141,9 @@ static void dump_tlb(int first, int last)
                               (entrylo0 & MIPS_ENTRYLO_XI) ? 1 : 0);
                printk("pa=%0*llx c=%d d=%d v=%d g=%d] [",
                       pwidth, pa, c0,
-                      (entrylo0 & MIPS_ENTRYLO_D) ? 1 : 0,
-                      (entrylo0 & MIPS_ENTRYLO_V) ? 1 : 0,
-                      (entrylo0 & MIPS_ENTRYLO_G) ? 1 : 0);
+                      (entrylo0 & ENTRYLO_D) ? 1 : 0,
+                      (entrylo0 & ENTRYLO_V) ? 1 : 0,
+                      (entrylo0 & ENTRYLO_G) ? 1 : 0);
                /* RI/XI are in awkward places, so mask them off separately */
                pa = entrylo1 & ~(MIPS_ENTRYLO_RI | MIPS_ENTRYLO_XI);
                if (xpa)
@@ -146,9 +155,9 @@ static void dump_tlb(int first, int last)
                               (entrylo1 & MIPS_ENTRYLO_XI) ? 1 : 0);
                printk("pa=%0*llx c=%d d=%d v=%d g=%d]\n",
                       pwidth, pa, c1,
-                      (entrylo1 & MIPS_ENTRYLO_D) ? 1 : 0,
-                      (entrylo1 & MIPS_ENTRYLO_V) ? 1 : 0,
-                      (entrylo1 & MIPS_ENTRYLO_G) ? 1 : 0);
+                      (entrylo1 & ENTRYLO_D) ? 1 : 0,
+                      (entrylo1 & ENTRYLO_V) ? 1 : 0,
+                      (entrylo1 & ENTRYLO_G) ? 1 : 0);
        }
        printk("\n");