summary refs log tree commit diff
path: root/arch/nios2
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2018-11-12 23:03:35 +0800
committerLey Foon Tan <ley.foon.tan@intel.com>2019-03-07 05:29:35 +0800
commit7d1730708b8aa345a9b2e9e1ffa2d9aa7019d4e2 (patch)
tree9978c8cb09fbb8a0a1360fb66f22a92e8c6f6286 /arch/nios2
parent3437d3c886ed07863acde923a627395abb177aa9 (diff)
downloadlinux-7d1730708b8aa345a9b2e9e1ffa2d9aa7019d4e2.tar.gz
nios2: TLBMISC writes do not require PID bits to be set
TLBMISC_RD does not use PID bits, and when setting invalid TLBs,
the PID is not required because the address will not match.

This is just a tidy up.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Diffstat (limited to 'arch/nios2')
-rw-r--r--arch/nios2/mm/tlb.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/arch/nios2/mm/tlb.c b/arch/nios2/mm/tlb.c
index eb568a919576..6e0fcaa0230a 100644
--- a/arch/nios2/mm/tlb.c
+++ b/arch/nios2/mm/tlb.c
@@ -72,7 +72,7 @@ void flush_tlb_one_pid(unsigned long addr, unsigned long mmu_pid)
 		unsigned long tlbmisc;
 		unsigned long pid;
 
-		tlbmisc = pid_misc | TLBMISC_RD | (way << TLBMISC_WAY_SHIFT);
+		tlbmisc = TLBMISC_RD | (way << TLBMISC_WAY_SHIFT);
 		WRCTL(CTL_TLBMISC, tlbmisc);
 		pteaddr = RDCTL(CTL_PTEADDR);
 		tlbmisc = RDCTL(CTL_TLBMISC);
@@ -83,8 +83,7 @@ void flush_tlb_one_pid(unsigned long addr, unsigned long mmu_pid)
 				way, (pid_misc >> TLBMISC_PID_SHIFT));
 
 			WRCTL(CTL_PTEADDR, pteaddr_invalid(addr));
-			tlbmisc = pid_misc | TLBMISC_WE |
-				(way << TLBMISC_WAY_SHIFT);
+			tlbmisc = TLBMISC_WE | (way << TLBMISC_WAY_SHIFT);
 			WRCTL(CTL_TLBMISC, tlbmisc);
 			WRCTL(CTL_TLBACC, 0);
 		}
@@ -124,7 +123,7 @@ static void flush_tlb_one(unsigned long addr)
 		unsigned long pteaddr;
 		unsigned long tlbmisc;
 
-		tlbmisc = pid_misc | TLBMISC_RD | (way << TLBMISC_WAY_SHIFT);
+		tlbmisc = TLBMISC_RD | (way << TLBMISC_WAY_SHIFT);
 		WRCTL(CTL_TLBMISC, tlbmisc);
 		pteaddr = RDCTL(CTL_PTEADDR);
 		tlbmisc = RDCTL(CTL_TLBMISC);
@@ -134,8 +133,7 @@ static void flush_tlb_one(unsigned long addr)
 				way, (pid_misc >> TLBMISC_PID_SHIFT));
 
 			WRCTL(CTL_PTEADDR, pteaddr_invalid(addr));
-			tlbmisc = pid_misc | TLBMISC_WE |
-				(way << TLBMISC_WAY_SHIFT);
+			tlbmisc = TLBMISC_WE | (way << TLBMISC_WAY_SHIFT);
 			WRCTL(CTL_TLBMISC, tlbmisc);
 			WRCTL(CTL_TLBACC, 0);
 		}
@@ -217,15 +215,13 @@ void flush_tlb_pid(unsigned long pid)
 		for (way = 0; way < cpuinfo.tlb_num_ways; way++) {
 			unsigned long tlbmisc;
 
-			tlbmisc = pid_misc | TLBMISC_RD |
-				(way << TLBMISC_WAY_SHIFT);
+			tlbmisc = TLBMISC_RD | (way << TLBMISC_WAY_SHIFT);
 			WRCTL(CTL_TLBMISC, tlbmisc);
 			tlbmisc = RDCTL(CTL_TLBMISC);
 
 			if (((tlbmisc>>TLBMISC_PID_SHIFT) & TLBMISC_PID_MASK)
 				== pid) {
-				tlbmisc = pid_misc | TLBMISC_WE |
-					(way << TLBMISC_WAY_SHIFT);
+				tlbmisc = TLBMISC_WE | (way << TLBMISC_WAY_SHIFT);
 				WRCTL(CTL_TLBMISC, tlbmisc);
 				WRCTL(CTL_TLBACC, 0);
 			}
@@ -246,7 +242,6 @@ void flush_tlb_all(void)
 
 	/* remember pid/way until we return */
 	get_misc_and_pid(&org_misc, &pid_misc);
-	pid_misc |= TLBMISC_WE;
 
 	/* Map each TLB entry to physcal address 0 with no-access and a
 	   bad ptbase */
@@ -254,7 +249,7 @@ void flush_tlb_all(void)
 		WRCTL(CTL_PTEADDR, pteaddr_invalid(addr));
 
 		for (way = 0; way < cpuinfo.tlb_num_ways; way++) {
-			tlbmisc = pid_misc | (way << TLBMISC_WAY_SHIFT);
+			tlbmisc = TLBMISC_WE | (way << TLBMISC_WAY_SHIFT);
 			WRCTL(CTL_TLBMISC, tlbmisc);
 			WRCTL(CTL_TLBACC, 0);
 		}