lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250912143401.GC51602@gnbcxd0016.gnb.st.com>
Date: Fri, 12 Sep 2025 16:34:01 +0200
From: Alain Volmat <alain.volmat@...s.st.com>
To: Raphael Gallais-Pou <rgallaispou@...il.com>
CC: Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
        Maxime Ripard
	<mripard@...nel.org>,
        Thomas Zimmermann <tzimmermann@...e.de>,
        David Airlie
	<airlied@...il.com>, Simona Vetter <simona@...ll.ch>,
        Patrice Chotard
	<patrice.chotard@...s.st.com>,
        Rob Herring <robh@...nel.org>,
        "Krzysztof
 Kozlowski" <krzk+dt@...nel.org>,
        Conor Dooley <conor+dt@...nel.org>, <dri-devel@...ts.freedesktop.org>,
        <linux-kernel@...r.kernel.org>, <linux-arm-kernel@...ts.infradead.org>,
        <devicetree@...r.kernel.org>
Subject: Re: [PATCH 3/4] ARM: dts: sti: extract display subsystem out of soc

Hi Raphael,

thanks for this patch.

On Thu, Jul 17, 2025 at 09:15:34PM +0200, Raphael Gallais-Pou wrote:
> The display subsystem represent how IPs are interacting together and
> have nothing to do within the SoC node.
> 
> Extract it from the SoC node and let IPs nodes in the Soc node.
> 
> Several nodes did not use conventional name:
>  * sti-display-subsystem -> display-subsystem
>  * sti-controller -> display-controller
>  * sti-tvout -> encoder
>  * sti-hda -> analog
>  * sti-hqvdp -> plane
> 
> Signed-off-by: Raphael Gallais-Pou <rgallaispou@...il.com>
> ---
>  arch/arm/boot/dts/st/stih410.dtsi | 316 +++++++++++++++++++++++---------------
>  1 file changed, 188 insertions(+), 128 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/st/stih410.dtsi b/arch/arm/boot/dts/st/stih410.dtsi
> index d56343f44fda4e9e1de2e5efc86e2d984bad14b4..47d66d7eb07a3d73d98b3e21d62b2253aa1171e4 100644
> --- a/arch/arm/boot/dts/st/stih410.dtsi
> +++ b/arch/arm/boot/dts/st/stih410.dtsi
> @@ -34,6 +34,41 @@ usb2_picophy2: phy3 {
>  		status = "disabled";
>  	};
>  
> +	display-subsystem {
> +		compatible = "st,sti-display-subsystem";
> +		ports = <&compositor>, <&hqvdp>, <&tvout>, <&sti_hdmi>;
> +
> +		assigned-clocks = <&clk_s_d2_quadfs 0>,
> +				  <&clk_s_d2_quadfs 1>,
> +				  <&clk_s_c0_pll1 0>,
> +				  <&clk_s_c0_flexgen CLK_COMPO_DVP>,
> +				  <&clk_s_c0_flexgen CLK_MAIN_DISP>,
> +				  <&clk_s_d2_flexgen CLK_PIX_MAIN_DISP>,
> +				  <&clk_s_d2_flexgen CLK_PIX_AUX_DISP>,
> +				  <&clk_s_d2_flexgen CLK_PIX_GDP1>,
> +				  <&clk_s_d2_flexgen CLK_PIX_GDP2>,
> +				  <&clk_s_d2_flexgen CLK_PIX_GDP3>,
> +				  <&clk_s_d2_flexgen CLK_PIX_GDP4>;
> +
> +		assigned-clock-parents = <0>,
> +					 <0>,
> +					 <0>,
> +					 <&clk_s_c0_pll1 0>,
> +					 <&clk_s_c0_pll1 0>,
> +					 <&clk_s_d2_quadfs 0>,
> +					 <&clk_s_d2_quadfs 1>,
> +					 <&clk_s_d2_quadfs 0>,
> +					 <&clk_s_d2_quadfs 0>,
> +					 <&clk_s_d2_quadfs 0>,
> +					 <&clk_s_d2_quadfs 0>;
> +
> +		assigned-clock-rates = <297000000>,
> +				       <297000000>,
> +				       <0>,
> +				       <400000000>,
> +				       <400000000>;
> +	};
> +
>  	soc {
>  		ohci0: usb@...3c00 {
>  			compatible = "st,st-ohci-300x";
> @@ -99,153 +134,178 @@ ehci1: usb@...3e00 {
>  			status = "disabled";
>  		};
>  
> -		sti-display-subsystem@0 {
> -			compatible = "st,sti-display-subsystem";
> +		compositor: display-controller@...1000 {
> +			compatible = "st,stih407-compositor";
> +			reg = <0x9d11000 0x1000>;
> +
> +			clock-names = "compo_main",
> +				      "compo_aux",
> +				      "pix_main",
> +				      "pix_aux",
> +				      "pix_gdp1",
> +				      "pix_gdp2",
> +				      "pix_gdp3",
> +				      "pix_gdp4",
> +				      "main_parent",
> +				      "aux_parent";
> +
> +			clocks = <&clk_s_c0_flexgen CLK_COMPO_DVP>,
> +				 <&clk_s_c0_flexgen CLK_COMPO_DVP>,
> +				 <&clk_s_d2_flexgen CLK_PIX_MAIN_DISP>,
> +				 <&clk_s_d2_flexgen CLK_PIX_AUX_DISP>,
> +				 <&clk_s_d2_flexgen CLK_PIX_GDP1>,
> +				 <&clk_s_d2_flexgen CLK_PIX_GDP2>,
> +				 <&clk_s_d2_flexgen CLK_PIX_GDP3>,
> +				 <&clk_s_d2_flexgen CLK_PIX_GDP4>,
> +				 <&clk_s_d2_quadfs 0>,
> +				 <&clk_s_d2_quadfs 1>;
> +
> +			reset-names = "compo-main", "compo-aux";
> +			resets = <&softreset STIH407_COMPO_SOFTRESET>,
> +				 <&softreset STIH407_COMPO_SOFTRESET>;
> +			st,vtg = <&vtg_main>, <&vtg_aux>;
> +
> +			ports {
> +				#address-cells = <1>;
> +				#size-cells = <0>;
> +
> +				port@0 {
> +					reg = <0>;
> +					compo_main_out: endpoint {
> +						remote-endpoint = <&tvout_in0>;
> +					};
> +				};
> +
> +				port@1 {
> +					reg = <1>;
> +					compo_aux_out: endpoint {
> +						remote-endpoint = <&tvout_in1>;
> +					};
> +				};
> +			};
> +		};
> +
> +		tvout: encoder@...8000 {
> +			compatible = "st,stih407-tvout";
> +			reg = <0x8d08000 0x1000>;
> +			reg-names = "tvout-reg";
> +			reset-names = "tvout";
> +			resets = <&softreset STIH407_HDTVOUT_SOFTRESET>;
>  			#address-cells = <1>;
>  			#size-cells = <1>;
> +			assigned-clocks = <&clk_s_d2_flexgen CLK_PIX_HDMI>,
> +					  <&clk_s_d2_flexgen CLK_TMDS_HDMI>,
> +					  <&clk_s_d2_flexgen CLK_REF_HDMIPHY>,
> +					  <&clk_s_d0_flexgen CLK_PCM_0>,
> +					  <&clk_s_d2_flexgen CLK_PIX_HDDAC>,
> +					  <&clk_s_d2_flexgen CLK_HDDAC>;
>  
> -			reg = <0 0>;
> -			assigned-clocks = <&clk_s_d2_quadfs 0>,
> -					  <&clk_s_d2_quadfs 1>,
> -					  <&clk_s_c0_pll1 0>,
> -					  <&clk_s_c0_flexgen CLK_COMPO_DVP>,
> -					  <&clk_s_c0_flexgen CLK_MAIN_DISP>,
> -					  <&clk_s_d2_flexgen CLK_PIX_MAIN_DISP>,
> -					  <&clk_s_d2_flexgen CLK_PIX_AUX_DISP>,
> -					  <&clk_s_d2_flexgen CLK_PIX_GDP1>,
> -					  <&clk_s_d2_flexgen CLK_PIX_GDP2>,
> -					  <&clk_s_d2_flexgen CLK_PIX_GDP3>,
> -					  <&clk_s_d2_flexgen CLK_PIX_GDP4>;
> -
> -			assigned-clock-parents = <0>,
> -						 <0>,
> -						 <0>,
> -						 <&clk_s_c0_pll1 0>,
> -						 <&clk_s_c0_pll1 0>,
> -						 <&clk_s_d2_quadfs 0>,
> -						 <&clk_s_d2_quadfs 1>,
> -						 <&clk_s_d2_quadfs 0>,
> +			assigned-clock-parents = <&clk_s_d2_quadfs 0>,
> +						 <&clk_tmdsout_hdmi>,
>  						 <&clk_s_d2_quadfs 0>,
> +						 <&clk_s_d0_quadfs 0>,
>  						 <&clk_s_d2_quadfs 0>,
>  						 <&clk_s_d2_quadfs 0>;
>  
> -			assigned-clock-rates = <297000000>,
> -					       <297000000>,
> -					       <0>,
> -					       <400000000>,
> -					       <400000000>;
> -
> -			ranges;
> -
> -			sti-compositor@...1000 {
> -				compatible = "st,stih407-compositor";
> -				reg = <0x9d11000 0x1000>;
> -
> -				clock-names = "compo_main",
> -					      "compo_aux",
> -					      "pix_main",
> -					      "pix_aux",
> -					      "pix_gdp1",
> -					      "pix_gdp2",
> -					      "pix_gdp3",
> -					      "pix_gdp4",
> -					      "main_parent",
> -					      "aux_parent";
> -
> -				clocks = <&clk_s_c0_flexgen CLK_COMPO_DVP>,
> -					 <&clk_s_c0_flexgen CLK_COMPO_DVP>,
> -					 <&clk_s_d2_flexgen CLK_PIX_MAIN_DISP>,
> -					 <&clk_s_d2_flexgen CLK_PIX_AUX_DISP>,
> -					 <&clk_s_d2_flexgen CLK_PIX_GDP1>,
> -					 <&clk_s_d2_flexgen CLK_PIX_GDP2>,
> -					 <&clk_s_d2_flexgen CLK_PIX_GDP3>,
> -					 <&clk_s_d2_flexgen CLK_PIX_GDP4>,
> -					 <&clk_s_d2_quadfs 0>,
> -					 <&clk_s_d2_quadfs 1>;
> -
> -				reset-names = "compo-main", "compo-aux";
> -				resets = <&softreset STIH407_COMPO_SOFTRESET>,
> -					 <&softreset STIH407_COMPO_SOFTRESET>;
> -				st,vtg = <&vtg_main>, <&vtg_aux>;
> -			};
> -
> -			sti-tvout@...8000 {
> -				compatible = "st,stih407-tvout";
> -				reg = <0x8d08000 0x1000>;
> -				reg-names = "tvout-reg";
> -				reset-names = "tvout";
> -				resets = <&softreset STIH407_HDTVOUT_SOFTRESET>;
> +			ports {
>  				#address-cells = <1>;
> -				#size-cells = <1>;
> -				assigned-clocks = <&clk_s_d2_flexgen CLK_PIX_HDMI>,
> -						  <&clk_s_d2_flexgen CLK_TMDS_HDMI>,
> -						  <&clk_s_d2_flexgen CLK_REF_HDMIPHY>,
> -						  <&clk_s_d0_flexgen CLK_PCM_0>,
> -						  <&clk_s_d2_flexgen CLK_PIX_HDDAC>,
> -						  <&clk_s_d2_flexgen CLK_HDDAC>;
> +				#size-cells = <0>;
>  
> -				assigned-clock-parents = <&clk_s_d2_quadfs 0>,
> -							 <&clk_tmdsout_hdmi>,
> -							 <&clk_s_d2_quadfs 0>,
> -							 <&clk_s_d0_quadfs 0>,
> -							 <&clk_s_d2_quadfs 0>,
> -							 <&clk_s_d2_quadfs 0>;
> +				port@0 {
> +					reg = <0>;
> +					tvout_in0: endpoint {
> +						remote-endpoint = <&compo_main_out>;
> +					};
> +				};
> +
> +				port@1 {
> +					reg = <1>;
> +					tvout_in1: endpoint {
> +						remote-endpoint = <&compo_aux_out>;
> +					};
> +				};
> +
> +				port@2 {
> +					reg = <2>;
> +					tvout_out0: endpoint {
> +						remote-endpoint = <&hdmi_in>;
> +					};
> +				};
> +
> +				port@3 {
> +					reg = <3>;
> +					tvout_out1: endpoint {
> +						remote-endpoint = <&hda_in>;
> +					};
> +				};
>  			};
> +		};
>  
> -			sti_hdmi: sti-hdmi@...4000 {
> -				compatible = "st,stih407-hdmi";
> -				reg = <0x8d04000 0x1000>;
> -				reg-names = "hdmi-reg";
> -				#sound-dai-cells = <0>;
> -				interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
> -				interrupt-names = "irq";
> -				clock-names = "pix",
> -					      "tmds",
> -					      "phy",
> -					      "audio",
> -					      "main_parent",
> -					      "aux_parent";
> +		sti_hdmi: hdmi@...4000 {
> +			compatible = "st,stih407-hdmi";
> +			reg = <0x8d04000 0x1000>;
> +			reg-names = "hdmi-reg";
> +			#sound-dai-cells = <0>;
> +			interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
> +			interrupt-names = "irq";
> +			clock-names = "pix",
> +				      "tmds",
> +				      "phy",
> +				      "audio",
> +				      "main_parent",
> +				      "aux_parent";
>  
> -				clocks = <&clk_s_d2_flexgen CLK_PIX_HDMI>,
> -					 <&clk_s_d2_flexgen CLK_TMDS_HDMI>,
> -					 <&clk_s_d2_flexgen CLK_REF_HDMIPHY>,
> -					 <&clk_s_d0_flexgen CLK_PCM_0>,
> -					 <&clk_s_d2_quadfs 0>,
> -					 <&clk_s_d2_quadfs 1>;
> +			clocks = <&clk_s_d2_flexgen CLK_PIX_HDMI>,
> +				 <&clk_s_d2_flexgen CLK_TMDS_HDMI>,
> +				 <&clk_s_d2_flexgen CLK_REF_HDMIPHY>,
> +				 <&clk_s_d0_flexgen CLK_PCM_0>,
> +				 <&clk_s_d2_quadfs 0>,
> +				 <&clk_s_d2_quadfs 1>;
>  
> -				hdmi,hpd-gpio = <&pio5 3 GPIO_ACTIVE_LOW>;
> -				reset-names = "hdmi";
> -				resets = <&softreset STIH407_HDMI_TX_PHY_SOFTRESET>;
> -				ddc = <&hdmiddc>;
> +			hdmi,hpd-gpio = <&pio5 3 GPIO_ACTIVE_LOW>;
> +			reset-names = "hdmi";
> +			resets = <&softreset STIH407_HDMI_TX_PHY_SOFTRESET>;
> +			ddc = <&hdmiddc>;
> +
> +			port {
> +				hdmi_in: endpoint {
> +					remote-endpoint = <&tvout_out0>;
> +				};
>  			};
> +		};
>  
> -			sti-hda@...2000 {
> -				compatible = "st,stih407-hda";
> -				status = "disabled";
> -				reg = <0x8d02000 0x400>, <0x92b0120 0x4>;
> -				reg-names = "hda-reg", "video-dacs-ctrl";
> -				clock-names = "pix",
> -					      "hddac",
> -					      "main_parent",
> -					      "aux_parent";
> -				clocks = <&clk_s_d2_flexgen CLK_PIX_HDDAC>,
> -					 <&clk_s_d2_flexgen CLK_HDDAC>,
> -					 <&clk_s_d2_quadfs 0>,
> -					 <&clk_s_d2_quadfs 1>;
> -			};
> +		analog@...2000 {
> +			compatible = "st,stih407-hda";
> +			status = "disabled";
> +			reg = <0x8d02000 0x400>, <0x92b0120 0x4>;
> +			reg-names = "hda-reg", "video-dacs-ctrl";
> +			clock-names = "pix",
> +				      "hddac",
> +				      "main_parent",
> +				      "aux_parent";
> +			clocks = <&clk_s_d2_flexgen CLK_PIX_HDDAC>,
> +				 <&clk_s_d2_flexgen CLK_HDDAC>,
> +				 <&clk_s_d2_quadfs 0>,
> +				 <&clk_s_d2_quadfs 1>;
>  
> -			sti-hqvdp@...0000 {
> -				compatible = "st,stih407-hqvdp";
> -				reg = <0x9C00000 0x100000>;
> -				clock-names = "hqvdp", "pix_main";
> -				clocks = <&clk_s_c0_flexgen CLK_MAIN_DISP>,
> -					 <&clk_s_d2_flexgen CLK_PIX_MAIN_DISP>;
> -				reset-names = "hqvdp";
> -				resets = <&softreset STIH407_HDQVDP_SOFTRESET>;
> -				st,vtg = <&vtg_main>;
> +			port {
> +				hda_in: endpoint {
> +					remote-endpoint = <&tvout_out1>;
> +				};
>  			};
>  		};
>  
> +		hqvdp: plane@...0000 {
> +			compatible = "st,stih407-hqvdp";
> +			reg = <0x9C00000 0x100000>;
> +			clock-names = "hqvdp", "pix_main";
> +			clocks = <&clk_s_c0_flexgen CLK_MAIN_DISP>,
> +				 <&clk_s_d2_flexgen CLK_PIX_MAIN_DISP>;
> +			reset-names = "hqvdp";
> +			resets = <&softreset STIH407_HDQVDP_SOFTRESET>;
> +			st,vtg = <&vtg_main>;
> +		};
> +
>  		bdisp0:bdisp@...0000 {
>  			compatible = "st,stih407-bdisp";
>  			reg = <0x9f10000 0x1000>;
> 
> -- 
> 2.50.1
> 

Acked-by: Alain Volmat <alain.volmat@...s.st.com>

Best regards
Alain

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ