[GIT PULL 3/3] 3rd Round of Exynos-PM-2 Updates for v3.18

Bartlomiej Zolnierkiewicz b.zolnierkie at samsung.com
Thu Oct 9 07:13:27 PDT 2014


Hi,

On Thursday, October 02, 2014 03:35:18 PM Bartlomiej Zolnierkiewicz wrote:
> 
> Hi,
> 
> On Wednesday, October 01, 2014 08:31:47 PM Arnd Bergmann wrote:
> > On Wednesday 01 October 2014 18:49:20 Bartlomiej Zolnierkiewicz wrote:
> > > On Wednesday, October 01, 2014 06:01:29 PM Arnd Bergmann wrote:
> > > > On Thursday 25 September 2014, Kukjin Kim wrote:
> > > > > Exynos 2nd PM related updates for v3.18
> > > > > 
> > > > > - Firmware supporting suspend and resume to excute of low
> > > > >    level operations to enter and leave power mode for exynos
> > > > >    : introduce suspend() and resume() firmware operations
> > > > > 
> > > > > - Fix AFTR mode on boards with secure firmware enabled and
> > > > >    allows exynos cpuidle driver usage on exynos4x12 SoCs
> > > > > 
> > > > > - Fix build with PM_SLEEP=n and ARM_EXYNOS_CPUIDLE=y
> > > > > 
> > > > > - SWRESET is needed to boot secondary CPU on exynos3250
> > > > > 
> > > > 
> > > > I needed another fixup to make this build, but I'm not sure about
> > > > whether this is the right solution.
> > > 
> > > Could you please share the build errors and the used config?
> > 
> > I'm building with an additional series that works around all known
> > build failures in randconfig, so it's possible that the configuration
> > causes other problems in your tree, or that one of my own patches
> > introduces the problem and the exynos tree by itself is fine.
> > 
> > This is the build error I get:
> > 
> > arch/arm/mach-exynos/built-in.o: In function `exynos_suspend':
> > :(.text+0x294): undefined reference to `cpu_suspend'
> > :(.text+0x29c): undefined reference to `cpu_suspend'
> > arch/arm/mach-exynos/built-in.o: In function `skip_cp15':
> > :(.data+0x58): undefined reference to `cpu_resume'
> > arch/arm/mach-exynos/built-in.o: In function `cp15_save_power':
> > :(.data+0x70): undefined reference to `cpu_resume'
> > 
> > The defconfig file is attached, the details don't matter to
> > other readers, except that it has CONFIG_ARM_CPU_SUSPEND
> > disabled, which means that sleep.S can't be linked properly.
> 
> It turned out that the breakage came through Exynos tree.  "ARM:
> EXYNOS: Add support for firmware-assisted suspend/resume" added to
> arch/arm/mach-exynos/firmware.c new references to functions from
> arch/arm/mach-exynos/sleep.S causing the CONFIG_PM_SLEEP=n build
> breakage.  Then "ARM: EXYNOS: Fix build with PM_SLEEP=n and
> ARM_EXYNOS_CPUIDLE=y" tried to fix the CONFIG_PM_SLEEP=n issue by
> always building sleep.S causing in turn the CONFIG_ARM_CPU_SUSPEND=n
> build breakage.  I have not noticed the problem earlier because I
> have overlooked the fact that cpu_suspend() is available only when
> CONFIG_ARM_CPU_SUSPEND=y and in all configs tested by me it was on
> (it gets disabled only when both CONFIG_PM and CONFIG_MCPM are off).
> Sorry for that.
> 
> Your patch seems to be a correct fix except that the resume entry
> should use IS_ENABLED(CONFIG_EXYNOS_CPU_SUSPEND) instead of
> IS_ENABLED(CONFIG_PM_SLEEP) as resume firmware operations is also
> used by Exynos cpuidle support.
> 
> How should we proceed further to get this tree merged?

ping?  Arnd, Kukjin?

> PS What is interesting in your defconfig is that it has CONFIG_MCPM
> enabled but CONFIG_ARM_CPU_SUSPEND is disabled so there are probably
> some MPCM related changes in your tree.

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics




More information about the linux-arm-kernel mailing list