Patch "drm/vc4: hdmi: Enforce the minimum rate at runtime_resume" has been added to the 6.0-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    drm/vc4: hdmi: Enforce the minimum rate at runtime_resume

to the 6.0-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-vc4-hdmi-enforce-the-minimum-rate-at-runtime_res.patch
and it can be found in the queue-6.0 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 968c8137daf867652fea8c0fb08207caa6b28fec
Author: Maxime Ripard <maxime@xxxxxxxxxx>
Date:   Thu Sep 29 11:21:17 2022 +0200

    drm/vc4: hdmi: Enforce the minimum rate at runtime_resume
    
    [ Upstream commit ae71ab585c819f83aec84f91eb01157a90552ef2 ]
    
    This is a revert of commit fd5894fa2413 ("drm/vc4: hdmi: Remove clock
    rate initialization"), with the code slightly moved around.
    
    It turns out that we can't downright remove that code from the driver,
    since the Pi0-3 and Pi4 are in different cases, and it only works for
    the Pi4.
    
    Indeed, the commit mentioned above was relying on the RaspberryPi
    firmware clocks driver to initialize the rate if it wasn't done by the
    firmware. However, the Pi0-3 are using the clk-bcm2835 clock driver that
    wasn't doing this initialization. We therefore end up with the clock not
    being assigned a rate, and the CPU stalling when trying to access a
    register.
    
    We can't move that initialization in the clk-bcm2835 driver, since the
    HSM clock we depend on is actually part of the HDMI power domain, so any
    rate setup is only valid when the power domain is enabled. Thus, we
    reinstated the minimum rate setup at runtime_suspend, which should
    address both issues.
    
    Link: https://lore.kernel.org/dri-devel/20220922145448.w3xfywkn5ecak2et@xxxxxxxxxxxxxx/
    Fixes: fd5894fa2413 ("drm/vc4: hdmi: Remove clock rate initialization")
    Reported-by: Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx>
    Reviewed-by: Javier Martinez Canillas <javierm@xxxxxxxxxx>
    Tested-by: Stefan Wahren <stefan.wahren@xxxxxxxx>
    Signed-off-by: Maxime Ripard <maxime@xxxxxxxxxx>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220929-rpi-pi3-unplugged-fixes-v1-1-cd22e962296c@xxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
index 1e5f68704d7d..780a19a75c3f 100644
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -2871,6 +2871,15 @@ static int vc4_hdmi_runtime_resume(struct device *dev)
 	u32 __maybe_unused value;
 	int ret;
 
+	/*
+	 * The HSM clock is in the HDMI power domain, so we need to set
+	 * its frequency while the power domain is active so that it
+	 * keeps its rate.
+	 */
+	ret = clk_set_min_rate(vc4_hdmi->hsm_clock, HSM_MIN_CLOCK_FREQ);
+	if (ret)
+		return ret;
+
 	ret = clk_prepare_enable(vc4_hdmi->hsm_clock);
 	if (ret)
 		return ret;



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux