Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled
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);
|