* [PATCH] arm64: dts: imx95: Use GPU_CGC as core clock for GPU
@ 2025-11-29 14:31 Marek Vasut
2025-12-03 2:48 ` Rain Yang
0 siblings, 1 reply; 14+ messages in thread
From: Marek Vasut @ 2025-11-29 14:31 UTC (permalink / raw)
To: linux-arm-kernel
Cc: Marek Vasut, Conor Dooley, Fabio Estevam, Frank Li,
Krzysztof Kozlowski, Peng Fan, Pengutronix Kernel Team, Rain Yang,
Rob Herring, Sascha Hauer, Shawn Guo, devicetree, imx
The i.MX95 imx-sm introduced new GPU_CGC clock since imx-sm commit
ca5e078833fa ("SM-128: Add clock management via CCM LPCG direct control")
which are downstream clock of GPU clock. These new GPU_CGC clock
gate the existing GPU clock. Currently, without clk_ignore_unused
on kernel command line, those new GPU_CGC clock are unused and the
kernel will disable them. This has no impact on i.MX95 A0/A1, but
does prevent GPU register access from working at all on i.MX95 B0.
The GPU_CGC clock are present on both i.MX95 A0/A1/B0, therefore
update the DT such, that the GPU core clock are the GPU_CGC clock.
When the panthor driver enables the GPU core clock, it enables both
the GPU_CGC as well as its parent GPU clock.
Fixes: 67934f248e64 ("arm64: dts: imx95: Describe Mali G310 GPU")
Signed-off-by: Marek Vasut <marek.vasut@mailbox.org>
---
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Frank Li <Frank.li@nxp.com>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Rain Yang <jiyu.yang@oss.nxp.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: devicetree@vger.kernel.org
Cc: imx@lists.linux.dev
Cc: linux-arm-kernel@lists.infradead.org
---
arch/arm64/boot/dts/freescale/imx95-clock.h | 1 +
arch/arm64/boot/dts/freescale/imx95.dtsi | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/freescale/imx95-clock.h b/arch/arm64/boot/dts/freescale/imx95-clock.h
index e1f91203e7947..22311612e4403 100644
--- a/arch/arm64/boot/dts/freescale/imx95-clock.h
+++ b/arch/arm64/boot/dts/freescale/imx95-clock.h
@@ -183,5 +183,6 @@
#define IMX95_CLK_SEL_A55P (IMX95_CCM_NUM_CLK_SRC + 123 + 7)
#define IMX95_CLK_SEL_DRAM (IMX95_CCM_NUM_CLK_SRC + 123 + 8)
#define IMX95_CLK_SEL_TEMPSENSE (IMX95_CCM_NUM_CLK_SRC + 123 + 9)
+#define IMX95_CLK_GPU_CGC (IMX95_CCM_NUM_CLK_SRC + 123 + 10)
#endif /* __CLOCK_IMX95_H */
diff --git a/arch/arm64/boot/dts/freescale/imx95.dtsi b/arch/arm64/boot/dts/freescale/imx95.dtsi
index 6091c2713fa48..47f20e501315f 100644
--- a/arch/arm64/boot/dts/freescale/imx95.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx95.dtsi
@@ -2874,7 +2874,7 @@ netc_emdio: mdio@0,0 {
gpu: gpu@4d900000 {
compatible = "nxp,imx95-mali", "arm,mali-valhall-csf";
reg = <0 0x4d900000 0 0x480000>;
- clocks = <&scmi_clk IMX95_CLK_GPU>, <&scmi_clk IMX95_CLK_GPUAPB>;
+ clocks = <&scmi_clk IMX95_CLK_GPU_CGC>, <&scmi_clk IMX95_CLK_GPUAPB>;
clock-names = "core", "coregroup";
interrupts = <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>,
--
2.51.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: imx95: Use GPU_CGC as core clock for GPU
2025-11-29 14:31 [PATCH] arm64: dts: imx95: Use GPU_CGC as core clock for GPU Marek Vasut
@ 2025-12-03 2:48 ` Rain Yang
2025-12-03 3:38 ` Marek Vasut
0 siblings, 1 reply; 14+ messages in thread
From: Rain Yang @ 2025-12-03 2:48 UTC (permalink / raw)
To: Marek Vasut
Cc: Frank.li, conor+dt, devicetree, festevam, imx, jiyu.yang, kernel,
krzk+dt, linux-arm-kernel, peng.fan, robh, s.hauer, shawnguo
On Sat, Nov 29, 2025 at 03:31:30PM +0100, Marek Vasut wrote:
>The i.MX95 imx-sm introduced new GPU_CGC clock since imx-sm commit
>ca5e078833fa ("SM-128: Add clock management via CCM LPCG direct control")
>which are downstream clock of GPU clock. These new GPU_CGC clock
>gate the existing GPU clock. Currently, without clk_ignore_unused
>on kernel command line, those new GPU_CGC clock are unused and the
>kernel will disable them. This has no impact on i.MX95 A0/A1, but
>does prevent GPU register access from working at all on i.MX95 B0.
>The GPU_CGC clock are present on both i.MX95 A0/A1/B0, therefore
>update the DT such, that the GPU core clock are the GPU_CGC clock.
>When the panthor driver enables the GPU core clock, it enables both
>the GPU_CGC as well as its parent GPU clock.
>
>Fixes: 67934f248e64 ("arm64: dts: imx95: Describe Mali G310 GPU")
>Signed-off-by: Marek Vasut <marek.vasut@mailbox.org>
>---
>Cc: Conor Dooley <conor+dt@kernel.org>
>Cc: Fabio Estevam <festevam@gmail.com>
>Cc: Frank Li <Frank.li@nxp.com>
>Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
>Cc: Peng Fan <peng.fan@nxp.com>
>Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
>Cc: Rain Yang <jiyu.yang@oss.nxp.com>
>Cc: Rob Herring <robh@kernel.org>
>Cc: Sascha Hauer <s.hauer@pengutronix.de>
>Cc: Shawn Guo <shawnguo@kernel.org>
>Cc: devicetree@vger.kernel.org
>Cc: imx@lists.linux.dev
>Cc: linux-arm-kernel@lists.infradead.org
>---
> arch/arm64/boot/dts/freescale/imx95-clock.h | 1 +
> arch/arm64/boot/dts/freescale/imx95.dtsi | 2 +-
> 2 files changed, 2 insertions(+), 1 deletion(-)
>
>diff --git a/arch/arm64/boot/dts/freescale/imx95-clock.h b/arch/arm64/boot/dts/freescale/imx95-clock.h
>index e1f91203e7947..22311612e4403 100644
>--- a/arch/arm64/boot/dts/freescale/imx95-clock.h
>+++ b/arch/arm64/boot/dts/freescale/imx95-clock.h
>@@ -183,5 +183,6 @@
> #define IMX95_CLK_SEL_A55P (IMX95_CCM_NUM_CLK_SRC + 123 + 7)
> #define IMX95_CLK_SEL_DRAM (IMX95_CCM_NUM_CLK_SRC + 123 + 8)
> #define IMX95_CLK_SEL_TEMPSENSE (IMX95_CCM_NUM_CLK_SRC + 123 + 9)
>+#define IMX95_CLK_GPU_CGC (IMX95_CCM_NUM_CLK_SRC + 123 + 10)
>
> #endif /* __CLOCK_IMX95_H */
>diff --git a/arch/arm64/boot/dts/freescale/imx95.dtsi b/arch/arm64/boot/dts/freescale/imx95.dtsi
>index 6091c2713fa48..47f20e501315f 100644
>--- a/arch/arm64/boot/dts/freescale/imx95.dtsi
>+++ b/arch/arm64/boot/dts/freescale/imx95.dtsi
>@@ -2874,7 +2874,7 @@ netc_emdio: mdio@0,0 {
> gpu: gpu@4d900000 {
> compatible = "nxp,imx95-mali", "arm,mali-valhall-csf";
> reg = <0 0x4d900000 0 0x480000>;
>- clocks = <&scmi_clk IMX95_CLK_GPU>, <&scmi_clk IMX95_CLK_GPUAPB>;
>+ clocks = <&scmi_clk IMX95_CLK_GPU_CGC>, <&scmi_clk IMX95_CLK_GPUAPB>;
> clock-names = "core", "coregroup";
> interrupts = <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH>,
> <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>,
>--
>2.51.0
>
Hi Marek,
Thanks for integrating this downstream patch. Please note that CLK_GPUAPB and CLK_GPU are
always-on, so the commit message should be amended accordingly.
Additionally, the IMX95_CLK_GPUAPB handle shall be removed, as there is no valid OPP entry
in the frequency table, this also helps minimize differences between downstream and upstream,
reducing maintenance effort.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: imx95: Use GPU_CGC as core clock for GPU
2025-12-03 2:48 ` Rain Yang
@ 2025-12-03 3:38 ` Marek Vasut
2025-12-03 9:28 ` Rain Yang
0 siblings, 1 reply; 14+ messages in thread
From: Marek Vasut @ 2025-12-03 3:38 UTC (permalink / raw)
To: Rain Yang
Cc: Frank.li, conor+dt, devicetree, festevam, imx, kernel, krzk+dt,
linux-arm-kernel, peng.fan, robh, s.hauer, shawnguo
On 12/3/25 3:48 AM, Rain Yang wrote:
Hello Rain,
>> diff --git a/arch/arm64/boot/dts/freescale/imx95-clock.h b/arch/arm64/boot/dts/freescale/imx95-clock.h
>> index e1f91203e7947..22311612e4403 100644
>> --- a/arch/arm64/boot/dts/freescale/imx95-clock.h
>> +++ b/arch/arm64/boot/dts/freescale/imx95-clock.h
>> @@ -183,5 +183,6 @@
>> #define IMX95_CLK_SEL_A55P (IMX95_CCM_NUM_CLK_SRC + 123 + 7)
>> #define IMX95_CLK_SEL_DRAM (IMX95_CCM_NUM_CLK_SRC + 123 + 8)
>> #define IMX95_CLK_SEL_TEMPSENSE (IMX95_CCM_NUM_CLK_SRC + 123 + 9)
>> +#define IMX95_CLK_GPU_CGC (IMX95_CCM_NUM_CLK_SRC + 123 + 10)
>>
>> #endif /* __CLOCK_IMX95_H */
>> diff --git a/arch/arm64/boot/dts/freescale/imx95.dtsi b/arch/arm64/boot/dts/freescale/imx95.dtsi
>> index 6091c2713fa48..47f20e501315f 100644
>> --- a/arch/arm64/boot/dts/freescale/imx95.dtsi
>> +++ b/arch/arm64/boot/dts/freescale/imx95.dtsi
>> @@ -2874,7 +2874,7 @@ netc_emdio: mdio@0,0 {
>> gpu: gpu@4d900000 {
>> compatible = "nxp,imx95-mali", "arm,mali-valhall-csf";
>> reg = <0 0x4d900000 0 0x480000>;
>> - clocks = <&scmi_clk IMX95_CLK_GPU>, <&scmi_clk IMX95_CLK_GPUAPB>;
>> + clocks = <&scmi_clk IMX95_CLK_GPU_CGC>, <&scmi_clk IMX95_CLK_GPUAPB>;
>> clock-names = "core", "coregroup";
>> interrupts = <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH>,
>> <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>,
>> --
>> 2.51.0
>>
> Hi Marek,
>
> Thanks for integrating this downstream patch.
Which downstream patch do you refer to ?
> Please note that CLK_GPUAPB and CLK_GPU are
> always-on, so the commit message should be amended accordingly.
The GPU clock do not seem to be always-on, neither do the GPUAPB . It
seems the SM can turn those clock off perfectly well.
> Additionally, the IMX95_CLK_GPUAPB handle shall be removed, as there is no valid OPP entry
> in the frequency table, this also helps minimize differences between downstream and upstream,
> reducing maintenance effort.
Downstream kernel forks are not relevant to this discussion, upstream
your content and then you won't have to spend maintenance effort on
downstream stuff.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: imx95: Use GPU_CGC as core clock for GPU
2025-12-03 3:38 ` Marek Vasut
@ 2025-12-03 9:28 ` Rain Yang
2025-12-03 22:48 ` Marek Vasut
0 siblings, 1 reply; 14+ messages in thread
From: Rain Yang @ 2025-12-03 9:28 UTC (permalink / raw)
To: Marek Vasut
Cc: Frank.li, conor+dt, devicetree, festevam, imx, jiyu.yang, kernel,
krzk+dt, linux-arm-kernel, peng.fan, robh, s.hauer, shawnguo
On Wed, Dec 03, 2025 at 04:38:19AM +0100, Marek Vasut wrote:
>On 12/3/25 3:48 AM, Rain Yang wrote:
>
>Hello Rain,
>
>> > diff --git a/arch/arm64/boot/dts/freescale/imx95-clock.h b/arch/arm64/boot/dts/freescale/imx95-clock.h
>> > index e1f91203e7947..22311612e4403 100644
>> > --- a/arch/arm64/boot/dts/freescale/imx95-clock.h
>> > +++ b/arch/arm64/boot/dts/freescale/imx95-clock.h
>> > @@ -183,5 +183,6 @@
>> > #define IMX95_CLK_SEL_A55P (IMX95_CCM_NUM_CLK_SRC + 123 + 7)
>> > #define IMX95_CLK_SEL_DRAM (IMX95_CCM_NUM_CLK_SRC + 123 + 8)
>> > #define IMX95_CLK_SEL_TEMPSENSE (IMX95_CCM_NUM_CLK_SRC + 123 + 9)
>> > +#define IMX95_CLK_GPU_CGC (IMX95_CCM_NUM_CLK_SRC + 123 + 10)
>> >
>> > #endif /* __CLOCK_IMX95_H */
>> > diff --git a/arch/arm64/boot/dts/freescale/imx95.dtsi b/arch/arm64/boot/dts/freescale/imx95.dtsi
>> > index 6091c2713fa48..47f20e501315f 100644
>> > --- a/arch/arm64/boot/dts/freescale/imx95.dtsi
>> > +++ b/arch/arm64/boot/dts/freescale/imx95.dtsi
>> > @@ -2874,7 +2874,7 @@ netc_emdio: mdio@0,0 {
>> > gpu: gpu@4d900000 {
>> > compatible = "nxp,imx95-mali", "arm,mali-valhall-csf";
>> > reg = <0 0x4d900000 0 0x480000>;
>> > - clocks = <&scmi_clk IMX95_CLK_GPU>, <&scmi_clk IMX95_CLK_GPUAPB>;
>> > + clocks = <&scmi_clk IMX95_CLK_GPU_CGC>, <&scmi_clk IMX95_CLK_GPUAPB>;
>> > clock-names = "core", "coregroup";
>> > interrupts = <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH>,
>> > <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>,
>> > --
>> > 2.51.0
>> >
>> Hi Marek,
>>
>> Thanks for integrating this downstream patch.
>
>Which downstream patch do you refer to ?
>
>> Please note that CLK_GPUAPB and CLK_GPU are
>> always-on, so the commit message should be amended accordingly.
>
>The GPU clock do not seem to be always-on, neither do the GPUAPB . It seems
>the SM can turn those clock off perfectly well.
>
>> Additionally, the IMX95_CLK_GPUAPB handle shall be removed, as there is no valid OPP entry
>> in the frequency table, this also helps minimize differences between downstream and upstream,
>> reducing maintenance effort.
>
>Downstream kernel forks are not relevant to this discussion, upstream your
>content and then you won't have to spend maintenance effort on downstream
>stuff.
This patch [1] was the reference point. For the Linux working environment,
CLK_GPU and CLK_GPUAPB are always-on, while CLK_GPU_CGC can be gated off.
Regarding the IMX95_CLK_GPUAPB handle, my suggestion was based on the absence
of its frequency in any OPP entry within the frequency table. Removing it
could simplify the OPP handling logic and reduce unnecessary complexity.
[1] https://github.com/nxp-imx/linux-imx/commit/695f2bdc57b869ca5189313e4b5fa7eb5a12f622
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: imx95: Use GPU_CGC as core clock for GPU
2025-12-03 9:28 ` Rain Yang
@ 2025-12-03 22:48 ` Marek Vasut
2025-12-04 3:01 ` Rain Yang
0 siblings, 1 reply; 14+ messages in thread
From: Marek Vasut @ 2025-12-03 22:48 UTC (permalink / raw)
To: Rain Yang
Cc: Frank.li, conor+dt, devicetree, festevam, imx, kernel, krzk+dt,
linux-arm-kernel, peng.fan, robh, s.hauer, shawnguo
On 12/3/25 10:28 AM, Rain Yang wrote:
Hello Rain,
>>> Thanks for integrating this downstream patch.
>>
>> Which downstream patch do you refer to ?
>>
>>> Please note that CLK_GPUAPB and CLK_GPU are
>>> always-on, so the commit message should be amended accordingly.
>>
>> The GPU clock do not seem to be always-on, neither do the GPUAPB . It seems
>> the SM can turn those clock off perfectly well.
>>
>>> Additionally, the IMX95_CLK_GPUAPB handle shall be removed, as there is no valid OPP entry
>>> in the frequency table, this also helps minimize differences between downstream and upstream,
>>> reducing maintenance effort.
>>
>> Downstream kernel forks are not relevant to this discussion, upstream your
>> content and then you won't have to spend maintenance effort on downstream
>> stuff.
>
> This patch [1] was the reference point.
Sigh ... I was not aware of that one.
Maybe next time, it would be good to upstream these changes directly ?
> For the Linux working environment,
> CLK_GPU and CLK_GPUAPB are always-on, while CLK_GPU_CGC can be gated off.
>
> Regarding the IMX95_CLK_GPUAPB handle, my suggestion was based on the absence
> of its frequency in any OPP entry within the frequency table. Removing it
> could simplify the OPP handling logic and reduce unnecessary complexity.
If the clock can be disabled by SM, Linux has to make sure they are NOT
disabled, so they must be described in DT, right ?
> [1] https://github.com/nxp-imx/linux-imx/commit/695f2bdc57b869ca5189313e4b5fa7eb5a12f622
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: imx95: Use GPU_CGC as core clock for GPU
2025-12-03 22:48 ` Marek Vasut
@ 2025-12-04 3:01 ` Rain Yang
2025-12-04 3:25 ` Marek Vasut
0 siblings, 1 reply; 14+ messages in thread
From: Rain Yang @ 2025-12-04 3:01 UTC (permalink / raw)
To: Marek Vasut
Cc: Frank.li, conor+dt, devicetree, festevam, imx, jiyu.yang, kernel,
krzk+dt, linux-arm-kernel, peng.fan, robh, s.hauer, shawnguo
On Wed, Dec 03, 2025 at 11:48:47PM +0100, Marek Vasut wrote:
>On 12/3/25 10:28 AM, Rain Yang wrote:
>
>Hello Rain,
>
>> > > Thanks for integrating this downstream patch.
>> >
>> > Which downstream patch do you refer to ?
>> >
>> > > Please note that CLK_GPUAPB and CLK_GPU are
>> > > always-on, so the commit message should be amended accordingly.
>> >
>> > The GPU clock do not seem to be always-on, neither do the GPUAPB . It seems
>> > the SM can turn those clock off perfectly well.
>> >
>> > > Additionally, the IMX95_CLK_GPUAPB handle shall be removed, as there is no valid OPP entry
>> > > in the frequency table, this also helps minimize differences between downstream and upstream,
>> > > reducing maintenance effort.
>> >
>> > Downstream kernel forks are not relevant to this discussion, upstream your
>> > content and then you won't have to spend maintenance effort on downstream
>> > stuff.
>>
>> This patch [1] was the reference point.
>
>Sigh ... I was not aware of that one.
>
>Maybe next time, it would be good to upstream these changes directly ?
>
>> For the Linux working environment,
>> CLK_GPU and CLK_GPUAPB are always-on, while CLK_GPU_CGC can be gated off.
>>
>> Regarding the IMX95_CLK_GPUAPB handle, my suggestion was based on the absence
>> of its frequency in any OPP entry within the frequency table. Removing it
>> could simplify the OPP handling logic and reduce unnecessary complexity.
>
>If the clock can be disabled by SM, Linux has to make sure they are NOT
>disabled, so they must be described in DT, right ?
>
>> [1] https://github.com/nxp-imx/linux-imx/commit/695f2bdc57b869ca5189313e4b5fa7eb5a12f622
Currently, only CLK_GPU_CGC shall be described in the Device Tree[1], as it can be gated.
The other clocks (CLK_GPU and CLK_GPUAPB) are always-on in the Linux environment,
so describing any of them in DT is not necessary and would not be proper in this context.
>
>
>--
>Best regards,
>Marek Vasut
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: imx95: Use GPU_CGC as core clock for GPU
2025-12-04 3:01 ` Rain Yang
@ 2025-12-04 3:25 ` Marek Vasut
2025-12-05 8:17 ` Rain Yang
0 siblings, 1 reply; 14+ messages in thread
From: Marek Vasut @ 2025-12-04 3:25 UTC (permalink / raw)
To: Rain Yang
Cc: Frank.li, conor+dt, devicetree, festevam, imx, kernel, krzk+dt,
linux-arm-kernel, peng.fan, robh, s.hauer, shawnguo
On 12/4/25 4:01 AM, Rain Yang wrote:
[...]
>>> For the Linux working environment,
>>> CLK_GPU and CLK_GPUAPB are always-on, while CLK_GPU_CGC can be gated off.
>>>
>>> Regarding the IMX95_CLK_GPUAPB handle, my suggestion was based on the absence
>>> of its frequency in any OPP entry within the frequency table. Removing it
>>> could simplify the OPP handling logic and reduce unnecessary complexity.
>>
>> If the clock can be disabled by SM, Linux has to make sure they are NOT
>> disabled, so they must be described in DT, right ?
>>
>>> [1] https://github.com/nxp-imx/linux-imx/commit/695f2bdc57b869ca5189313e4b5fa7eb5a12f622
> Currently, only CLK_GPU_CGC shall be described in the Device Tree[1], as it can be gated.
> The other clocks (CLK_GPU and CLK_GPUAPB) are always-on in the Linux environment,
> so describing any of them in DT is not necessary and would not be proper in this context.
Since this discussion is in fact unrelated to this bugfix, I would
propose to fork the discussion into a separate patch. Can you please
submit a patch for the GPUAPB clock ? Note that I believe GPUAPB clock
have to be described in DT, if only because DT is a hardware
description, and to make sure the GPUAPB clock are correctly enabled by
the driver.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: imx95: Use GPU_CGC as core clock for GPU
2025-12-04 3:25 ` Marek Vasut
@ 2025-12-05 8:17 ` Rain Yang
2025-12-07 9:01 ` Marek Vasut
0 siblings, 1 reply; 14+ messages in thread
From: Rain Yang @ 2025-12-05 8:17 UTC (permalink / raw)
To: Marek Vasut
Cc: Frank.li, conor+dt, devicetree, festevam, imx, jiyu.yang, kernel,
krzk+dt, linux-arm-kernel, peng.fan, robh, s.hauer, shawnguo
On Thu, Dec 04, 2025 at 04:25:38AM +0100, Marek Vasut wrote:
>On 12/4/25 4:01 AM, Rain Yang wrote:
>
>[...]
>> > > For the Linux working environment,
>> > > CLK_GPU and CLK_GPUAPB are always-on, while CLK_GPU_CGC can be gated off.
>> > >
>> > > Regarding the IMX95_CLK_GPUAPB handle, my suggestion was based on the absence
>> > > of its frequency in any OPP entry within the frequency table. Removing it
>> > > could simplify the OPP handling logic and reduce unnecessary complexity.
>> >
>> > If the clock can be disabled by SM, Linux has to make sure they are NOT
>> > disabled, so they must be described in DT, right ?
>> >
>> > > [1] https://github.com/nxp-imx/linux-imx/commit/695f2bdc57b869ca5189313e4b5fa7eb5a12f622
>> Currently, only CLK_GPU_CGC shall be described in the Device Tree[1], as it can be gated.
>> The other clocks (CLK_GPU and CLK_GPUAPB) are always-on in the Linux environment,
>> so describing any of them in DT is not necessary and would not be proper in this context.
>
>Since this discussion is in fact unrelated to this bugfix, I would propose to
>fork the discussion into a separate patch. Can you please submit a patch for
>the GPUAPB clock ? Note that I believe GPUAPB clock have to be described in
>DT, if only because DT is a hardware description, and to make sure the GPUAPB
>clock are correctly enabled by the driver.
Okay, I’ll submit a patch later.
The commit message should reflect that only CLK_GPU_CGC is enabled.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: imx95: Use GPU_CGC as core clock for GPU
2025-12-05 8:17 ` Rain Yang
@ 2025-12-07 9:01 ` Marek Vasut
2025-12-08 2:02 ` Rain Yang
0 siblings, 1 reply; 14+ messages in thread
From: Marek Vasut @ 2025-12-07 9:01 UTC (permalink / raw)
To: Rain Yang
Cc: Frank.li, conor+dt, devicetree, festevam, imx, kernel, krzk+dt,
linux-arm-kernel, peng.fan, robh, s.hauer, shawnguo
On 12/5/25 9:17 AM, Rain Yang wrote:
> On Thu, Dec 04, 2025 at 04:25:38AM +0100, Marek Vasut wrote:
>> On 12/4/25 4:01 AM, Rain Yang wrote:
>>
>> [...]
>>>>> For the Linux working environment,
>>>>> CLK_GPU and CLK_GPUAPB are always-on, while CLK_GPU_CGC can be gated off.
>>>>>
>>>>> Regarding the IMX95_CLK_GPUAPB handle, my suggestion was based on the absence
>>>>> of its frequency in any OPP entry within the frequency table. Removing it
>>>>> could simplify the OPP handling logic and reduce unnecessary complexity.
>>>>
>>>> If the clock can be disabled by SM, Linux has to make sure they are NOT
>>>> disabled, so they must be described in DT, right ?
>>>>
>>>>> [1] https://github.com/nxp-imx/linux-imx/commit/695f2bdc57b869ca5189313e4b5fa7eb5a12f622
>>> Currently, only CLK_GPU_CGC shall be described in the Device Tree[1], as it can be gated.
>>> The other clocks (CLK_GPU and CLK_GPUAPB) are always-on in the Linux environment,
>>> so describing any of them in DT is not necessary and would not be proper in this context.
>>
>> Since this discussion is in fact unrelated to this bugfix, I would propose to
>> fork the discussion into a separate patch. Can you please submit a patch for
>> the GPUAPB clock ? Note that I believe GPUAPB clock have to be described in
>> DT, if only because DT is a hardware description, and to make sure the GPUAPB
>> clock are correctly enabled by the driver.
>
> Okay, I’ll submit a patch later.
> The commit message should reflect that only CLK_GPU_CGC is enabled.
The commit message , and this change , is unrelated to GPUAPB clock.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: imx95: Use GPU_CGC as core clock for GPU
2025-12-07 9:01 ` Marek Vasut
@ 2025-12-08 2:02 ` Rain Yang
2025-12-30 1:53 ` Marek Vasut
0 siblings, 1 reply; 14+ messages in thread
From: Rain Yang @ 2025-12-08 2:02 UTC (permalink / raw)
To: Marek Vasut
Cc: Frank.li, conor+dt, devicetree, festevam, imx, jiyu.yang, kernel,
krzk+dt, linux-arm-kernel, peng.fan, robh, s.hauer, shawnguo
On Sun, Dec 07, 2025 at 10:01:06AM +0100, Marek Vasut wrote:
>On 12/5/25 9:17 AM, Rain Yang wrote:
>> On Thu, Dec 04, 2025 at 04:25:38AM +0100, Marek Vasut wrote:
>> > On 12/4/25 4:01 AM, Rain Yang wrote:
>> >
>> > [...]
>> > > > > For the Linux working environment,
>> > > > > CLK_GPU and CLK_GPUAPB are always-on, while CLK_GPU_CGC can be gated off.
>> > > > >
>> > > > > Regarding the IMX95_CLK_GPUAPB handle, my suggestion was based on the absence
>> > > > > of its frequency in any OPP entry within the frequency table. Removing it
>> > > > > could simplify the OPP handling logic and reduce unnecessary complexity.
>> > > >
>> > > > If the clock can be disabled by SM, Linux has to make sure they are NOT
>> > > > disabled, so they must be described in DT, right ?
>> > > >
>> > > > > [1] https://github.com/nxp-imx/linux-imx/commit/695f2bdc57b869ca5189313e4b5fa7eb5a12f622
>> > > Currently, only CLK_GPU_CGC shall be described in the Device Tree[1], as it can be gated.
>> > > The other clocks (CLK_GPU and CLK_GPUAPB) are always-on in the Linux environment,
>> > > so describing any of them in DT is not necessary and would not be proper in this context.
>> >
>> > Since this discussion is in fact unrelated to this bugfix, I would propose to
>> > fork the discussion into a separate patch. Can you please submit a patch for
>> > the GPUAPB clock ? Note that I believe GPUAPB clock have to be described in
>> > DT, if only because DT is a hardware description, and to make sure the GPUAPB
>> > clock are correctly enabled by the driver.
>>
>> Okay, I’ll submit a patch later.
>> The commit message should reflect that only CLK_GPU_CGC is enabled.
>
>The commit message , and this change , is unrelated to GPUAPB clock.
The commit message is ambiguous. Could you clarify which parent clock
you are referring to, and whether it can be enabled by CLK_GPU_CGC?
If it was CLK_GPU, CLK_GPU_CGC can't be able to control it.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: imx95: Use GPU_CGC as core clock for GPU
2025-12-08 2:02 ` Rain Yang
@ 2025-12-30 1:53 ` Marek Vasut
2025-12-30 2:53 ` Rain Yang
0 siblings, 1 reply; 14+ messages in thread
From: Marek Vasut @ 2025-12-30 1:53 UTC (permalink / raw)
To: peng.fan, shawnguo, Frank.li
Cc: conor+dt, devicetree, festevam, imx, kernel, krzk+dt,
linux-arm-kernel, robh, s.hauer, Rain Yang
On 12/8/25 3:02 AM, Rain Yang wrote:
>>> Okay, I’ll submit a patch later.
>>> The commit message should reflect that only CLK_GPU_CGC is enabled.
>>
>> The commit message , and this change , is unrelated to GPUAPB clock.
> The commit message is ambiguous. Could you clarify which parent clock
> you are referring to, and whether it can be enabled by CLK_GPU_CGC?
> If it was CLK_GPU, CLK_GPU_CGC can't be able to control it.
The commit message clearly states "These new GPU_CGC clock
gate the existing GPU clock." and "GPU_CGC as well as its parent GPU
clock." , I don't perceive any ambiguity, sorry.
Frankly, the whole GPUAPB discussion is entirely unrelated and it only
stalls application of this bugfix and keeps upstream broken. This is not
helping.
So unless there is anything in particular that is on-topic and prevents
this patch from being applied, it would be good to apply it, otherwise
the GPU on MX95 in mainline Linux is not working.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: imx95: Use GPU_CGC as core clock for GPU
2025-12-30 1:53 ` Marek Vasut
@ 2025-12-30 2:53 ` Rain Yang
2025-12-30 14:17 ` Marek Vasut
0 siblings, 1 reply; 14+ messages in thread
From: Rain Yang @ 2025-12-30 2:53 UTC (permalink / raw)
To: Marek Vasut
Cc: Frank.li, conor+dt, devicetree, festevam, imx, jiyu.yang, kernel,
krzk+dt, linux-arm-kernel, peng.fan, robh, s.hauer, shawnguo
On Tue, Dec 30, 2025 at 02:53:38AM +0100, Marek Vasut wrote:
>On 12/8/25 3:02 AM, Rain Yang wrote:
>
>> > > Okay, I’ll submit a patch later.
>> > > The commit message should reflect that only CLK_GPU_CGC is enabled.
>> >
>> > The commit message , and this change , is unrelated to GPUAPB clock.
>> The commit message is ambiguous. Could you clarify which parent clock
>> you are referring to, and whether it can be enabled by CLK_GPU_CGC?
>> If it was CLK_GPU, CLK_GPU_CGC can't be able to control it.
>
>The commit message clearly states "These new GPU_CGC clock
>gate the existing GPU clock." and "GPU_CGC as well as its parent GPU clock."
>, I don't perceive any ambiguity, sorry.
>
>Frankly, the whole GPUAPB discussion is entirely unrelated and it only stalls
>application of this bugfix and keeps upstream broken. This is not helping.
>
>So unless there is anything in particular that is on-topic and prevents this
>patch from being applied, it would be good to apply it, otherwise the GPU on
>MX95 in mainline Linux is not working.
Hi Marek,
I’m not opposed to this patch being merged into mainline, but the commit
message needs to be accurate. the parent CLK_GPU cannot be enabled or
disabled externally. The last sentence should clearly state:
When the panthor driver enables the GPU core clock, it enables the GPU_CGC.
This ensures the description reflects the actual hardware behavior and
avoids confusion for future maintainers.
Thanks for addressing this issue — once the commit message is corrected,
I’m fine with this going in.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: imx95: Use GPU_CGC as core clock for GPU
2025-12-30 2:53 ` Rain Yang
@ 2025-12-30 14:17 ` Marek Vasut
2025-12-31 3:06 ` Rain Yang
0 siblings, 1 reply; 14+ messages in thread
From: Marek Vasut @ 2025-12-30 14:17 UTC (permalink / raw)
To: Rain Yang
Cc: Frank.li, conor+dt, devicetree, festevam, imx, kernel, krzk+dt,
linux-arm-kernel, peng.fan, robh, s.hauer, shawnguo
On 12/30/25 3:53 AM, Rain Yang wrote:
> On Tue, Dec 30, 2025 at 02:53:38AM +0100, Marek Vasut wrote:
>> On 12/8/25 3:02 AM, Rain Yang wrote:
>>
>>>>> Okay, I’ll submit a patch later.
>>>>> The commit message should reflect that only CLK_GPU_CGC is enabled.
>>>>
>>>> The commit message , and this change , is unrelated to GPUAPB clock.
>>> The commit message is ambiguous. Could you clarify which parent clock
>>> you are referring to, and whether it can be enabled by CLK_GPU_CGC?
>>> If it was CLK_GPU, CLK_GPU_CGC can't be able to control it.
>>
>> The commit message clearly states "These new GPU_CGC clock
>> gate the existing GPU clock." and "GPU_CGC as well as its parent GPU clock."
>> , I don't perceive any ambiguity, sorry.
>>
>> Frankly, the whole GPUAPB discussion is entirely unrelated and it only stalls
>> application of this bugfix and keeps upstream broken. This is not helping.
>>
>> So unless there is anything in particular that is on-topic and prevents this
>> patch from being applied, it would be good to apply it, otherwise the GPU on
>> MX95 in mainline Linux is not working.
> Hi Marek,
>
> I’m not opposed to this patch being merged into mainline, but the commit
> message needs to be accurate. the parent CLK_GPU cannot be enabled or
> disabled externally. The last sentence should clearly state:
Look here, this is what you can do with the MX95 SM:
"
>$ clock.r
...
083: gpuapb = on, 133333333Hz
084: gpu = on, 800000000Hz
...
174: gpu_cgc = on, 800000000Hz
>$ clock.w gpu_cgc off
>$ clock.w gpu off
>$ clock.w gpuapb off
>$ clock.r
...
083: gpuapb = off, 133333333Hz
084: gpu = off, 800000000Hz
...
174: gpu_cgc = off, 800000000Hz
"
Notice how all clock are disabled, including GPU clock.
That does not agree with your statement.
> When the panthor driver enables the GPU core clock, it enables the GPU_CGC.
It also enables all disabled parent clock in the process, which includes
the GPU clock.
> This ensures the description reflects the actual hardware behavior and
> avoids confusion for future maintainers.
> Thanks for addressing this issue — once the commit message is corrected,
> I’m fine with this going in.
See above.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] arm64: dts: imx95: Use GPU_CGC as core clock for GPU
2025-12-30 14:17 ` Marek Vasut
@ 2025-12-31 3:06 ` Rain Yang
0 siblings, 0 replies; 14+ messages in thread
From: Rain Yang @ 2025-12-31 3:06 UTC (permalink / raw)
To: Marek Vasut
Cc: Frank.li, conor+dt, devicetree, festevam, imx, jiyu.yang, kernel,
krzk+dt, linux-arm-kernel, peng.fan, robh, s.hauer, shawnguo
On Tue, Dec 30, 2025 at 03:17:44PM +0100, Marek Vasut wrote:
>On 12/30/25 3:53 AM, Rain Yang wrote:
>> On Tue, Dec 30, 2025 at 02:53:38AM +0100, Marek Vasut wrote:
>> > On 12/8/25 3:02 AM, Rain Yang wrote:
>> >
>> > > > > Okay, I’ll submit a patch later.
>> > > > > The commit message should reflect that only CLK_GPU_CGC is enabled.
>> > > >
>> > > > The commit message , and this change , is unrelated to GPUAPB clock.
>> > > The commit message is ambiguous. Could you clarify which parent clock
>> > > you are referring to, and whether it can be enabled by CLK_GPU_CGC?
>> > > If it was CLK_GPU, CLK_GPU_CGC can't be able to control it.
>> >
>> > The commit message clearly states "These new GPU_CGC clock
>> > gate the existing GPU clock." and "GPU_CGC as well as its parent GPU clock."
>> > , I don't perceive any ambiguity, sorry.
>> >
>> > Frankly, the whole GPUAPB discussion is entirely unrelated and it only stalls
>> > application of this bugfix and keeps upstream broken. This is not helping.
>> >
>> > So unless there is anything in particular that is on-topic and prevents this
>> > patch from being applied, it would be good to apply it, otherwise the GPU on
>> > MX95 in mainline Linux is not working.
>> Hi Marek,
>>
>> I’m not opposed to this patch being merged into mainline, but the commit
>> message needs to be accurate. the parent CLK_GPU cannot be enabled or
>> disabled externally. The last sentence should clearly state:
>
>Look here, this is what you can do with the MX95 SM:
>
>"
>>$ clock.r
>...
>083: gpuapb = on, 133333333Hz
>084: gpu = on, 800000000Hz
>...
>174: gpu_cgc = on, 800000000Hz
>
>>$ clock.w gpu_cgc off
>>$ clock.w gpu off
>>$ clock.w gpuapb off
>
>>$ clock.r
>...
>083: gpuapb = off, 133333333Hz
>084: gpu = off, 800000000Hz
>...
>174: gpu_cgc = off, 800000000Hz
>"
>
>Notice how all clock are disabled, including GPU clock.
>
>That does not agree with your statement.
>
>> When the panthor driver enables the GPU core clock, it enables the GPU_CGC.
>
>It also enables all disabled parent clock in the process, which includes the
>GPU clock.
>
>> This ensures the description reflects the actual hardware behavior and
>> avoids confusion for future maintainers.
>> Thanks for addressing this issue — once the commit message is corrected,
>> I’m fine with this going in.
>
>See above.
Hi Marek,
Based on the instructions you gave, I’d put it this way, even though the
CLK_GPU clock can only be controlled internally.
I’m fine with your patch now.
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2025-12-31 3:07 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-29 14:31 [PATCH] arm64: dts: imx95: Use GPU_CGC as core clock for GPU Marek Vasut
2025-12-03 2:48 ` Rain Yang
2025-12-03 3:38 ` Marek Vasut
2025-12-03 9:28 ` Rain Yang
2025-12-03 22:48 ` Marek Vasut
2025-12-04 3:01 ` Rain Yang
2025-12-04 3:25 ` Marek Vasut
2025-12-05 8:17 ` Rain Yang
2025-12-07 9:01 ` Marek Vasut
2025-12-08 2:02 ` Rain Yang
2025-12-30 1:53 ` Marek Vasut
2025-12-30 2:53 ` Rain Yang
2025-12-30 14:17 ` Marek Vasut
2025-12-31 3:06 ` Rain Yang
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).