mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-28 17:48:58 +00:00
20ea6adbf1
Build system: x86_64 Build-tested: bcm2708, bcm2709, bcm2710, bcm2711 Run-tested: bcm2708/RPiB+, bcm2709/RPi3B, bcm2710/RPi3B, bcm2711/RPi4B Signed-off-by: Marty Jones <mj8263788@gmail.com> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
39 lines
1.4 KiB
Diff
39 lines
1.4 KiB
Diff
From ae03b35cf2792e7c4cf55c44dc37322487b72d1d Mon Sep 17 00:00:00 2001
|
|
From: Maxime Ripard <maxime@cerno.tech>
|
|
Date: Thu, 18 Nov 2021 14:04:00 +0100
|
|
Subject: [PATCH] drm/vc4: kms: Take old state core clock rate into
|
|
account
|
|
|
|
During a commit, the core clock, which feeds the HVS, needs to run at
|
|
a minimum of 500MHz.
|
|
|
|
While doing that commit, we can also change the mode to one that
|
|
requires a higher core clock, so we take the core clock rate associated
|
|
to that new state into account for that boost.
|
|
|
|
However, the old state also needs to be taken into account if it
|
|
requires a core clock higher that the new one and our 500MHz limit,
|
|
since it's still live in hardware at the beginning of our commit.
|
|
|
|
Fixes: 16e101051f32 ("drm/vc4: Increase the core clock based on HVS load")
|
|
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
|
---
|
|
drivers/gpu/drm/vc4/vc4_kms.c | 5 +++--
|
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
|
|
|
--- a/drivers/gpu/drm/vc4/vc4_kms.c
|
|
+++ b/drivers/gpu/drm/vc4/vc4_kms.c
|
|
@@ -390,9 +390,10 @@ static void vc4_atomic_commit_tail(struc
|
|
}
|
|
|
|
if (vc4->hvs && vc4->hvs->hvs5) {
|
|
+ unsigned long state_rate = max(old_hvs_state->core_clock_rate,
|
|
+ new_hvs_state->core_clock_rate);
|
|
unsigned long core_rate = max_t(unsigned long,
|
|
- 500000000,
|
|
- new_hvs_state->core_clock_rate);
|
|
+ 500000000, state_rate);
|
|
|
|
core_req = clk_request_start(hvs->core_clk, core_rate);
|
|
/*
|