* [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).