linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] arm64: dts: imx8mn-venice-gw7902: disable gpu
@ 2021-12-16 16:12 Tim Harvey
  2021-12-16 17:02 ` Adam Ford
  2022-01-26  9:35 ` Shawn Guo
  0 siblings, 2 replies; 5+ messages in thread
From: Tim Harvey @ 2021-12-16 16:12 UTC (permalink / raw)
  To: Rob Herring, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, NXP Linux Team, devicetree, linux-kernel,
	linux-arm-kernel
  Cc: Tim Harvey, Adam Ford, Lucas Stach

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(+)

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


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] arm64: dts: imx8mn-venice-gw7902: disable gpu
  2021-12-16 16:12 [PATCH] arm64: dts: imx8mn-venice-gw7902: disable gpu Tim Harvey
@ 2021-12-16 17:02 ` Adam Ford
  2022-01-26  9:35 ` Shawn Guo
  1 sibling, 0 replies; 5+ messages in thread
From: Adam Ford @ 2021-12-16 17:02 UTC (permalink / raw)
  To: Tim Harvey
  Cc: Rob Herring, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, NXP Linux Team, devicetree,
	Linux Kernel Mailing List, arm-soc, Lucas Stach

On Thu, Dec 16, 2021 at 10:12 AM Tim Harvey <tharvey@gateworks.com> 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 <aford173@gmail.com>
> Cc: Lucas Stach <l.stach@pengutronix.de>

Fixes: 99aa29932271 ("arm64: dts: imx8mn: Enable GPU")
> Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Reviewed-by: Adam Ford <aford173@gmail.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";
> +};
> +

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
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] arm64: dts: imx8mn-venice-gw7902: disable gpu
  2021-12-16 16:12 [PATCH] arm64: dts: imx8mn-venice-gw7902: disable gpu Tim Harvey
  2021-12-16 17:02 ` Adam Ford
@ 2022-01-26  9:35 ` Shawn Guo
  2022-01-26  9:58   ` Lucas Stach
  1 sibling, 1 reply; 5+ messages in thread
From: Shawn Guo @ 2022-01-26  9:35 UTC (permalink / raw)
  To: Tim Harvey
  Cc: Rob Herring, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, NXP Linux Team, devicetree, linux-kernel,
	linux-arm-kernel, Adam Ford, Lucas Stach

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
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] arm64: dts: imx8mn-venice-gw7902: disable gpu
  2022-01-26  9:35 ` Shawn Guo
@ 2022-01-26  9:58   ` Lucas Stach
  2022-01-26 11:56     ` Shawn Guo
  0 siblings, 1 reply; 5+ messages in thread
From: Lucas Stach @ 2022-01-26  9:58 UTC (permalink / raw)
  To: Shawn Guo, Tim Harvey
  Cc: Rob Herring, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, NXP Linux Team, devicetree, linux-kernel,
	linux-arm-kernel, Adam Ford

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



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] arm64: dts: imx8mn-venice-gw7902: disable gpu
  2022-01-26  9:58   ` Lucas Stach
@ 2022-01-26 11:56     ` Shawn Guo
  0 siblings, 0 replies; 5+ messages in thread
From: Shawn Guo @ 2022-01-26 11:56 UTC (permalink / raw)
  To: Lucas Stach
  Cc: Tim Harvey, Rob Herring, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, NXP Linux Team, devicetree, linux-kernel,
	linux-arm-kernel, Adam Ford

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-01-26 11:56 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-16 16:12 [PATCH] arm64: dts: imx8mn-venice-gw7902: disable gpu Tim Harvey
2021-12-16 17:02 ` Adam Ford
2022-01-26  9:35 ` Shawn Guo
2022-01-26  9:58   ` Lucas Stach
2022-01-26 11:56     ` Shawn Guo

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