Re: iMX8M Mini suspend/resume hanging on imx8m_blk_ctrl_power_on()

From: Lucas Stach
Date: Wed May 08 2024 - 13:45:40 EST


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@xxxxxxxxx> 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@xxxxxxxxxxxxxx/

>
>
> > 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@xxxxxxxxx/

Regards,
Lucas