]> git.baikalelectronics.ru Git - kernel.git/commit
drm/vc4: hdmi: Enforce the minimum rate at runtime_resume
authorMaxime Ripard <maxime@cerno.tech>
Thu, 29 Sep 2022 09:21:17 +0000 (11:21 +0200)
committerMaxime Ripard <maxime@cerno.tech>
Thu, 13 Oct 2022 11:56:52 +0000 (13:56 +0200)
commitd900e160d0628582d37f5960c7286461f46ea433
treed4658ee76d4490af41f93ceb9a18b6d3639c93c1
parent937017ec5f686a8d899613f31c78a8506b3aa702
drm/vc4: hdmi: Enforce the minimum rate at runtime_resume

This is a revert of commit f0b3e32e816e ("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@pengutronix.de/
Fixes: f0b3e32e816e ("drm/vc4: hdmi: Remove clock rate initialization")
Reported-by: Marc Kleine-Budde <mkl@pengutronix.de>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20220929-rpi-pi3-unplugged-fixes-v1-1-cd22e962296c@cerno.tech
drivers/gpu/drm/vc4/vc4_hdmi.c