2022-12-07 02:03:24

by Asahi Lina

[permalink] [raw]
Subject: [PATCH] arm64: dts: apple: t6002: Fix GPU power domains

On t6002 (M1 Ultra), each die contains a self-contained GPU block.
However, only the coprocessor and global management circuitry of the
first die are used. This is what is represented by the "gpu" PS (the
one in die1 is disabled). Nonetheless, this shared component drives the
processing blocks in both dies, and therefore depends on the AFR fabric
being powered up on both dies.

Add an explicit dependency from the GPU block on die0 to AFR on die1,
next to the existing die0 AFR dependency.

Fixes: fa86294eb355 ("arm64: dts: apple: Add initial t6000/t6001/t6002 DTs")
Signed-off-by: Asahi Lina <[email protected]>
---
arch/arm64/boot/dts/apple/t6002.dtsi | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/apple/t6002.dtsi b/arch/arm64/boot/dts/apple/t6002.dtsi
index 1376103b49c6..8fa2d8dd72ff 100644
--- a/arch/arm64/boot/dts/apple/t6002.dtsi
+++ b/arch/arm64/boot/dts/apple/t6002.dtsi
@@ -296,3 +296,8 @@ &cpu_p20 &cpu_p21 &cpu_p22 &cpu_p23
};
};
};
+
+&ps_gfx {
+ // On t6002, the die0 GPU power domain needs both AFR power domains
+ power-domains = <&ps_afr>, <&ps_afr_die1>;
+};
--
2.35.1


2022-12-07 02:06:30

by Asahi Lina

[permalink] [raw]
Subject: [PATCH] arm64 dts: apple: t600x-pmgr: Fix search & replace typo

It looks like the search-and-replace that happened to add die IDs to
the t600x PMGR tree was a little bit too eager on a comment, and nobody
noticed! Let's fix that.

Fixes: fa86294eb355 ("arm64: dts: apple: Add initial t6000/t6001/t6002 DTs")
Signed-off-by: Asahi Lina <[email protected]>
---
arch/arm64/boot/dts/apple/t600x-pmgr.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/apple/t600x-pmgr.dtsi b/arch/arm64/boot/dts/apple/t600x-pmgr.dtsi
index b8daeb0368d5..0bd44753b76a 100644
--- a/arch/arm64/boot/dts/apple/t600x-pmgr.dtsi
+++ b/arch/arm64/boot/dts/apple/t600x-pmgr.dtsi
@@ -225,7 +225,7 @@ DIE_NODE(ps_afr): power-controller@1e8 {
#power-domain-cells = <0>;
#reset-cells = <0>;
label = DIE_LABEL(afr);
- /* Apple Fabric, media DIE_NODE(stuff): this can power down */
+ /* Apple Fabric, media stuff: this can power down */
};

DIE_NODE(ps_afnc1_ioa): power-controller@1f0 {
--
2.35.1

2022-12-07 07:16:43

by Janne Grunau

[permalink] [raw]
Subject: Re: [PATCH] arm64 dts: apple: t600x-pmgr: Fix search & replace typo

On 2022-12-07 10:43:05 +0900, Asahi Lina wrote:
> It looks like the search-and-replace that happened to add die IDs to
> the t600x PMGR tree was a little bit too eager on a comment, and nobody
> noticed! Let's fix that.
>
> Fixes: fa86294eb355 ("arm64: dts: apple: Add initial t6000/t6001/t6002 DTs")
> Signed-off-by: Asahi Lina <[email protected]>
> ---
> arch/arm64/boot/dts/apple/t600x-pmgr.dtsi | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/apple/t600x-pmgr.dtsi b/arch/arm64/boot/dts/apple/t600x-pmgr.dtsi
> index b8daeb0368d5..0bd44753b76a 100644
> --- a/arch/arm64/boot/dts/apple/t600x-pmgr.dtsi
> +++ b/arch/arm64/boot/dts/apple/t600x-pmgr.dtsi
> @@ -225,7 +225,7 @@ DIE_NODE(ps_afr): power-controller@1e8 {
> #power-domain-cells = <0>;
> #reset-cells = <0>;
> label = DIE_LABEL(afr);
> - /* Apple Fabric, media DIE_NODE(stuff): this can power down */
> + /* Apple Fabric, media stuff: this can power down */
> };
>
> DIE_NODE(ps_afnc1_ioa): power-controller@1f0 {

thanks

Reviewed-by: Janne Grunau <[email protected]>

2022-12-07 07:20:51

by Janne Grunau

[permalink] [raw]
Subject: Re: [PATCH] arm64: dts: apple: t6002: Fix GPU power domains

On 2022-12-07 10:43:04 +0900, Asahi Lina wrote:
> On t6002 (M1 Ultra), each die contains a self-contained GPU block.
> However, only the coprocessor and global management circuitry of the
> first die are used. This is what is represented by the "gpu" PS (the
> one in die1 is disabled). Nonetheless, this shared component drives the
> processing blocks in both dies, and therefore depends on the AFR fabric
> being powered up on both dies.
>
> Add an explicit dependency from the GPU block on die0 to AFR on die1,
> next to the existing die0 AFR dependency.
>
> Fixes: fa86294eb355 ("arm64: dts: apple: Add initial t6000/t6001/t6002 DTs")
> Signed-off-by: Asahi Lina <[email protected]>
> ---
> arch/arm64/boot/dts/apple/t6002.dtsi | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/apple/t6002.dtsi b/arch/arm64/boot/dts/apple/t6002.dtsi
> index 1376103b49c6..8fa2d8dd72ff 100644
> --- a/arch/arm64/boot/dts/apple/t6002.dtsi
> +++ b/arch/arm64/boot/dts/apple/t6002.dtsi
> @@ -296,3 +296,8 @@ &cpu_p20 &cpu_p21 &cpu_p22 &cpu_p23
> };
> };
> };
> +
> +&ps_gfx {
> + // On t6002, the die0 GPU power domain needs both AFR power domains
> + power-domains = <&ps_afr>, <&ps_afr_die1>;
> +};

Reviewded-By: Janne Grunau <[email protected]>

Janne

2022-12-08 05:52:52

by Hector Martin

[permalink] [raw]
Subject: Re: [PATCH] arm64: dts: apple: t6002: Fix GPU power domains

On 07/12/2022 10.43, Asahi Lina wrote:
> On t6002 (M1 Ultra), each die contains a self-contained GPU block.
> However, only the coprocessor and global management circuitry of the
> first die are used. This is what is represented by the "gpu" PS (the
> one in die1 is disabled). Nonetheless, this shared component drives the
> processing blocks in both dies, and therefore depends on the AFR fabric
> being powered up on both dies.
>
> Add an explicit dependency from the GPU block on die0 to AFR on die1,
> next to the existing die0 AFR dependency.
>
> Fixes: fa86294eb355 ("arm64: dts: apple: Add initial t6000/t6001/t6002 DTs")
> Signed-off-by: Asahi Lina <[email protected]>
> ---
> arch/arm64/boot/dts/apple/t6002.dtsi | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/apple/t6002.dtsi b/arch/arm64/boot/dts/apple/t6002.dtsi
> index 1376103b49c6..8fa2d8dd72ff 100644
> --- a/arch/arm64/boot/dts/apple/t6002.dtsi
> +++ b/arch/arm64/boot/dts/apple/t6002.dtsi
> @@ -296,3 +296,8 @@ &cpu_p20 &cpu_p21 &cpu_p22 &cpu_p23
> };
> };
> };
> +
> +&ps_gfx {
> + // On t6002, the die0 GPU power domain needs both AFR power domains
> + power-domains = <&ps_afr>, <&ps_afr_die1>;
> +};

Thanks, applied both patches to asahi-soc/dt!

- Hector