From: Dom Cobley Date: Mon, 17 Jul 2023 16:45:32 +0000 (+0100) Subject: drm/vc4: kms: Avoid setting core and disp clocks for hdmi modes X-Git-Tag: accepted/tizen/unified/20240422.153132~346 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1300c2cce2b93291314aa830e5dd08b222859e6d;p=platform%2Fkernel%2Flinux-rpi.git drm/vc4: kms: Avoid setting core and disp clocks for hdmi modes On 2712, the firmware always runs these clock at a speed sufficient for dual 4kp60. The requests here prevent the gpu from going into its lowest voltage mode, so just skip the clock requests. With this applied the idle voltage on my pi 5 reduces from 0.7424V to 0.72V. Signed-off-by: Dom Cobley --- diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c index c1c0a26..6548cdc 100644 --- a/drivers/gpu/drm/vc4/vc4_kms.c +++ b/drivers/gpu/drm/vc4/vc4_kms.c @@ -429,7 +429,7 @@ static void vc4_atomic_commit_tail(struct drm_atomic_state *state) old_hvs_state->fifo_state[channel].pending_commit = NULL; } - if (vc4->gen >= VC4_GEN_5 && !vc4->firmware_kms) { + if (vc4->gen == VC4_GEN_5 && !vc4->firmware_kms) { unsigned long state_rate = max(old_hvs_state->core_clock_rate, new_hvs_state->core_clock_rate); unsigned long core_rate = clamp_t(unsigned long, state_rate, @@ -483,7 +483,7 @@ static void vc4_atomic_commit_tail(struct drm_atomic_state *state) drm_atomic_helper_cleanup_planes(dev, state); - if (vc4->gen >= VC4_GEN_5 && !vc4->firmware_kms) { + if (vc4->gen == VC4_GEN_5 && !vc4->firmware_kms) { unsigned long core_rate = min_t(unsigned long, hvs->max_core_rate, new_hvs_state->core_clock_rate);