linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* iMX8M Mini suspend/resume hanging on imx8m_blk_ctrl_power_on()
@ 2024-04-04 15:53 vitor
  2024-04-05 15:06 ` vitor
  0 siblings, 1 reply; 5+ messages in thread
From: vitor @ 2024-04-04 15:53 UTC (permalink / raw)
  To: linux-pm, imx, linux-arm-kernel, linux-kernel
  Cc: ivitro, vitor.soares, ulf.hansson, shawnguo, s.hauer, kernel,
	festevam, rafael, geert+renesas, peng.fan, linus.walleij,
	u.kleine-koenig, marex

Greetings,

I'm trying to suspend/resume our Verdin iMX8M Mini with VPU IP using
the latest 6.9.0-rc2 Kernel. While the system can suspend without
issues, it hangs on the resume routine. After some investigation, I can
see the Kernel hanging on imx8m_blk_ctrl_power_on()[1] while resuming
the hantro-vpu power domain.

Any hint about that?

[1]https://elixir.bootlin.com/linux/v6.9-rc2/source/drivers/pmdomain/imx/imx8m-blk-ctrl.c#L101


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

* Re: iMX8M Mini suspend/resume hanging on imx8m_blk_ctrl_power_on()
  2024-04-04 15:53 iMX8M Mini suspend/resume hanging on imx8m_blk_ctrl_power_on() vitor
@ 2024-04-05 15:06 ` vitor
  2024-05-08 17:30   ` Adam Ford
  0 siblings, 1 reply; 5+ messages in thread
From: vitor @ 2024-04-05 15:06 UTC (permalink / raw)
  To: linux-pm, imx, linux-arm-kernel, linux-kernel
  Cc: vitor.soares, ulf.hansson, shawnguo, s.hauer, kernel, festevam,
	rafael, geert+renesas, peng.fan, linus.walleij, u.kleine-koenig,
	marex

Hi,

On Thu, 2024-04-04 at 16:53 +0100, vitor wrote:
> Greetings,
> 
> I'm trying to suspend/resume our Verdin iMX8M Mini with VPU IP using
> the latest 6.9.0-rc2 Kernel. While the system can suspend without
> issues, it hangs on the resume routine. After some investigation, I
> can
> see the Kernel hanging on imx8m_blk_ctrl_power_on()[1] while resuming
> the hantro-vpu power domain.
> 
> Any hint about that?
> 
> [1]
> https://elixir.bootlin.com/linux/v6.9-rc2/source/drivers/pmdomain/imx
> /imx8m-blk-ctrl.c#L101
> 

Looking at other child nodes of the pgc node, pgc_vpu_[g1|g2|h1] seems
to be nested into pgc_vpumix.

After applying the following changes to imx8mm.dtsi, the suspend/resume
is working.


@@ -739,16 +739,19 @@ pgc_vpumix: power-domain@6 {
	pgc_vpu_g1: power-domain@7 {
		#power-domain-cells = <0>;
		reg = <IMX8MM_POWER_DOMAIN_VPUG1>;
+		power-domains = <&pgc_vpumix>;
	};

	pgc_vpu_g2: power-domain@8 {
		#power-domain-cells = <0>;
		reg = <IMX8MM_POWER_DOMAIN_VPUG2>;
+		power-domains = <&pgc_vpumix>;
	};

	pgc_vpu_h1: power-domain@9 {
		#power-domain-cells = <0>;
		reg = <IMX8MM_POWER_DOMAIN_VPUH1>;
+		power-domains = <&pgc_vpumix>;
	};


I will prepare the patch to send in the next couple of days.

Regards,
Vitor Soares

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

* Re: iMX8M Mini suspend/resume hanging on imx8m_blk_ctrl_power_on()
  2024-04-05 15:06 ` vitor
@ 2024-05-08 17:30   ` Adam Ford
  2024-05-08 17:45     ` Lucas Stach
  0 siblings, 1 reply; 5+ messages in thread
From: Adam Ford @ 2024-05-08 17:30 UTC (permalink / raw)
  To: vitor
  Cc: linux-pm, imx, linux-arm-kernel, linux-kernel, vitor.soares,
	ulf.hansson, shawnguo, s.hauer, kernel, festevam, rafael,
	geert+renesas, peng.fan, linus.walleij, u.kleine-koenig, marex,
	Lucas Stach

On Fri, Apr 5, 2024 at 10:09 AM vitor <ivitro@gmail.com> wrote:
>
> Hi,
>
> On Thu, 2024-04-04 at 16:53 +0100, vitor wrote:
> > Greetings,
> >
> > I'm trying to suspend/resume our Verdin iMX8M Mini with VPU IP using
> > the latest 6.9.0-rc2 Kernel. While the system can suspend without
> > issues, it hangs on the resume routine. After some investigation, I
> > can
> > see the Kernel hanging on imx8m_blk_ctrl_power_on()[1] while resuming
> > the hantro-vpu power domain.
> >
> > Any hint about that?
> >
> > [1]
> > https://elixir.bootlin.com/linux/v6.9-rc2/source/drivers/pmdomain/imx
> > /imx8m-blk-ctrl.c#L101
> >
>
+ Lucas

> Looking at other child nodes of the pgc node, pgc_vpu_[g1|g2|h1] seems
> to be nested into pgc_vpumix.
>

On the surface, that's how it appears and it would be consistent with
how the GPU's work with the GPC's for each GPU calling the gpumix.
However, the VPU's all reference the vpu_blk_ctrl which itself
references the vpumix.

Lucas,

You seem to know this driver pretty well.  Do you expect the G1, G2,
and H1 PGC's to all reference the vpumix, or do you expect the
vpu_blk_ctrl to enable/disable the vpumix?



> After applying the following changes to imx8mm.dtsi, the suspend/resume
> is working.
>
>
> @@ -739,16 +739,19 @@ pgc_vpumix: power-domain@6 {
>         pgc_vpu_g1: power-domain@7 {
>                 #power-domain-cells = <0>;
>                 reg = <IMX8MM_POWER_DOMAIN_VPUG1>;
> +               power-domains = <&pgc_vpumix>;
>         };
>
>         pgc_vpu_g2: power-domain@8 {
>                 #power-domain-cells = <0>;
>                 reg = <IMX8MM_POWER_DOMAIN_VPUG2>;
> +               power-domains = <&pgc_vpumix>;
>         };
>
>         pgc_vpu_h1: power-domain@9 {
>                 #power-domain-cells = <0>;
>                 reg = <IMX8MM_POWER_DOMAIN_VPUH1>;
> +               power-domains = <&pgc_vpumix>;
>         };
>
>
> I will prepare the patch to send in the next couple of days.

Please CC me when post the patch, and I can run some tests on my hardware.

thanks

adam

>
> Regards,
> Vitor Soares
>

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

* Re: iMX8M Mini suspend/resume hanging on imx8m_blk_ctrl_power_on()
  2024-05-08 17:30   ` Adam Ford
@ 2024-05-08 17:45     ` Lucas Stach
  2024-05-08 17:47       ` Adam Ford
  0 siblings, 1 reply; 5+ messages in thread
From: Lucas Stach @ 2024-05-08 17:45 UTC (permalink / raw)
  To: Adam Ford, vitor
  Cc: linux-pm, imx, linux-arm-kernel, linux-kernel, vitor.soares,
	ulf.hansson, shawnguo, s.hauer, kernel, festevam, rafael,
	geert+renesas, peng.fan, linus.walleij, u.kleine-koenig, marex

Hi Adam,

Am Mittwoch, dem 08.05.2024 um 12:30 -0500 schrieb Adam Ford:
> On Fri, Apr 5, 2024 at 10:09 AM vitor <ivitro@gmail.com> wrote:
> > 
> > Hi,
> > 
> > On Thu, 2024-04-04 at 16:53 +0100, vitor wrote:
> > > Greetings,
> > > 
> > > I'm trying to suspend/resume our Verdin iMX8M Mini with VPU IP using
> > > the latest 6.9.0-rc2 Kernel. While the system can suspend without
> > > issues, it hangs on the resume routine. After some investigation, I
> > > can
> > > see the Kernel hanging on imx8m_blk_ctrl_power_on()[1] while resuming
> > > the hantro-vpu power domain.
> > > 
> > > Any hint about that?
> > > 
> > > [1]
> > > https://elixir.bootlin.com/linux/v6.9-rc2/source/drivers/pmdomain/imx
> > > /imx8m-blk-ctrl.c#L101
> > > 
> > 
> + Lucas
> 
> > Looking at other child nodes of the pgc node, pgc_vpu_[g1|g2|h1] seems
> > to be nested into pgc_vpumix.
> > 
> 
> On the surface, that's how it appears and it would be consistent with
> how the GPU's work with the GPC's for each GPU calling the gpumix.
> However, the VPU's all reference the vpu_blk_ctrl which itself
> references the vpumix.
> 
> Lucas,
> 
> You seem to know this driver pretty well.  Do you expect the G1, G2,
> and H1 PGC's to all reference the vpumix, or do you expect the
> vpu_blk_ctrl to enable/disable the vpumix?
> 
Nope, that's incorrect, as discussed here:
https://lore.kernel.org/all/9ce35b9bb5a15891f6bd01bd54b7dc84b3ba4021.camel@pengutronix.de/

> 
> 
> > After applying the following changes to imx8mm.dtsi, the suspend/resume
> > is working.
> > 
> > 
> > @@ -739,16 +739,19 @@ pgc_vpumix: power-domain@6 {
> >         pgc_vpu_g1: power-domain@7 {
> >                 #power-domain-cells = <0>;
> >                 reg = <IMX8MM_POWER_DOMAIN_VPUG1>;
> > +               power-domains = <&pgc_vpumix>;
> >         };
> > 
> >         pgc_vpu_g2: power-domain@8 {
> >                 #power-domain-cells = <0>;
> >                 reg = <IMX8MM_POWER_DOMAIN_VPUG2>;
> > +               power-domains = <&pgc_vpumix>;
> >         };
> > 
> >         pgc_vpu_h1: power-domain@9 {
> >                 #power-domain-cells = <0>;
> >                 reg = <IMX8MM_POWER_DOMAIN_VPUH1>;
> > +               power-domains = <&pgc_vpumix>;
> >         };
> > 
> > 
> > I will prepare the patch to send in the next couple of days.
> 
> Please CC me when post the patch, and I can run some tests on my hardware.

The correct patch is already out:
https://lore.kernel.org/all/20240418155151.355133-1-ivitro@gmail.com/

Regards,
Lucas

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

* Re: iMX8M Mini suspend/resume hanging on imx8m_blk_ctrl_power_on()
  2024-05-08 17:45     ` Lucas Stach
@ 2024-05-08 17:47       ` Adam Ford
  0 siblings, 0 replies; 5+ messages in thread
From: Adam Ford @ 2024-05-08 17:47 UTC (permalink / raw)
  To: Lucas Stach
  Cc: vitor, linux-pm, imx, linux-arm-kernel, linux-kernel,
	vitor.soares, ulf.hansson, shawnguo, s.hauer, kernel, festevam,
	rafael, geert+renesas, peng.fan, linus.walleij, u.kleine-koenig,
	marex

On Wed, May 8, 2024 at 12:45 PM Lucas Stach <l.stach@pengutronix.de> wrote:
>
> Hi Adam,
>
> Am Mittwoch, dem 08.05.2024 um 12:30 -0500 schrieb Adam Ford:
> > On Fri, Apr 5, 2024 at 10:09 AM vitor <ivitro@gmail.com> wrote:
> > >
> > > Hi,
> > >
> > > On Thu, 2024-04-04 at 16:53 +0100, vitor wrote:
> > > > Greetings,
> > > >
> > > > I'm trying to suspend/resume our Verdin iMX8M Mini with VPU IP using
> > > > the latest 6.9.0-rc2 Kernel. While the system can suspend without
> > > > issues, it hangs on the resume routine. After some investigation, I
> > > > can
> > > > see the Kernel hanging on imx8m_blk_ctrl_power_on()[1] while resuming
> > > > the hantro-vpu power domain.
> > > >
> > > > Any hint about that?
> > > >
> > > > [1]
> > > > https://elixir.bootlin.com/linux/v6.9-rc2/source/drivers/pmdomain/imx
> > > > /imx8m-blk-ctrl.c#L101
> > > >
> > >
> > + Lucas
> >
> > > Looking at other child nodes of the pgc node, pgc_vpu_[g1|g2|h1] seems
> > > to be nested into pgc_vpumix.
> > >
> >
> > On the surface, that's how it appears and it would be consistent with
> > how the GPU's work with the GPC's for each GPU calling the gpumix.
> > However, the VPU's all reference the vpu_blk_ctrl which itself
> > references the vpumix.
> >
> > Lucas,
> >
> > You seem to know this driver pretty well.  Do you expect the G1, G2,
> > and H1 PGC's to all reference the vpumix, or do you expect the
> > vpu_blk_ctrl to enable/disable the vpumix?
> >
> Nope, that's incorrect, as discussed here:
> https://lore.kernel.org/all/9ce35b9bb5a15891f6bd01bd54b7dc84b3ba4021.camel@pengutronix.de/

That's what I thought.
>
> >
> >
> > > After applying the following changes to imx8mm.dtsi, the suspend/resume
> > > is working.
> > >
> > >
> > > @@ -739,16 +739,19 @@ pgc_vpumix: power-domain@6 {
> > >         pgc_vpu_g1: power-domain@7 {
> > >                 #power-domain-cells = <0>;
> > >                 reg = <IMX8MM_POWER_DOMAIN_VPUG1>;
> > > +               power-domains = <&pgc_vpumix>;
> > >         };
> > >
> > >         pgc_vpu_g2: power-domain@8 {
> > >                 #power-domain-cells = <0>;
> > >                 reg = <IMX8MM_POWER_DOMAIN_VPUG2>;
> > > +               power-domains = <&pgc_vpumix>;
> > >         };
> > >
> > >         pgc_vpu_h1: power-domain@9 {
> > >                 #power-domain-cells = <0>;
> > >                 reg = <IMX8MM_POWER_DOMAIN_VPUH1>;
> > > +               power-domains = <&pgc_vpumix>;
> > >         };
> > >
> > >
> > > I will prepare the patch to send in the next couple of days.
> >
> > Please CC me when post the patch, and I can run some tests on my hardware.
>
> The correct patch is already out:
> https://lore.kernel.org/all/20240418155151.355133-1-ivitro@gmail.com/

Thanks.
>
> Regards,
> Lucas

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

end of thread, other threads:[~2024-05-08 17:47 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-04 15:53 iMX8M Mini suspend/resume hanging on imx8m_blk_ctrl_power_on() vitor
2024-04-05 15:06 ` vitor
2024-05-08 17:30   ` Adam Ford
2024-05-08 17:45     ` Lucas Stach
2024-05-08 17:47       ` Adam Ford

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