linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: "Heiko Stübner" <heiko@sntech.de>
To: Shreeya Patel <shreeya.patel@collabora.com>
Cc: mchehab@kernel.org, robh@kernel.org,
	krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org,
	mturquette@baylibre.com, sboyd@kernel.org,
	p.zabel@pengutronix.de, jose.abreu@synopsys.com,
	nelson.costa@synopsys.com, dmitry.osipenko@collabora.com,
	sebastian.reichel@collabora.com, shawn.wen@rock-chips.com,
	nicolas.dufresne@collabora.com, hverkuil@xs4all.nl,
	hverkuil-cisco@xs4all.nl, kernel@collabora.com,
	linux-kernel@vger.kernel.org, linux-media@vger.kernel.org,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-rockchip@lists.infradead.org, linux-clk@vger.kernel.org,
	linux-arm@lists.infradead.org
Subject: Re: [PATCH v2 4/6] arm64: dts: rockchip: Add device tree support for HDMI RX Controller
Date: Tue, 05 Mar 2024 21:20:55 +0100	[thread overview]
Message-ID: <6040170.44csPzL39Z@diego> (raw)
In-Reply-To: <45138-65e76d00-9-580ee380@232156106>

Hi again :-)

Am Dienstag, 5. März 2024, 20:05:02 CET schrieb Shreeya Patel:
> On Tuesday, March 05, 2024 19:41 IST, Heiko Stübner <heiko@sntech.de> wrote:
> > Am Dienstag, 5. März 2024, 13:36:46 CET schrieb Shreeya Patel:
> > > Add device tree support for Synopsys DesignWare HDMI RX
> > > Controller.
> > > 
> > > Reviewed-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
> > > Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
> > > Co-developed-by: Dingxian Wen <shawn.wen@rock-chips.com>
> > > Signed-off-by: Dingxian Wen <shawn.wen@rock-chips.com>
> > > Signed-off-by: Shreeya Patel <shreeya.patel@collabora.com>
> > > ---
> > > Changes in v2 :-
> > >   - Fix some of the checkpatch errors and warnings
> > >   - Rename resets, vo1-grf and HPD
> > >   - Move hdmirx_cma node to the rk3588.dtsi file
> > > 
> > >  .../boot/dts/rockchip/rk3588-pinctrl.dtsi     | 41 ++++++++++++++
> > >  arch/arm64/boot/dts/rockchip/rk3588.dtsi      | 55 +++++++++++++++++++
> > >  2 files changed, 96 insertions(+)
> > 
> > > diff --git a/arch/arm64/boot/dts/rockchip/rk3588.dtsi b/arch/arm64/boot/dts/rockchip/rk3588.dtsi
> > > index 5519c1430cb7..8adb98b99701 100644
> > > --- a/arch/arm64/boot/dts/rockchip/rk3588.dtsi
> > > +++ b/arch/arm64/boot/dts/rockchip/rk3588.dtsi
> > > @@ -7,6 +7,24 @@
> > >  #include "rk3588-pinctrl.dtsi"
> > >  
> > >  / {
> > > +	reserved-memory {
> > > +		#address-cells = <2>;
> > > +		#size-cells = <2>;
> > > +		ranges;
> > 
> > add blank line here
> > 
> > > +		/*
> > > +		 * The 4k HDMI capture controller works only with 32bit
> > > +		 * phys addresses and doesn't support IOMMU. HDMI RX CMA
> > > +		 * must be reserved below 4GB.
> > > +		 */
> > > +		hdmirx_cma: hdmirx_cma {
> > 
> > phandles use "_", but node-names "-"
> > 
> > > +			compatible = "shared-dma-pool";
> > > +			alloc-ranges = <0x0 0x0 0x0 0xffffffff>;
> > > +			size = <0x0 (160 * 0x100000)>; /* 160MiB */
> > 
> > The comment above that node, could elaborate where the value of 160MB
> > originates from. I assume it is to hold n-times of 4K frames or whatever,
> > but it would be helpful for people to be able to read that.
> > 
> 
> right, we did the following calculation to come up with this value :-
> 3840 * 2160 * 4 (bytes/pix) * 2 (frames/buffer) / 1000 / 1000 = 66M
> and then we do the 2x times of this value to be on the safer side
> and support all practical use-cases.
> 
> I'll add some more details to the comment in v3.

thanks, that will be helpful for me and everybody reading the dts later on

> 
> > 
> > > +			no-map;
> > > +			status = "disabled";
> > > +		};
> > > +	};
> > > +
> > >  	pcie30_phy_grf: syscon@fd5b8000 {
> > >  		compatible = "rockchip,rk3588-pcie3-phy-grf", "syscon";
> > >  		reg = <0x0 0xfd5b8000 0x0 0x10000>;
> > > @@ -85,6 +103,38 @@ i2s10_8ch: i2s@fde00000 {
> > >  		status = "disabled";
> > >  	};
> > >  
> > > +	hdmi_receiver: hdmi-receiver@fdee0000 {
> > 
> > Maybe rename the label to "hdmirx:" ... that way in a board enabling the
> > cma region, both nodes would stay close to each other?
> > 
> 
> Umm we already have receiver in the name so I am not sure if adding rx will be
> a good idea. I was trying to keep it consistent with the names used in other device tree files.
> In case you still feel otherwise then do let me know, I'll make the change.

I'm somewhat partial to the actual name, I was more getting at similar
names to keep things together.

General sorting rules are that &foo phandles are sorted alphabetically
in board devicetrees.

So having

&hdmirx {
	status = "okay";
};

&hdmirx_cma {
	status = "okay";
};

in the board dt, makes them stay together automatically ;-)

So if it's hdmirx + hdmirx_cma or hdmi_receiver + hdmi_receiver_cma
doesn't matter that much, just that they share a common basename.


I really want to stay away from allowing special rules for things as much
as possible, because that becomes a neverending story, so it's
alphabetical sorting.

But nothing prevents us from naming phandles in an intelligent way ;-) .


Thanks
Heiko

> > > +		compatible = "rockchip,rk3588-hdmirx-ctrler", "snps,dw-hdmi-rx";
> > > +		reg = <0x0 0xfdee0000 0x0 0x6000>;
> > > +		power-domains = <&power RK3588_PD_VO1>;
> > > +		rockchip,grf = <&sys_grf>;
> > > +		rockchip,vo1-grf = <&vo1_grf>;
> > > +		interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH 0>,
> > > +			     <GIC_SPI 436 IRQ_TYPE_LEVEL_HIGH 0>,
> > > +			     <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH 0>;
> > > +		interrupt-names = "cec", "hdmi", "dma";
> > > +		clocks = <&cru ACLK_HDMIRX>,
> > > +			 <&cru CLK_HDMIRX_AUD>,
> > > +			 <&cru CLK_CR_PARA>,
> > > +			 <&cru PCLK_HDMIRX>,
> > > +			 <&cru CLK_HDMIRX_REF>,
> > > +			 <&cru PCLK_S_HDMIRX>,
> > > +			 <&cru HCLK_VO1>;
> > > +		clock-names = "aclk",
> > > +			      "audio",
> > > +			      "cr_para",
> > > +			      "pclk",
> > > +			      "ref",
> > > +			      "hclk_s_hdmirx",
> > > +			      "hclk_vo1";
> > 
> > the driver uses of_reserved_mem_device_init(), so doesn't this node need
> > a "memory-region = <&hdmirx_cma>; or similar?
> > 
> 
> yes, we should have the memory-region property here. My bad, I'll correct this in v3.
> 
> > 
> > > +		resets = <&cru SRST_A_HDMIRX>, <&cru SRST_P_HDMIRX>,
> > > +			 <&cru SRST_HDMIRX_REF>, <&cru SRST_A_HDMIRX_BIU>;
> > > +		reset-names = "axi", "apb", "ref", "biu";
> > > +		pinctrl-0 = <&hdmim1_rx>;
> > > +		pinctrl-names = "default";
> > > +		status = "disabled";
> > > +	};
> > > +
> > >  	pcie3x4: pcie@fe150000 {
> > >  		compatible = "rockchip,rk3588-pcie", "rockchip,rk3568-pcie";
> > >  		#address-cells = <3>;
> > > @@ -339,3 +389,8 @@ pcie30phy: phy@fee80000 {
> > >  		status = "disabled";
> > >  	};
> > >  };
> > > +
> > > +&hdmirx_cma {
> > > +	status = "okay";
> > > +};
> > 
> > I'd assume a board that enables &hdmi_receiver would also enable hdmirx_cma
> > and not the soc dtsi for _all_ boards?
> > 
> 
> Actually this node should be in the rock-5b.dts file instead of here.
> v1 had it correct but I made a mistake in v2 :(
> Thanks for pointing this out, I'll fix this and send a v3 soon.





_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2024-03-05 20:21 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-05 12:36 [PATCH v2 0/6] Add Synopsys DesignWare HDMI RX Controller Shreeya Patel
2024-03-05 12:36 ` [PATCH v2 1/6] dt-bindings: reset: Define reset id used for HDMI Receiver Shreeya Patel
2024-03-05 15:02   ` Rob Herring
2024-03-05 12:36 ` [PATCH v2 2/6] clk: rockchip: rst-rk3588: Add reset line " Shreeya Patel
2024-03-05 12:36 ` [PATCH v2 3/6] dt-bindings: media: Document HDMI RX Controller Shreeya Patel
2024-03-05 15:03   ` Rob Herring
2024-03-05 12:36 ` [PATCH v2 4/6] arm64: dts: rockchip: Add device tree support for " Shreeya Patel
2024-03-05 14:11   ` Heiko Stübner
2024-03-05 19:05     ` Shreeya Patel
2024-03-05 20:20       ` Heiko Stübner [this message]
2024-03-06 19:28         ` Shreeya Patel
2024-03-05 12:36 ` [PATCH v2 6/6] MAINTAINERS: Add entry for Synopsys DesignWare HDMI RX Driver Shreeya Patel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6040170.44csPzL39Z@diego \
    --to=heiko@sntech.de \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.osipenko@collabora.com \
    --cc=hverkuil-cisco@xs4all.nl \
    --cc=hverkuil@xs4all.nl \
    --cc=jose.abreu@synopsys.com \
    --cc=kernel@collabora.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=mchehab@kernel.org \
    --cc=mturquette@baylibre.com \
    --cc=nelson.costa@synopsys.com \
    --cc=nicolas.dufresne@collabora.com \
    --cc=p.zabel@pengutronix.de \
    --cc=robh@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=sebastian.reichel@collabora.com \
    --cc=shawn.wen@rock-chips.com \
    --cc=shreeya.patel@collabora.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).