All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Xuyang Dong" <dongxuyang@eswincomputing.com>
To: "Han Gao" <gaohan@iscas.ac.cn>,
	"Yifeng Huang" <huangyifeng@eswincomputing.com>,
	"Stephen Boyd" <sboyd@kernel.org>,
	"Brian Masney" <bmasney+clk@redhat.com>,
	"Jerome Brunet" <jbrunet+clk@baylibre.com>
Cc: "Brian Masney" <bmasney@redhat.com>,
	linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-riscv@lists.infradead.org,
	"Min Lin" <linmin@eswincomputing.com>,
	"Pinkesh Vaghela" <pinkesh.vaghela@einfochips.com>,
	"Pritesh Patel" <pritesh.patel@einfochips.com>,
	"Han Gao" <rabenda.cn@gmail.com>
Subject: Re: [PATCH] clk: eswin: Keep the TCU AXI clock enabled
Date: Thu, 12 Nov 2026 09:12:05 +0800 (GMT+08:00)	[thread overview]
Message-ID: <b81e73b.6e7.1a1cd4fdbb8.Coremail.dongxuyang@eswincomputing.com> (raw)
In-Reply-To: <20261110-eic7700-tcu-aclk-v1-1-72db82bf59c1@iscas.ac.cn>

> 
> The SMMU TCU needs its AXI clock for DMA, even in bypass mode. No driver
> claims this clock, so clk_disable_unused() gates it and DMA through the
> SMMU stalls. On the HiFive Premier P550, this hangs firmware loading of
> an RX550 graphics card.
> 
> Mark the clock as critical.
> 
> Fixes: cd44f127c1d4 ("clk: eswin: Add eic7700 clock driver")
> Signed-off-by: Han Gao <gaohan@iscas.ac.cn>
> ---
> Tested on the HiFive Premier P550 with an RX550 graphics card:
> 
> - Without this patch, amdgpu stalls while loading the RX550 firmware
>   and CPUs can no longer be halted.
> - With only the TCU AXI clock kept enabled (the TCU configuration clock
>   is still managed normally), amdgpu initializes and the IB ring tests
>   pass without any manual register writes.
> ---
>  drivers/clk/eswin/clk-eic7700.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/clk/eswin/clk-eic7700.c b/drivers/clk/eswin/clk-eic7700.c
> index 43a47fe16ab14ae1d1cacc3a0da0203e412541c0..7c95055f13eb782a03723e4475d63060d37711aa 100644
> --- a/drivers/clk/eswin/clk-eic7700.c
> +++ b/drivers/clk/eswin/clk-eic7700.c
> @@ -832,8 +832,10 @@ static struct eswin_clk_info eic7700_clks[] = {
>  	ESWIN_GATE_TYPE(EIC7700_CLK_GATE_D2D_CFG_CLK, "gate_d2d_cfg_clk",
>  			EIC7700_CLK_MUX_SYSCFG_CLK_ROOT_2MUX1_GFREE,
>  			CLK_SET_RATE_PARENT, EIC7700_REG_OFFSET_D2D_CFG, 31, 0),
> +	/* DMA through the SMMU still needs the TCU AXI clock in bypass mode. */
>  	ESWIN_GATE_TYPE(EIC7700_CLK_GATE_TCU_ACLK, "gate_tcu_aclk",
> -			EIC7700_CLK_DIV_DDR_ACLK_DYNM, CLK_SET_RATE_PARENT,
> +			EIC7700_CLK_DIV_DDR_ACLK_DYNM,
> +			CLK_SET_RATE_PARENT | CLK_IS_CRITICAL,
>  			EIC7700_REG_OFFSET_TCU_ACLK, 31, 0),
>  	ESWIN_GATE_TYPE(EIC7700_CLK_GATE_TCU_CFG_CLK, "gate_tcu_cfg_clk",
>  			EIC7700_CLK_MUX_SYSCFG_CLK_ROOT_2MUX1_GFREE,
> 

Acked-by: Xuyang Dong <dongxuyang@eswincomputing.com>

Thanks,
Xuyang Dong
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

WARNING: multiple messages have this Message-ID (diff)
From: "Xuyang Dong" <dongxuyang@eswincomputing.com>
To: "Han Gao" <gaohan@iscas.ac.cn>,
	"Yifeng Huang" <huangyifeng@eswincomputing.com>,
	"Stephen Boyd" <sboyd@kernel.org>,
	"Brian Masney" <bmasney+clk@redhat.com>,
	"Jerome Brunet" <jbrunet+clk@baylibre.com>
Cc: "Brian Masney" <bmasney@redhat.com>,
	linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-riscv@lists.infradead.org,
	"Min Lin" <linmin@eswincomputing.com>,
	"Pinkesh Vaghela" <pinkesh.vaghela@einfochips.com>,
	"Pritesh Patel" <pritesh.patel@einfochips.com>,
	"Han Gao" <rabenda.cn@gmail.com>
Subject: Re: [PATCH] clk: eswin: Keep the TCU AXI clock enabled
Date: Thu, 12 Nov 2026 09:12:05 +0800 (GMT+08:00)	[thread overview]
Message-ID: <b81e73b.6e7.1a1cd4fdbb8.Coremail.dongxuyang@eswincomputing.com> (raw)
In-Reply-To: <20261110-eic7700-tcu-aclk-v1-1-72db82bf59c1@iscas.ac.cn>

> 
> The SMMU TCU needs its AXI clock for DMA, even in bypass mode. No driver
> claims this clock, so clk_disable_unused() gates it and DMA through the
> SMMU stalls. On the HiFive Premier P550, this hangs firmware loading of
> an RX550 graphics card.
> 
> Mark the clock as critical.
> 
> Fixes: cd44f127c1d4 ("clk: eswin: Add eic7700 clock driver")
> Signed-off-by: Han Gao <gaohan@iscas.ac.cn>
> ---
> Tested on the HiFive Premier P550 with an RX550 graphics card:
> 
> - Without this patch, amdgpu stalls while loading the RX550 firmware
>   and CPUs can no longer be halted.
> - With only the TCU AXI clock kept enabled (the TCU configuration clock
>   is still managed normally), amdgpu initializes and the IB ring tests
>   pass without any manual register writes.
> ---
>  drivers/clk/eswin/clk-eic7700.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/clk/eswin/clk-eic7700.c b/drivers/clk/eswin/clk-eic7700.c
> index 43a47fe16ab14ae1d1cacc3a0da0203e412541c0..7c95055f13eb782a03723e4475d63060d37711aa 100644
> --- a/drivers/clk/eswin/clk-eic7700.c
> +++ b/drivers/clk/eswin/clk-eic7700.c
> @@ -832,8 +832,10 @@ static struct eswin_clk_info eic7700_clks[] = {
>  	ESWIN_GATE_TYPE(EIC7700_CLK_GATE_D2D_CFG_CLK, "gate_d2d_cfg_clk",
>  			EIC7700_CLK_MUX_SYSCFG_CLK_ROOT_2MUX1_GFREE,
>  			CLK_SET_RATE_PARENT, EIC7700_REG_OFFSET_D2D_CFG, 31, 0),
> +	/* DMA through the SMMU still needs the TCU AXI clock in bypass mode. */
>  	ESWIN_GATE_TYPE(EIC7700_CLK_GATE_TCU_ACLK, "gate_tcu_aclk",
> -			EIC7700_CLK_DIV_DDR_ACLK_DYNM, CLK_SET_RATE_PARENT,
> +			EIC7700_CLK_DIV_DDR_ACLK_DYNM,
> +			CLK_SET_RATE_PARENT | CLK_IS_CRITICAL,
>  			EIC7700_REG_OFFSET_TCU_ACLK, 31, 0),
>  	ESWIN_GATE_TYPE(EIC7700_CLK_GATE_TCU_CFG_CLK, "gate_tcu_cfg_clk",
>  			EIC7700_CLK_MUX_SYSCFG_CLK_ROOT_2MUX1_GFREE,
> 

Acked-by: Xuyang Dong <dongxuyang@eswincomputing.com>

Thanks,
Xuyang Dong

  parent reply	other threads:[~2026-11-12  1:12 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-10 13:32 [PATCH] clk: eswin: Keep the TCU AXI clock enabled Han Gao
2026-11-10 13:32 ` Han Gao
2026-11-11 15:28 ` Brian Masney
2026-11-11 15:28   ` Brian Masney
2026-11-12  1:12 ` Xuyang Dong [this message]
2026-11-12  1:12   ` Xuyang Dong

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=b81e73b.6e7.1a1cd4fdbb8.Coremail.dongxuyang@eswincomputing.com \
    --to=dongxuyang@eswincomputing.com \
    --cc=bmasney+clk@redhat.com \
    --cc=bmasney@redhat.com \
    --cc=gaohan@iscas.ac.cn \
    --cc=huangyifeng@eswincomputing.com \
    --cc=jbrunet+clk@baylibre.com \
    --cc=linmin@eswincomputing.com \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=pinkesh.vaghela@einfochips.com \
    --cc=pritesh.patel@einfochips.com \
    --cc=rabenda.cn@gmail.com \
    --cc=sboyd@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.