openwrt/target/linux/bcm27xx/patches-5.15/950-0878-ARM-dts-bcm2835-Switch-HSM-clock-to-firmware.patch
Álvaro Fernández Rojas 20ea6adbf1 bcm27xx: add support for linux v5.15
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 <mj8263788@gmail.com>
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2022-05-17 15:11:22 +02:00

36 lines
1.3 KiB
Diff

From fb31b2f3ddb36a98cbb50ab07a5541d553e72e16 Mon Sep 17 00:00:00 2001
From: Maxime Ripard <maxime@cerno.tech>
Date: Mon, 25 Apr 2022 17:45:16 +0200
Subject: [PATCH] ARM: dts: bcm2835: Switch HSM clock to firmware
When the bootloader boots without a display connected to the
HDMI connector, it won't initialize the HSM clock.
Then, when Linux boots, the default parent fetched by the clock
framework will be the first parent for the HSM clock, which is "gnd".
That clock is never registered, leading to the HSM clock being orphaned,
which leads to other issues with the recent clock range handling.
It's not clear what the proper solution would be, but the firmware
clocks driver doesn't have that parenting issue and the clock rate is
properly initialized for this clock whenever it hasn't been set by the
bootloader.
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
arch/arm/boot/dts/bcm2835-common.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/arch/arm/boot/dts/bcm2835-common.dtsi
+++ b/arch/arm/boot/dts/bcm2835-common.dtsi
@@ -129,7 +129,7 @@
interrupts = <2 8>, <2 9>;
ddc = <&i2c2>;
clocks = <&firmware_clocks 9>,
- <&clocks BCM2835_CLOCK_HSM>;
+ <&firmware_clocks 13>;
clock-names = "pixel", "hdmi";
dmas = <&dma (17|(1<<27)|(1<<24))>;
dma-names = "audio-rx";