On Tue, May 02, 2017 at 09:56:19AM +0200, Maxime Ripard wrote: > On Tue, May 02, 2017 at 09:04:18AM +0200, Antoine Tenart wrote: > > On Mon, May 01, 2017 at 11:13:27PM +0200, Maxime Ripard wrote: > > > On Sun, Apr 30, 2017 at 03:29:54PM +0200, Antoine Tenart wrote: > > > > + > > > > +static void __secure sunxi_clock_enter_idle(struct sunxi_ccm_reg *ccm) > > > > +{ > > > > + /* switch cpuclk to osc24m */ > > > > + clrsetbits_le32(&ccm->cpu_ahb_apb0_cfg, 0x3 << > > > > CPU_CLK_SRC_SHIFT, > > > > + CPU_CLK_SRC_OSC24M << CPU_CLK_SRC_SHIFT); > > > > + > > > > + /* disable pll1 */ > > > > + clrbits_le32(&ccm->pll1_cfg, CCM_PLL1_CTRL_EN); > > > > + > > > > +#ifndef CONFIG_MACH_SUN7I > > > > + /* > > > > + * Switch cpuclk to losc. Based on my experience this didn't > > > > worked for > > > > + * sun7i, hence the ifndef. > > > > + */ > > > > + clrbits_le32(&ccm->cpu_ahb_apb0_cfg, 0x3 << CPU_CLK_SRC_SHIFT); > > > > +#endif > > > > > > Do we enter idle per-core, or is it a cluster-wide state? > > > > This is cluster-wise, as sunxi_clock_enter_idle() is only called when > > all CPU are in IDLE state (called the PSCI suspend function). See > > psci_cpu_suspend(). > > Hmm, ok. That's still a bit weird. The clock documentation says that > you should wait 8 cycles when you reparent, which is something you're > not doing. Maybe that can be the issue.
That might explain the issue. Antoine -- Antoine Ténart, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
signature.asc
Description: PGP signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot