mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-04 06:54:27 -05:00 
			
		
		
		
	Rebased RPi foundation patches on linux 5.10.59, removed applied and reverted patches, wireless patches and defconfig patches. bcm2708: boot tested on RPi B+ v1.2 bcm2709: boot tested on RPi 4B v1.1 4G bcm2711: boot tested on RPi 4B v1.1 4G Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
		
			
				
	
	
		
			35 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 7372f1f8c151f752aa533eaf2b85ad9b21ec9639 Mon Sep 17 00:00:00 2001
 | 
						|
From: Phil Elwell <phil@raspberrypi.org>
 | 
						|
Date: Mon, 11 Nov 2019 14:01:41 +0000
 | 
						|
Subject: [PATCH] drm/v3d: Don't clear MMU control bits on exception
 | 
						|
 | 
						|
MMU exception conditions are reported in the V3D_MMU_CTRL register as
 | 
						|
write-1-to-clear (W1C) bits. The MMU interrupt handling code clears any
 | 
						|
exceptions, but does so by masking out any other bits and writing the
 | 
						|
result back. There are some important control bits in that register,
 | 
						|
including MMU_ENABLE, so a safer approach is to simply write back the
 | 
						|
value just read unaltered.
 | 
						|
 | 
						|
This patch doesn't remove the cause of the apparent PTE errors, but it
 | 
						|
does reduce the impact to just an error in the kernel log.
 | 
						|
 | 
						|
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
 | 
						|
---
 | 
						|
 drivers/gpu/drm/v3d/v3d_irq.c | 5 +----
 | 
						|
 1 file changed, 1 insertion(+), 4 deletions(-)
 | 
						|
 | 
						|
--- a/drivers/gpu/drm/v3d/v3d_irq.c
 | 
						|
+++ b/drivers/gpu/drm/v3d/v3d_irq.c
 | 
						|
@@ -178,10 +178,7 @@ v3d_hub_irq(int irq, void *arg)
 | 
						|
 		};
 | 
						|
 		const char *client = "?";
 | 
						|
 
 | 
						|
-		V3D_WRITE(V3D_MMU_CTL,
 | 
						|
-			  V3D_READ(V3D_MMU_CTL) & (V3D_MMU_CTL_CAP_EXCEEDED |
 | 
						|
-						   V3D_MMU_CTL_PT_INVALID |
 | 
						|
-						   V3D_MMU_CTL_WRITE_VIOLATION));
 | 
						|
+		V3D_WRITE(V3D_MMU_CTL, V3D_READ(V3D_MMU_CTL));
 | 
						|
 
 | 
						|
 		if (v3d->ver >= 41) {
 | 
						|
 			axi_id = axi_id >> 5;
 |