mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 23:12:32 +00:00
60 lines
2.0 KiB
Diff
60 lines
2.0 KiB
Diff
|
From f7d98ba8c30bbc5b29bf740f28bf2daeeec09d2b Mon Sep 17 00:00:00 2001
|
||
|
From: Maxime Ripard <maxime@cerno.tech>
|
||
|
Date: Thu, 4 Nov 2021 14:04:37 +0100
|
||
|
Subject: [PATCH] drm/vc4: kms: Move clock request to our HVS state
|
||
|
|
||
|
Our current clock request has been stored so far on the main HVS
|
||
|
structure, but even though we shouldn't have two commits in parallel and
|
||
|
it shouldn't cause any functional change, the request itself is linked
|
||
|
to a given HVS state.
|
||
|
|
||
|
Move the request there to make a bit more sense.
|
||
|
|
||
|
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||
|
---
|
||
|
drivers/gpu/drm/vc4/vc4_drv.h | 1 -
|
||
|
drivers/gpu/drm/vc4/vc4_kms.c | 8 +++++---
|
||
|
2 files changed, 5 insertions(+), 4 deletions(-)
|
||
|
|
||
|
--- a/drivers/gpu/drm/vc4/vc4_drv.h
|
||
|
+++ b/drivers/gpu/drm/vc4/vc4_drv.h
|
||
|
@@ -326,7 +326,6 @@ struct vc4_hvs {
|
||
|
u32 __iomem *dlist;
|
||
|
|
||
|
struct clk *core_clk;
|
||
|
- struct clk_request *core_req;
|
||
|
|
||
|
/* Memory manager for CRTCs to allocate space in the display
|
||
|
* list. Units are dwords.
|
||
|
--- a/drivers/gpu/drm/vc4/vc4_kms.c
|
||
|
+++ b/drivers/gpu/drm/vc4/vc4_kms.c
|
||
|
@@ -40,6 +40,7 @@ static struct vc4_ctm_state *to_vc4_ctm_
|
||
|
struct vc4_hvs_state {
|
||
|
struct drm_private_state base;
|
||
|
unsigned long core_clock_rate;
|
||
|
+ struct clk_request *core_req;
|
||
|
|
||
|
struct {
|
||
|
unsigned in_use: 1;
|
||
|
@@ -398,7 +399,8 @@ static void vc4_atomic_commit_tail(struc
|
||
|
* And remove the previous one based on the HVS
|
||
|
* requirements if any.
|
||
|
*/
|
||
|
- clk_request_done(hvs->core_req);
|
||
|
+ clk_request_done(old_hvs_state->core_req);
|
||
|
+ old_hvs_state->core_req = NULL;
|
||
|
}
|
||
|
|
||
|
drm_atomic_helper_commit_modeset_disables(dev, state);
|
||
|
@@ -432,8 +434,8 @@ static void vc4_atomic_commit_tail(struc
|
||
|
* Request a clock rate based on the current HVS
|
||
|
* requirements.
|
||
|
*/
|
||
|
- hvs->core_req = clk_request_start(hvs->core_clk,
|
||
|
- new_hvs_state->core_clock_rate);
|
||
|
+ new_hvs_state->core_req = clk_request_start(hvs->core_clk,
|
||
|
+ new_hvs_state->core_clock_rate);
|
||
|
|
||
|
/* And drop the temporary request */
|
||
|
clk_request_done(core_req);
|