mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 15:02:32 +00:00
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);
|
||
|
/*
|