The patches were generated from the RPi repo with the following command: git format-patch v6.6.34..rpi-6.1.y Some patches needed rebasing and, as usual, the applied and reverted, wireless drivers, Github workflows, READMEs and defconfigs patches were removed. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 4be5e698ba5f28037bbbee4cb4326d21a383ed06 Mon Sep 17 00:00:00 2001
 | 
						|
From: Dom Cobley <popcornmix@gmail.com>
 | 
						|
Date: Mon, 17 Jul 2023 17:45:32 +0100
 | 
						|
Subject: [PATCH 0634/1085] drm/vc4: kms: Avoid setting core and disp clocks
 | 
						|
 for hdmi modes
 | 
						|
 | 
						|
On 2712, the firmware always runs these clock at a speed sufficient
 | 
						|
for dual 4kp60.
 | 
						|
 | 
						|
The requests here prevent the gpu from going into its lowest voltage
 | 
						|
mode, so just skip the clock requests.
 | 
						|
 | 
						|
With this applied the idle voltage on my pi 5 reduces from 0.7424V
 | 
						|
to 0.72V.
 | 
						|
 | 
						|
Signed-off-by: Dom Cobley <popcornmix@gmail.com>
 | 
						|
---
 | 
						|
 drivers/gpu/drm/vc4/vc4_kms.c | 4 ++--
 | 
						|
 1 file changed, 2 insertions(+), 2 deletions(-)
 | 
						|
 | 
						|
--- a/drivers/gpu/drm/vc4/vc4_kms.c
 | 
						|
+++ b/drivers/gpu/drm/vc4/vc4_kms.c
 | 
						|
@@ -429,7 +429,7 @@ static void vc4_atomic_commit_tail(struc
 | 
						|
 		old_hvs_state->fifo_state[channel].pending_commit = NULL;
 | 
						|
 	}
 | 
						|
 
 | 
						|
-	if (vc4->gen >= VC4_GEN_5 && !vc4->firmware_kms) {
 | 
						|
+	if (vc4->gen == VC4_GEN_5 && !vc4->firmware_kms) {
 | 
						|
 		unsigned long state_rate = max(old_hvs_state->core_clock_rate,
 | 
						|
 					       new_hvs_state->core_clock_rate);
 | 
						|
 		unsigned long core_rate = clamp_t(unsigned long, state_rate,
 | 
						|
@@ -483,7 +483,7 @@ static void vc4_atomic_commit_tail(struc
 | 
						|
 
 | 
						|
 	drm_atomic_helper_cleanup_planes(dev, state);
 | 
						|
 
 | 
						|
-	if (vc4->gen >= VC4_GEN_5 && !vc4->firmware_kms) {
 | 
						|
+	if (vc4->gen == VC4_GEN_5 && !vc4->firmware_kms) {
 | 
						|
 		unsigned long core_rate = min_t(unsigned long,
 | 
						|
 						hvs->max_core_rate,
 | 
						|
 						new_hvs_state->core_clock_rate);
 |