iMX8M Mini suspend/resume hanging on imx8m_blk_ctrl_power_on()

Lucas Stach l.stach at pengutronix.de
Wed May 8 10:45:22 PDT 2024


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 at 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 at 6 {
> >         pgc_vpu_g1: power-domain at 7 {
> >                 #power-domain-cells = <0>;
> >                 reg = <IMX8MM_POWER_DOMAIN_VPUG1>;
> > +               power-domains = <&pgc_vpumix>;
> >         };
> > 
> >         pgc_vpu_g2: power-domain at 8 {
> >                 #power-domain-cells = <0>;
> >                 reg = <IMX8MM_POWER_DOMAIN_VPUG2>;
> > +               power-domains = <&pgc_vpumix>;
> >         };
> > 
> >         pgc_vpu_h1: power-domain at 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



More information about the linux-arm-kernel mailing list