[PATCH] arm64: dts: imx95: remove CLK_GPUAPB

Marek Vasut marek.vasut at mailbox.org
Mon Jan 5 08:31:55 PST 2026


On 1/5/26 3:19 AM, Rain Yang wrote:
> On Fri, Jan 02, 2026 at 02:53:31PM +0100, Marek Vasut wrote:
>> On 1/2/26 11:37 AM, Rain Yang wrote:
>>> On Thu, Jan 01, 2026 at 05:51:12PM +0100, Marek Vasut wrote:
>>>> On 1/1/26 1:37 AM, Rain Yang wrote:
>>>>> On Wed, Dec 31, 2025 at 03:11:21PM +0100, Marek Vasut wrote:
>>>>>> On 12/31/25 4:19 AM, Rain Yang wrote:
>>>>>>> From: Rain Yang <jiyu.yang at nxp.com>
>>>>>>>
>>>>>>> Dropping CLK_GPUAPB simplifies OPP handling and avoids unnecessary
>>>>>>> complexity.
>>>>>>>
>>>>>>> Fixes: 67934f248e64 ("arm64: dts: imx95: Describe Mali G310 GPU")
>>>>>>> Signed-off-by: Rain Yang <jiyu.yang at nxp.com>
>>>>>>> ---
>>>>>>>      arch/arm64/boot/dts/freescale/imx95.dtsi | 4 ++--
>>>>>>>      1 file changed, 2 insertions(+), 2 deletions(-)
>>>>>>>
>>>>>>> diff --git a/arch/arm64/boot/dts/freescale/imx95.dtsi b/arch/arm64/boot/dts/freescale/imx95.dtsi
>>>>>>> index 88bde59e61b2..ab446aa6f73c 100644
>>>>>>> --- a/arch/arm64/boot/dts/freescale/imx95.dtsi
>>>>>>> +++ b/arch/arm64/boot/dts/freescale/imx95.dtsi
>>>>>>> @@ -2164,8 +2164,8 @@ netc_emdio: mdio at 0,0 {
>>>>>>>      		gpu: gpu at 4d900000 {
>>>>>>>      			compatible = "nxp,imx95-mali", "arm,mali-valhall-csf";
>>>>>>>      			reg = <0 0x4d900000 0 0x480000>;
>>>>>>> -			clocks = <&scmi_clk IMX95_CLK_GPU_CGC>, <&scmi_clk IMX95_CLK_GPUAPB>;
>>>>>>> -			clock-names = "core", "coregroup";
>>>>>>> +			clocks = <&scmi_clk IMX95_CLK_GPU_CGC>;
>>>>>>> +			clock-names = "core";
>>>>>>
>>>>>> I don't think this is correct, SM can disable the GPUAPB clock from the SM
>>>>>> monitor:
>>>>>>
>>>>>>> $ clock.w gpuapb off
>>>>>>
>>>>>> Linux has to make sure the GPUAPB clock are enabled to access the GPU
>>>>>> register, hence the clock have to be described in DT.
>>>>> Hi Marek,
>>>>
>>>> Hello Jiyu,
>>>>
>>>>> CLK_GPU and CLK_GPUAPB can only be controlled internally by the SM, not by Linux.
>>>>> CLK_GPUAPB always runs at a fixed frequency, does not require dynamic adjustment,
>>>>> and is practically always on.
>>>>> Additionally, CLK_GPUAPB's frequency is absent from all OPP entries. Removing it
>>>>> could simplify OPP handling logic and reduce unnecessary complexity.
>>>>
>>>> But the SM can turn the GPUAPB clock off, correct ?
>>>>
>>>> Linux has to be able to turn GPUAPB clock on, therefore the GPUAPB clock have
>>>> to be described in DT, correct ?
>>>
>>> Yes, CLK_GPUAPB can be turned off by the SM, but by default it remains on, just like
>>> CLK_GPU. AFAIK, there is no scenario where either of these clocks could or would be
>>> disabled in both SM and Linux.
>>>
>>> If enabling or disabling CLK_GPUAPB in Linux was wanted, the same shall apply to CLK_GPU
>>> to make this approach reasonable.
>>> Also, OPP framework shall be adjusted to meet these changes too.
>>
>> You can not depend on the state in which bootloader or any other prior stage
>> left the platform. If the clock can be turned off, you must make sure they
>> are turned on for correct hardware operation.
>>
>> CLK_GPU is enabled as parent clock of CLK_GPUCGC already.
> Hi Marek,
> I'm afraid it's not what you expected, the CLK_GPUCGC patch already based on the CLK_GPU is
> always-on, you can disable the CLK_GPU in SM, then run any gles application, the board will reboot.
Which kernel version are you testing ?

Also, can you share your /sys/kernel/debug/clk/clk_summary ? The clock 
relationship should be visible there.



More information about the linux-arm-kernel mailing list