]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
clk: bcm: rpi: Mark VEC clock as CLK_IGNORE_UNUSED
authorMaíra Canal <mcanal@igalia.com>
Fri, 24 Apr 2026 15:34:52 +0000 (16:34 +0100)
committerStephen Boyd <sboyd@kernel.org>
Sat, 25 Apr 2026 17:51:23 +0000 (10:51 -0700)
On Raspberry Pi 3B, the VEC clock is used by the VideoCore firmware
display driver, which remains active until the vc4 driver loads and
sends NOTIFY_DISPLAY_DONE. If this clock is disabled during boot, a bus
lockup happens and the firmware becomes unresponsive, causing a complete
system lockup.

Mark the VEC clock with CLK_IGNORE_UNUSED so it survives the unused
clock disablement and remains available until the vc4 driver takes over
display management.

Fixes: 672299736af6 ("clk: bcm: rpi: Manage clock rate in prepare/unprepare callbacks")
Reported-by: Mark Brown <broonie@kernel.org>
Closes: https://lore.kernel.org/r/5f0bec08-f458-4fba-8bf3-06817a100c4c@sirena.org.uk
Signed-off-by: Maíra Canal <mcanal@igalia.com>
Link: https://patch.msgid.link/20260401111416.562279-2-mcanal@igalia.com
Tested-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
Acked-by: Brian Masney <bmasney@redhat.com> # Active contributor to clk
Reviewed-by: Stefan Wahren <wahrenst@gmx.net>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/bcm/clk-raspberrypi.c

index df2d246eb6efd0c9a9c508eb7a43a6a70e1c3810..f1a99de6de4f1491cb63cc7f2bd684285c8f2a10 100644 (file)
@@ -160,6 +160,13 @@ raspberrypi_clk_variants[RPI_FIRMWARE_NUM_CLK_ID] = {
        [RPI_FIRMWARE_VEC_CLK_ID] = {
                .export = true,
                .minimize = true,
+
+               /*
+                * If this clock is disabled during boot, it causes a bus
+                * lockup in RPi 3B. Therefore, make sure it's left enabled
+                * during boot.
+                */
+               .flags = CLK_IGNORE_UNUSED,
        },
        [RPI_FIRMWARE_DISP_CLK_ID] = {
                .export = true,