iMX8M Mini suspend/resume hanging on imx8m_blk_ctrl_power_on()
Adam Ford
aford173 at gmail.com
Wed May 8 10:47:41 PDT 2024
On Wed, May 8, 2024 at 12:45 PM Lucas Stach <l.stach at 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 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/
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 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/
Thanks.
>
> Regards,
> Lucas
More information about the linux-arm-kernel
mailing list