From 20ea6adbf199097c4f5f591ffee088340630dae4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Mon, 16 May 2022 23:40:32 +0200 Subject: bcm27xx: add support for linux v5.15 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Signed-off-by: Álvaro Fernández Rojas --- ...-Take-old-state-core-clock-rate-into-acco.patch | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 target/linux/bcm27xx/patches-5.15/950-0617-drm-vc4-kms-Take-old-state-core-clock-rate-into-acco.patch (limited to 'target/linux/bcm27xx/patches-5.15/950-0617-drm-vc4-kms-Take-old-state-core-clock-rate-into-acco.patch') diff --git a/target/linux/bcm27xx/patches-5.15/950-0617-drm-vc4-kms-Take-old-state-core-clock-rate-into-acco.patch b/target/linux/bcm27xx/patches-5.15/950-0617-drm-vc4-kms-Take-old-state-core-clock-rate-into-acco.patch new file mode 100644 index 0000000000..8eb8067732 --- /dev/null +++ b/target/linux/bcm27xx/patches-5.15/950-0617-drm-vc4-kms-Take-old-state-core-clock-rate-into-acco.patch @@ -0,0 +1,38 @@ +From ae03b35cf2792e7c4cf55c44dc37322487b72d1d Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +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 +--- + 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); + /* -- cgit v1.2.3