]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
arm64: dts: mediatek: mt8195: Reparent vdec1/2 and venc1 power domains
authorAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Wed, 2 Apr 2025 09:06:15 +0000 (11:06 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 27 Jun 2025 10:07:13 +0000 (11:07 +0100)
[ Upstream commit 394f29033324e2317bfd6a7ed99b9a60832b36a2 ]

By hardware, the first and second core of the video decoder IP
need the VDEC_SOC to be powered up in order to be able to be
accessed (both internally, by firmware, and externally, by the
kernel).
Similarly, for the video encoder IP, the second core needs the
first core to be powered up in order to be accessible.

Fix that by reparenting the VDEC1/2 power domains to be children
of VDEC0 (VDEC_SOC), and the VENC1 to be a child of VENC0.

Fixes: 2b515194bf0c ("arm64: dts: mt8195: Add power domains controller")
Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
Link: https://lore.kernel.org/r/20250402090615.25871-3-angelogioacchino.delregno@collabora.com
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/arm64/boot/dts/mediatek/mt8195.dtsi

index 274edce5d5e6ed577357dfcedff0d47927322040..6f92451671355d837618fa3111b6b504b10d87fe 100644 (file)
                                        #size-cells = <0>;
                                        #power-domain-cells = <1>;
 
-                                       power-domain@MT8195_POWER_DOMAIN_VDEC1 {
-                                               reg = <MT8195_POWER_DOMAIN_VDEC1>;
-                                               clocks = <&vdecsys CLK_VDEC_LARB1>;
-                                               clock-names = "vdec1-0";
-                                               mediatek,infracfg = <&infracfg_ao>;
-                                               #power-domain-cells = <0>;
-                                       };
-
-                                       power-domain@MT8195_POWER_DOMAIN_VENC_CORE1 {
-                                               reg = <MT8195_POWER_DOMAIN_VENC_CORE1>;
-                                               clocks = <&vencsys_core1 CLK_VENC_CORE1_LARB>;
-                                               clock-names = "venc1-larb";
-                                               mediatek,infracfg = <&infracfg_ao>;
-                                               #power-domain-cells = <0>;
-                                       };
-
                                        power-domain@MT8195_POWER_DOMAIN_VDOSYS0 {
                                                reg = <MT8195_POWER_DOMAIN_VDOSYS0>;
                                                clocks = <&topckgen CLK_TOP_CFG_VDO0>,
                                                        clocks = <&vdecsys_soc CLK_VDEC_SOC_LARB1>;
                                                        clock-names = "vdec0-0";
                                                        mediatek,infracfg = <&infracfg_ao>;
+                                                       #address-cells = <1>;
+                                                       #size-cells = <0>;
                                                        #power-domain-cells = <0>;
-                                               };
 
-                                               power-domain@MT8195_POWER_DOMAIN_VDEC2 {
-                                                       reg = <MT8195_POWER_DOMAIN_VDEC2>;
-                                                       clocks = <&vdecsys_core1 CLK_VDEC_CORE1_LARB1>;
-                                                       clock-names = "vdec2-0";
-                                                       mediatek,infracfg = <&infracfg_ao>;
-                                                       #power-domain-cells = <0>;
+                                                       power-domain@MT8195_POWER_DOMAIN_VDEC1 {
+                                                               reg = <MT8195_POWER_DOMAIN_VDEC1>;
+                                                               clocks = <&vdecsys CLK_VDEC_LARB1>;
+                                                               clock-names = "vdec1-0";
+                                                               mediatek,infracfg = <&infracfg_ao>;
+                                                               #power-domain-cells = <0>;
+                                                       };
+
+                                                       power-domain@MT8195_POWER_DOMAIN_VDEC2 {
+                                                               reg = <MT8195_POWER_DOMAIN_VDEC2>;
+                                                               clocks = <&vdecsys_core1 CLK_VDEC_CORE1_LARB1>;
+                                                               clock-names = "vdec2-0";
+                                                               mediatek,infracfg = <&infracfg_ao>;
+                                                               #power-domain-cells = <0>;
+                                                       };
                                                };
 
                                                power-domain@MT8195_POWER_DOMAIN_VENC {
                                                        clocks = <&vencsys CLK_VENC_LARB>;
                                                        clock-names = "venc0-larb";
                                                        mediatek,infracfg = <&infracfg_ao>;
+                                                       #address-cells = <1>;
+                                                       #size-cells = <0>;
                                                        #power-domain-cells = <0>;
+
+                                                       power-domain@MT8195_POWER_DOMAIN_VENC_CORE1 {
+                                                               reg = <MT8195_POWER_DOMAIN_VENC_CORE1>;
+                                                               clocks = <&vencsys_core1 CLK_VENC_CORE1_LARB>;
+                                                               clock-names = "venc1-larb";
+                                                               mediatek,infracfg = <&infracfg_ao>;
+                                                               #power-domain-cells = <0>;
+                                                       };
                                                };
 
                                                power-domain@MT8195_POWER_DOMAIN_VDOSYS1 {