Linux clock framework development
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Michal Wilczynski" <m.wilczynski@samsung.com>
Cc: linux-clk@vger.kernel.org, neil.armstrong@linaro.org,
	olteanv@gmail.com, linux-phy@lists.infradead.org,
	dri-devel@lists.freedesktop.org, robh@kernel.org,
	devicetree@vger.kernel.org, conor+dt@kernel.org,
	mfd@lists.linux.dev, vkoul@kernel.org, lee@kernel.org
Subject: Re: [PATCH v4 19/20] riscv: dts: starfive: jh7110: Update DT for display subsystem
Date: Tue, 15 Sep 2026 15:49:23 +0000	[thread overview]
Message-ID: <20260915154923.E31541F0089A@smtp.kernel.org> (raw)
In-Reply-To: <20260915-jh7110-clean-send-v4-19-f0e4fd6f2cc8@samsung.com>

Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [High] dts: CMA allocation failure on 1GB boards
- [Medium] dts: missing 'status = "disabled"' in SoC DTSI for display IPs
- [Low] dts: redundant reg property on display-subsystem bus node
--

commit d9fbb93d7964da0ec9e48356030bc459050f3218
Author: Michal Wilczynski <m.wilczynski@samsung.com>

riscv: dts: starfive: jh7110: Update DT for display subsystem

This commit activates the display subsystem on the JH7110 SoC by describing
the video output subsystem, HDMI block, and voutcrg in the device tree. It
restructures the HDMI node into a container with phy and controller children
to break a circular clock dependency. Additionally, the CMA pool is expanded
and constrained to memory addressable by the display controller.

> diff --git a/arch/riscv/boot/dts/starfive/jh7110-common.dtsi b/arch/riscv/boot/dts/starfive/jh7110-common.dtsi
> index a7a1c09a2c907..a4c3daf712a63 100644
> --- a/arch/riscv/boot/dts/starfive/jh7110-common.dtsi
> +++ b/arch/riscv/boot/dts/starfive/jh7110-common.dtsi
> @@ -33,6 +33,27 @@ memory@40000000 {
>  		bootph-pre-ram;
>  	};
>  
> +	reserved-memory {
> +		#address-cells = <2>;
> +		#size-cells = <2>;
> +		ranges;
> +
> +		/*
> +		 * The display controller allocates its framebuffers from CMA,
> +		 * and the default pool is too small for them. Keep the pool
> +		 * inside the range the controller can address; it fits in the
> +		 * memory every VisionFive 2 variant has.
> +		 */
> +		linux,cma {
> +			compatible = "shared-dma-pool";
> +			reusable;
> +			size = <0x0 0x20000000>;
> +			alignment = <0x0 0x1000>;
> +			alloc-ranges = <0x0 0x70000000 0x0 0x20000000>;

[Severity: High]
Will this unconditionally fail to allocate the CMA pool on 1GB boards?

On boards like the 1GB Milk-V Mars, physical RAM starts at 0x40000000 and 
ends at 0x80000000. With alloc-ranges starting at 0x70000000, there is only
256MB of physical memory available within the requested bounds, making a
512MB allocation mathematically impossible.

> +			linux,cma-default;
> +		};
> +	};
> +

[ ... ]

> diff --git a/arch/riscv/boot/dts/starfive/jh7110.dtsi b/arch/riscv/boot/dts/starfive/jh7110.dtsi
> index 9c3e4598747eb..bc2470963520e 100644
> --- a/arch/riscv/boot/dts/starfive/jh7110.dtsi
> +++ b/arch/riscv/boot/dts/starfive/jh7110.dtsi

[ ... ]

> @@ -1199,22 +1200,84 @@ csi_phy: phy@19820000 {
>  			#phy-cells = <0>;
>  		};
>  
> -		voutcrg: clock-controller@295c0000 {
> -			compatible = "starfive,jh7110-voutcrg";
> -			reg = <0x0 0x295c0000 0x0 0x10000>;
> -			clocks = <&syscrg JH7110_SYSCLK_VOUT_SRC>,
> -				 <&syscrg JH7110_SYSCLK_VOUT_TOP_AHB>,
> -				 <&syscrg JH7110_SYSCLK_VOUT_TOP_AXI>,
> -				 <&syscrg JH7110_SYSCLK_VOUT_TOP_HDMITX0_MCLK>,
> -				 <&syscrg JH7110_SYSCLK_I2STX0_BCLK>,
> -				 <&hdmitx0_pixelclk>;
> -			clock-names = "vout_src", "vout_top_ahb",
> -				      "vout_top_axi", "vout_top_hdmitx0_mclk",
> -				      "i2stx0_bclk", "hdmitx0_pixelclk";
> -			resets = <&syscrg JH7110_SYSRST_VOUT_TOP_SRC>;
> -			#clock-cells = <1>;
> -			#reset-cells = <1>;
> +		vout_subsystem: display-subsystem@29400000 {
> +			compatible = "starfive,jh7110-vout-subsystem";
> +			reg = <0x0 0x29400000 0x0 0x200000>;
> +			ranges;

[Severity: Low]
Is this reg property redundant on the bus node?

It assigns a memory region to a bus node that does not own configuration
registers, simply to represent the aggregated bounds of its children. The
dc8200 child claims the exact same starting physical registers.

> +			#address-cells = <2>;
> +			#size-cells = <2>;
> +			clocks = <&syscrg JH7110_SYSCLK_NOC_BUS_DISP_AXI>;
> +			dma-noncoherent;
>  			power-domains = <&pwrc JH7110_PD_VOUT>;
> +			resets = <&syscrg JH7110_SYSRST_NOC_BUS_DISP_AXI>;
> +
> +			dc8200: display@29400000 {
> +				compatible = "starfive,jh7110-dc8200", "verisilicon,dc";

[Severity: Medium]
Should this SoC-level IP definition include status = "disabled"?

Custom boards that include jh7110.dtsi but do not include jh7110-common.dtsi
will attempt to probe this IP by default. Headless boards lacking physical
HDMI connectors and necessary board-level pinmuxing may experience probe
errors or unwanted resource consumption.

> +				reg = <0x0 0x29400000 0x0 0x2800>;
> +				clocks = <&voutcrg JH7110_VOUTCLK_DC8200_CORE>,
> +					 <&voutcrg JH7110_VOUTCLK_DC8200_AXI>,

[ ... ]

> +				resets = <&voutcrg JH7110_VOUTRST_DC8200_CORE>,
> +					 <&voutcrg JH7110_VOUTRST_DC8200_AXI>,
> +					 <&voutcrg JH7110_VOUTRST_DC8200_AHB>;
> +				reset-names = "core", "axi", "ahb";
> +			};
> +
> +			hdmi_subsystem: hdmi@29590000 {
> +				compatible = "starfive,jh7110-hdmi-subsystem";

[Severity: Medium]
Should the hdmi_subsystem IP definition also be disabled by default at the
SoC level?

Like the dc8200 node above, enabling this by default in the SoC devicetree
may cause unintended probe attempts on boards that do not utilize the display
subsystem.

> +				reg = <0x0 0x29590000 0x0 0x4000>;
> +
> +				hdmi_controller: controller {

[ ... ]

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260915-jh7110-clean-send-v4-0-f0e4fd6f2cc8@samsung.com?part=19

  reply	other threads:[~2026-09-15 15:49 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20260915153213eucas1p148f013af239a334fc78cdc249c0f8a61@eucas1p1.samsung.com>
2026-09-15 15:32 ` [PATCH v4 00/20] drm: starfive: jh7110: Enable display subsystem Michal Wilczynski
2026-09-15 15:32   ` [PATCH v4 01/20] dt-bindings: phy: Add starfive,jh7110-inno-hdmi-phy Michal Wilczynski
2026-09-15 15:35     ` sashiko-bot
2026-09-17  6:51     ` Krzysztof Kozlowski
2026-09-18  0:34       ` Joshua Peisach
2026-09-18  6:16         ` Krzysztof Kozlowski
2026-09-18  6:21           ` Icenowy Zheng
2026-09-18  6:41             ` Krzysztof Kozlowski
2026-09-25 21:27           ` Michal Wilczynski
2026-09-25 21:05       ` Michal Wilczynski
2026-09-30 11:01         ` Krzysztof Kozlowski
2026-10-03 15:36           ` Michal Wilczynski
2026-10-03 20:45             ` Krzysztof Kozlowski
2026-10-03 22:35               ` Michal Wilczynski
2026-10-04  7:15                 ` Krzysztof Kozlowski
2026-10-05  7:27                 ` Icenowy Zheng
2026-09-15 15:32   ` [PATCH v4 02/20] dt-bindings: display: bridge: Add starfive,jh7110-inno-hdmi-controller Michal Wilczynski
2026-09-15 15:35     ` sashiko-bot
2026-09-15 15:32   ` [PATCH v4 03/20] dt-bindings: mfd: Add starfive,jh7110-hdmi-subsystem Michal Wilczynski
2026-09-15 15:42     ` sashiko-bot
2026-09-17  6:54     ` Krzysztof Kozlowski
2026-09-28 18:34       ` Michal Wilczynski
2026-09-15 15:32   ` [PATCH v4 04/20] dt-bindings: soc: starfive: Add starfive,jh7110-vout-syscon Michal Wilczynski
2026-09-15 15:35     ` sashiko-bot
2026-09-17  6:55     ` Krzysztof Kozlowski
2026-09-15 15:32   ` [PATCH v4 05/20] dt-bindings: display: verisilicon: Add starfive,jh7110-dc8200 Michal Wilczynski
2026-09-15 15:35     ` sashiko-bot
2026-09-18  5:58     ` Icenowy Zheng
2026-09-27 15:26       ` Michal Wilczynski
2026-09-15 15:32   ` [PATCH v4 06/20] dt-bindings: soc: starfive: Add starfive,jh7110-vout-subsystem Michal Wilczynski
2026-09-15 15:35     ` sashiko-bot
2026-09-24 15:30     ` Rob Herring (Arm)
2026-09-15 15:32   ` [PATCH v4 07/20] drm/bridge: inno-hdmi: Split probe out of bind Michal Wilczynski
2026-09-15 15:44     ` sashiko-bot
2026-09-15 15:32   ` [PATCH v4 08/20] drm/bridge: inno-hdmi: Allow the register map to come from a parent Michal Wilczynski
2026-09-15 15:42     ` sashiko-bot
2026-09-15 15:32   ` [PATCH v4 09/20] drm/bridge: inno-hdmi: Add .disable platform operation Michal Wilczynski
2026-09-15 15:43     ` sashiko-bot
2026-09-15 15:32   ` [PATCH v4 10/20] drm/bridge: inno-hdmi: Add .mode_valid " Michal Wilczynski
2026-09-15 15:37     ` sashiko-bot
2026-09-15 15:32   ` [PATCH v4 11/20] drm/bridge: inno-hdmi: Make the PHY configuration table optional Michal Wilczynski
2026-09-15 15:40     ` sashiko-bot
2026-09-15 15:32   ` [PATCH v4 12/20] soc: starfive: Add jh7110-hdmi-subsystem driver Michal Wilczynski
2026-09-15 15:44     ` sashiko-bot
2026-09-29 15:04     ` Icenowy Zheng
2026-09-15 15:32   ` [PATCH v4 13/20] soc: starfive: Add jh7110-vout-subsystem driver Michal Wilczynski
2026-09-15 15:42     ` sashiko-bot
2026-09-29 15:04     ` Icenowy Zheng
2026-09-15 15:32   ` [PATCH v4 14/20] clk: starfive: jh7110-vout: Allow pixel clock rate propagation Michal Wilczynski
2026-09-15 15:38     ` sashiko-bot
2026-09-15 15:32   ` [PATCH v4 15/20] drm/bridge: starfive: Add JH7110 HDMI controller driver Michal Wilczynski
2026-09-15 15:42     ` sashiko-bot
2026-09-29 15:03     ` Icenowy Zheng
2026-09-15 15:32   ` [PATCH v4 16/20] phy: Add common Innosilicon HDMI PHY helpers Michal Wilczynski
2026-09-15 15:42     ` sashiko-bot
2026-10-03 14:22     ` Vinod Koul
2026-09-15 15:32   ` [PATCH v4 17/20] phy: rockchip: inno-hdmi: Use the common Innosilicon " Michal Wilczynski
2026-09-15 15:44     ` sashiko-bot
2026-09-15 15:32   ` [PATCH v4 18/20] phy: starfive: Add jh7110-inno-hdmi-phy driver Michal Wilczynski
2026-09-15 15:46     ` sashiko-bot
2026-09-26  3:31     ` Dominique Belhachemi
2026-09-27 12:05       ` Michal Wilczynski
2026-09-15 15:32   ` [PATCH v4 19/20] riscv: dts: starfive: jh7110: Update DT for display subsystem Michal Wilczynski
2026-09-15 15:49     ` sashiko-bot [this message]
2026-09-29 15:06     ` Icenowy Zheng
2026-09-15 15:32   ` [PATCH v4 20/20] MAINTAINERS: Add StarFive JH7110 display subsystem entry Michal Wilczynski
2026-09-16  0:45   ` [PATCH v4 00/20] drm: starfive: jh7110: Enable display subsystem Joshua Peisach
2026-09-17 17:22     ` Michal Wilczynski
2026-09-18 15:32       ` Joshua Peisach
2026-09-27 12:24         ` Michal Wilczynski
2026-09-20  6:09   ` Byron Stanoszek
2026-09-20  7:35     ` Icenowy Zheng
2026-09-25 20:09       ` Michal Wilczynski
2026-09-25 13:55   ` (subset) " Brian Masney

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=20260915154923.E31541F0089A@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=lee@kernel.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-phy@lists.infradead.org \
    --cc=m.wilczynski@samsung.com \
    --cc=mfd@lists.linux.dev \
    --cc=neil.armstrong@linaro.org \
    --cc=olteanv@gmail.com \
    --cc=robh@kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=vkoul@kernel.org \
    /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