[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