aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-5.10/950-0538-drm-vc4-hdmi-Convert-to-the-new-clock-request-API.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/bcm27xx/patches-5.10/950-0538-drm-vc4-hdmi-Convert-to-the-new-clock-request-API.patch')
-rw-r--r--target/linux/bcm27xx/patches-5.10/950-0538-drm-vc4-hdmi-Convert-to-the-new-clock-request-API.patch79
1 files changed, 0 insertions, 79 deletions
diff --git a/target/linux/bcm27xx/patches-5.10/950-0538-drm-vc4-hdmi-Convert-to-the-new-clock-request-API.patch b/target/linux/bcm27xx/patches-5.10/950-0538-drm-vc4-hdmi-Convert-to-the-new-clock-request-API.patch
deleted file mode 100644
index 7208b02835..0000000000
--- a/target/linux/bcm27xx/patches-5.10/950-0538-drm-vc4-hdmi-Convert-to-the-new-clock-request-API.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From fe77a92b9018f9a2dbab0e2a600e368d55c667b0 Mon Sep 17 00:00:00 2001
-From: Maxime Ripard <maxime@cerno.tech>
-Date: Tue, 13 Apr 2021 11:55:55 +0200
-Subject: [PATCH] drm/vc4: hdmi: Convert to the new clock request API
-
-The new clock request API allows us to increase the rate of the HSM
-clock to match our pixel rate requirements while decreasing it when
-we're done, resulting in a better power-efficiency.
-
-Signed-off-by: Maxime Ripard <maxime@cerno.tech>
----
- drivers/gpu/drm/vc4/vc4_hdmi.c | 22 +++++++++++++++-------
- drivers/gpu/drm/vc4/vc4_hdmi.h | 3 +++
- 2 files changed, 18 insertions(+), 7 deletions(-)
-
---- a/drivers/gpu/drm/vc4/vc4_hdmi.c
-+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
-@@ -546,6 +546,9 @@ static void vc4_hdmi_encoder_post_crtc_p
- HDMI_READ(HDMI_VID_CTL) & ~VC4_HD_VID_CTL_ENABLE);
-
- clk_disable_unprepare(vc4_hdmi->pixel_bvb_clock);
-+ clk_request_done(vc4_hdmi->bvb_req);
-+ clk_disable_unprepare(vc4_hdmi->hsm_clock);
-+ clk_request_done(vc4_hdmi->hsm_req);
- clk_disable_unprepare(vc4_hdmi->pixel_clock);
-
- ret = pm_runtime_put(&vc4_hdmi->pdev->dev);
-@@ -850,9 +853,9 @@ static void vc4_hdmi_encoder_pre_crtc_co
- * pixel clock, but HSM ends up being the limiting factor.
- */
- hsm_rate = max_t(unsigned long, 120000000, (pixel_rate / 100) * 101);
-- ret = clk_set_min_rate(vc4_hdmi->hsm_clock, hsm_rate);
-- if (ret) {
-- DRM_ERROR("Failed to set HSM clock rate: %d\n", ret);
-+ vc4_hdmi->hsm_req = clk_request_start(vc4_hdmi->hsm_clock, hsm_rate);
-+ if (IS_ERR(vc4_hdmi->hsm_req)) {
-+ DRM_ERROR("Failed to set HSM clock rate: %ld\n", PTR_ERR(vc4_hdmi->hsm_req));
- return;
- }
-
-@@ -864,10 +867,12 @@ static void vc4_hdmi_encoder_pre_crtc_co
- * FIXME: When the pixel freq is 594MHz (4k60), this needs to be setup
- * at 300MHz.
- */
-- ret = clk_set_min_rate(vc4_hdmi->pixel_bvb_clock,
-- (hsm_rate > VC4_HSM_MID_CLOCK ? 150000000 : 75000000));
-- if (ret) {
-- DRM_ERROR("Failed to set pixel bvb clock rate: %d\n", ret);
-+ vc4_hdmi->bvb_req = clk_request_start(vc4_hdmi->pixel_bvb_clock,
-+ (hsm_rate > VC4_HSM_MID_CLOCK ? 150000000 : 75000000));
-+ if (IS_ERR(vc4_hdmi->bvb_req)) {
-+ DRM_ERROR("Failed to set pixel bvb clock rate: %ld\n", PTR_ERR(vc4_hdmi->bvb_req));
-+ clk_request_done(vc4_hdmi->hsm_req);
-+ clk_disable_unprepare(vc4_hdmi->hsm_clock);
- clk_disable_unprepare(vc4_hdmi->pixel_clock);
- return;
- }
-@@ -875,6 +880,9 @@ static void vc4_hdmi_encoder_pre_crtc_co
- ret = clk_prepare_enable(vc4_hdmi->pixel_bvb_clock);
- if (ret) {
- DRM_ERROR("Failed to turn on pixel bvb clock: %d\n", ret);
-+ clk_request_done(vc4_hdmi->bvb_req);
-+ clk_request_done(vc4_hdmi->hsm_req);
-+ clk_disable_unprepare(vc4_hdmi->hsm_clock);
- clk_disable_unprepare(vc4_hdmi->pixel_clock);
- return;
- }
---- a/drivers/gpu/drm/vc4/vc4_hdmi.h
-+++ b/drivers/gpu/drm/vc4/vc4_hdmi.h
-@@ -172,6 +172,9 @@ struct vc4_hdmi {
-
- struct reset_control *reset;
-
-+ struct clk_request *bvb_req;
-+ struct clk_request *hsm_req;
-+
- /* Common debugfs regset */
- struct debugfs_regset32 hdmi_regset;
- struct debugfs_regset32 hd_regset;