2021-12-16 16:12:40

by Tim Harvey

[permalink] [raw]
Subject: [PATCH] arm64: dts: imx8mn-venice-gw7902: disable gpu

Since commit 99aa29932271 ("arm64: dts: imx8mn: Enable GPU")
imx8mn-venice-gw7902 will hang during kernel init because it uses
a MIMX8MN5CVTI which does not have a GPU.

Disable pgc_gpumix to work around this. We also disable the GPU devices
that depend on the gpumix power domain and pgc_gpu to avoid them staying
in a probe deferred state forever.

Cc: Adam Ford <[email protected]>
Cc: Lucas Stach <[email protected]>
Signed-off-by: Tim Harvey <[email protected]>
---
.../boot/dts/freescale/imx8mn-venice-gw7902.dts | 12 ++++++++++++
1 file changed, 12 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts b/arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts
index 236f425e1570..2d58005d20e4 100644
--- a/arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts
@@ -220,6 +220,10 @@
};
};

+&disp_blk_ctrl {
+ status = "disabled";
+};
+
/* off-board header */
&ecspi2 {
pinctrl-names = "default";
@@ -251,6 +255,10 @@
};
};

+&gpu {
+ status = "disabled";
+};
+
&i2c1 {
clock-frequency = <100000>;
pinctrl-names = "default";
@@ -546,6 +554,10 @@
status = "okay";
};

+&pgc_gpumix {
+ status = "disabled";
+};
+
/* off-board header */
&sai3 {
pinctrl-names = "default";
--
2.17.1



2021-12-16 17:02:28

by Adam Ford

[permalink] [raw]
Subject: Re: [PATCH] arm64: dts: imx8mn-venice-gw7902: disable gpu

On Thu, Dec 16, 2021 at 10:12 AM Tim Harvey <[email protected]> wrote:
>
> Since commit 99aa29932271 ("arm64: dts: imx8mn: Enable GPU")
> imx8mn-venice-gw7902 will hang during kernel init because it uses
> a MIMX8MN5CVTI which does not have a GPU.
>
> Disable pgc_gpumix to work around this. We also disable the GPU devices
> that depend on the gpumix power domain and pgc_gpu to avoid them staying
> in a probe deferred state forever.
>
> Cc: Adam Ford <[email protected]>
> Cc: Lucas Stach <[email protected]>

Fixes: 99aa29932271 ("arm64: dts: imx8mn: Enable GPU")
> Signed-off-by: Tim Harvey <[email protected]>
Reviewed-by: Adam Ford <[email protected]>
> ---
> .../boot/dts/freescale/imx8mn-venice-gw7902.dts | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts b/arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts
> index 236f425e1570..2d58005d20e4 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts
> +++ b/arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts
> @@ -220,6 +220,10 @@
> };
> };
>
> +&disp_blk_ctrl {
> + status = "disabled";
> +};
> +

Disabling the blk-ctrl also makes it so you cannot use a display
and/or CSI camera. I don't know the application, so it's likely OK.

> /* off-board header */
> &ecspi2 {
> pinctrl-names = "default";
> @@ -251,6 +255,10 @@
> };
> };
>
> +&gpu {
> + status = "disabled";
> +};
> +
> &i2c1 {
> clock-frequency = <100000>;
> pinctrl-names = "default";
> @@ -546,6 +554,10 @@
> status = "okay";
> };
>
> +&pgc_gpumix {
> + status = "disabled";
> +};
> +
> /* off-board header */
> &sai3 {
> pinctrl-names = "default";
> --
> 2.17.1
>

2022-01-26 20:47:40

by Shawn Guo

[permalink] [raw]
Subject: Re: [PATCH] arm64: dts: imx8mn-venice-gw7902: disable gpu

On Thu, Dec 16, 2021 at 08:12:27AM -0800, Tim Harvey wrote:
> Since commit 99aa29932271 ("arm64: dts: imx8mn: Enable GPU")
> imx8mn-venice-gw7902 will hang during kernel init because it uses
> a MIMX8MN5CVTI which does not have a GPU.

I do not quite follow on this. i.MX8MN integrates a GPU, and
MIMX8MN5CVTI is built on i.MX8MN, correct? If so, how comes
MIMX8MN5CVTI doesn't have a GPU?

>
> Disable pgc_gpumix to work around this. We also disable the GPU devices
> that depend on the gpumix power domain and pgc_gpu to avoid them staying
> in a probe deferred state forever.

Is this an indication that GPU should be disabled in imx8mn.dtsi and
enabled board by board?

Shawn

>
> Cc: Adam Ford <[email protected]>
> Cc: Lucas Stach <[email protected]>
> Signed-off-by: Tim Harvey <[email protected]>
> ---
> .../boot/dts/freescale/imx8mn-venice-gw7902.dts | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts b/arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts
> index 236f425e1570..2d58005d20e4 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts
> +++ b/arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts
> @@ -220,6 +220,10 @@
> };
> };
>
> +&disp_blk_ctrl {
> + status = "disabled";
> +};
> +
> /* off-board header */
> &ecspi2 {
> pinctrl-names = "default";
> @@ -251,6 +255,10 @@
> };
> };
>
> +&gpu {
> + status = "disabled";
> +};
> +
> &i2c1 {
> clock-frequency = <100000>;
> pinctrl-names = "default";
> @@ -546,6 +554,10 @@
> status = "okay";
> };
>
> +&pgc_gpumix {
> + status = "disabled";
> +};
> +
> /* off-board header */
> &sai3 {
> pinctrl-names = "default";
> --
> 2.17.1
>

2022-01-26 20:54:25

by Lucas Stach

[permalink] [raw]
Subject: Re: [PATCH] arm64: dts: imx8mn-venice-gw7902: disable gpu

Am Mittwoch, dem 26.01.2022 um 17:35 +0800 schrieb Shawn Guo:
> On Thu, Dec 16, 2021 at 08:12:27AM -0800, Tim Harvey wrote:
> > Since commit 99aa29932271 ("arm64: dts: imx8mn: Enable GPU")
> > imx8mn-venice-gw7902 will hang during kernel init because it uses
> > a MIMX8MN5CVTI which does not have a GPU.
>
> I do not quite follow on this. i.MX8MN integrates a GPU, and
> MIMX8MN5CVTI is built on i.MX8MN, correct? If so, how comes
> MIMX8MN5CVTI doesn't have a GPU?
>
It's a fused-down variant of the i.MX8MN that has the GPU disabled by
fuses.

> >
> > Disable pgc_gpumix to work around this. We also disable the GPU devices
> > that depend on the gpumix power domain and pgc_gpu to avoid them staying
> > in a probe deferred state forever.
>
> Is this an indication that GPU should be disabled in imx8mn.dtsi and
> enabled board by board?
>
There's a trade-off here: most boards will probably use the full
variants that include the GPU, so probably less boards will need to
disable the GPU, as done here, than boards that need to enable it when
the base DT disables the GPU.

Same story as with the i.MX6 where there are some SKUs that disable the
VPU by fuses: we enable it in the base DT and if you happen to build a
very low-cost board that uses the fused-down version you need to
disable it in the board DT.

Regards,
Lucas

> Shawn
>
> >
> > Cc: Adam Ford <[email protected]>
> > Cc: Lucas Stach <[email protected]>
> > Signed-off-by: Tim Harvey <[email protected]>
> > ---
> > .../boot/dts/freescale/imx8mn-venice-gw7902.dts | 12 ++++++++++++
> > 1 file changed, 12 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts b/arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts
> > index 236f425e1570..2d58005d20e4 100644
> > --- a/arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts
> > +++ b/arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts
> > @@ -220,6 +220,10 @@
> > };
> > };
> >
> > +&disp_blk_ctrl {
> > + status = "disabled";
> > +};
> > +
> > /* off-board header */
> > &ecspi2 {
> > pinctrl-names = "default";
> > @@ -251,6 +255,10 @@
> > };
> > };
> >
> > +&gpu {
> > + status = "disabled";
> > +};
> > +
> > &i2c1 {
> > clock-frequency = <100000>;
> > pinctrl-names = "default";
> > @@ -546,6 +554,10 @@
> > status = "okay";
> > };
> >
> > +&pgc_gpumix {
> > + status = "disabled";
> > +};
> > +
> > /* off-board header */
> > &sai3 {
> > pinctrl-names = "default";
> > --
> > 2.17.1
> >


2022-01-26 21:14:31

by Shawn Guo

[permalink] [raw]
Subject: Re: [PATCH] arm64: dts: imx8mn-venice-gw7902: disable gpu

On Wed, Jan 26, 2022 at 10:58:56AM +0100, Lucas Stach wrote:
> Am Mittwoch, dem 26.01.2022 um 17:35 +0800 schrieb Shawn Guo:
> > On Thu, Dec 16, 2021 at 08:12:27AM -0800, Tim Harvey wrote:
> > > Since commit 99aa29932271 ("arm64: dts: imx8mn: Enable GPU")
> > > imx8mn-venice-gw7902 will hang during kernel init because it uses
> > > a MIMX8MN5CVTI which does not have a GPU.
> >
> > I do not quite follow on this. i.MX8MN integrates a GPU, and
> > MIMX8MN5CVTI is built on i.MX8MN, correct? If so, how comes
> > MIMX8MN5CVTI doesn't have a GPU?
> >
> It's a fused-down variant of the i.MX8MN that has the GPU disabled by
> fuses.
>
> > >
> > > Disable pgc_gpumix to work around this. We also disable the GPU devices
> > > that depend on the gpumix power domain and pgc_gpu to avoid them staying
> > > in a probe deferred state forever.
> >
> > Is this an indication that GPU should be disabled in imx8mn.dtsi and
> > enabled board by board?
> >
> There's a trade-off here: most boards will probably use the full
> variants that include the GPU, so probably less boards will need to
> disable the GPU, as done here, than boards that need to enable it when
> the base DT disables the GPU.
>
> Same story as with the i.MX6 where there are some SKUs that disable the
> VPU by fuses: we enable it in the base DT and if you happen to build a
> very low-cost board that uses the fused-down version you need to
> disable it in the board DT.

Thanks, Lucas!

Patch applied!

Shawn