diff mbox series

arm64: dts: imx8mn-venice-gw7902: disable gpu

Message ID 20211216161227.31960-1-tharvey@gateworks.com
State Accepted
Commit 0c566618e27f17b5807086dba8c222ca8ca3dc1e
Headers show
Series arm64: dts: imx8mn-venice-gw7902: disable gpu | expand

Commit Message

Tim Harvey Dec. 16, 2021, 4:12 p.m. UTC
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 <aford173@gmail.com>
Cc: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
---
 .../boot/dts/freescale/imx8mn-venice-gw7902.dts      | 12 ++++++++++++
 1 file changed, 12 insertions(+)

Comments

Shawn Guo Jan. 26, 2022, 9:35 a.m. UTC | #1
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 <aford173@gmail.com>
> Cc: Lucas Stach <l.stach@pengutronix.de>
> Signed-off-by: Tim Harvey <tharvey@gateworks.com>
> ---
>  .../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
>
Lucas Stach Jan. 26, 2022, 9:58 a.m. UTC | #2
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 <aford173@gmail.com>
> > Cc: Lucas Stach <l.stach@pengutronix.de>
> > Signed-off-by: Tim Harvey <tharvey@gateworks.com>
> > ---
> >  .../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
> >
Shawn Guo Jan. 26, 2022, 11:56 a.m. UTC | #3
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
diff mbox series

Patch

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";