public inbox for linux-arm-kernel@lists.infradead.org 
 help / color / mirror / Atom feed
From: kgene.kim@samsung•com (Kukjin Kim)
To: linux-arm-kernel@lists•infradead.org
Subject: [PATCH v3 0/5] Firmware-assisted suspend/resume of Exynos SoCs
Date: Wed, 24 Sep 2014 16:53:55 +0900	[thread overview]
Message-ID: <54227893.7020808@samsung.com> (raw)
In-Reply-To: <0d2401cfd07b$0e21e190$2a65a4b0$@kernel.org>



On 09/15/14 09:21, Kukjin Kim wrote:
> Tomasz Figa wrote:
>>
>> Hi Kukjin,
>>
> Hi,
>
>> On 26.08.2014 16:10, Tomasz Figa wrote:
>>> On Exynos-based boards running secure firmware the sequence of low level
>>> operations to enter and leave system-wide sleep mode is different than
>>> on those without the firmware. Namely:
>>>   - CP15 power control and diagnostic registers cannot be written directly,
>>>   - the way of setting boot address and boot flag is different,
>>>   - different resume handler needs to be used,
>>>   - dedicated SMC call needs to be performed instead of letting the CPU enter
>>>     WFI.
>>>
>>> This series introduces .suspend() and .resume() firmware operations to
>>> perform low level firmware-specific suspend and resume and then leverages
>>> them to provide suspend-resume path meeting the above requirements. Three
>>> additional patches extend device tree sources of Trats2 board with necessary
>>> setup to enable suspend/resume support.
>>>
>>> This series has been tested on Exynos4412-based Trats2 board, without any
>>> additional patches. Unfortunately v3.17-rc1 regressed ODROID support and
>>> suspend stopped working on those boards, due to unknown reasons still being
>>> investigated. It does not seem to be related to anything in this series,
>>> though, so I would not consider this as a stopper.
>>>
>>> Changes since v2:
>>> (https://lkml.org/lkml/2014/7/17/431)
>>>   - added board-specific fixes for device tree sources of Trats2 board,
>>>   - rebased on next-20140826 of linux-next tree.
>>>
>>> Changes since v1:
>>>   - dropped outer_resume() - will be handled in assembly in further patches,
>>>     as support for L2C in non-secure mode gets added,
>>>   - moved CP15 resume to assembly as it needs to be done before MMU is enabled,
>>>   - surrounded CP15 save with a check for cpuid part, because it is valid only
>>>     on Cortex A9,
>>>   - rebased on next-20140717 tag of linux-next tree.
>>>
>>> Tomasz Figa (5):
>>>    ARM: firmware: Introduce suspend and resume operations
>>>    ARM: EXYNOS: Add support for firmware-assisted suspend/resume
>>>    ARM: dts: exynos4412-trats2: Keep eMMC regulators soft-disabled
>>>    ARM: dts: exynos4x12: Add utility macro to define pin sleep states
>>>    ARM: dts: exynos4412-trats2: Add sleep mode pin configuration
>>>
>>>   Documentation/arm/firmware.txt            |  28 +--
>>>   arch/arm/boot/dts/exynos4412-trats2.dts   | 320 +++++++++++++++++++++++++++++-
>>>   arch/arm/boot/dts/exynos4x12-pinctrl.dtsi |  16 ++
>>>   arch/arm/include/asm/firmware.h           |   8 +
>>>   arch/arm/mach-exynos/Makefile             |   1 +
>>>   arch/arm/mach-exynos/common.h             |   4 +
>>>   arch/arm/mach-exynos/firmware.c           |  45 +++++
>>>   arch/arm/mach-exynos/pm.c                 |  16 +-
>>>   arch/arm/mach-exynos/sleep.S              |  28 +++
>>>   arch/arm/mach-exynos/smc.h                |   4 +
>>>   10 files changed, 438 insertions(+), 32 deletions(-)
>>>
>>
>> Would you consider applying this series? It has been waiting on the ML
>> long enough (note no changes in core patches since last revision, just
>> few more board specific patches). Thanks in advance.
>>
> Sure, I will. Thanks for your gentle reminder.
>
I've reverted this series because of following.

In file included from arch/arm/mach-tegra/cpuidle-tegra114.c:17:0:
arch/arm/mach-tegra/cpuidle-tegra114.c: In function 
'tegra114_idle_power_down':
arch/arm/include/asm/firmware.h:64:24: error: too few arguments to 
function 'firmware_ops->do_idle'
   ((firmware_ops->op) ? firmware_ops->op(__VA_ARGS__) : (-ENOSYS))
                         ^
arch/arm/mach-tegra/cpuidle-tegra114.c:52:6: note: in expansion of macro 
'call_firmware_op'
   if (call_firmware_op(do_idle) == -ENOSYS)
       ^

Caused by commit f5217f3b9332 ("ARM: EXYNOS: add AFTR mode support to
firmware do_idle method").

Need to fix...

- Kukjin

  reply	other threads:[~2014-09-24  7:53 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-26 14:10 [PATCH v3 0/5] Firmware-assisted suspend/resume of Exynos SoCs Tomasz Figa
2014-08-26 14:10 ` [PATCH v3 1/5] ARM: firmware: Introduce suspend and resume operations Tomasz Figa
2014-09-23 16:31   ` Kukjin Kim
2014-08-26 14:10 ` [PATCH v3 2/5] ARM: EXYNOS: Add support for firmware-assisted suspend/resume Tomasz Figa
2014-08-26 14:10 ` [PATCH v3 3/5] ARM: dts: exynos4412-trats2: Keep eMMC regulators soft-disabled Tomasz Figa
2014-08-26 14:10 ` [PATCH v3 4/5] ARM: dts: exynos4x12: Add utility macro to define pin sleep states Tomasz Figa
2014-08-26 14:10 ` [PATCH v3 5/5] ARM: dts: exynos4412-trats2: Add sleep mode pin configuration Tomasz Figa
2014-09-14 17:47 ` [PATCH v3 0/5] Firmware-assisted suspend/resume of Exynos SoCs Tomasz Figa
2014-09-15  0:21   ` Kukjin Kim
2014-09-24  7:53     ` Kukjin Kim [this message]
2014-09-24  8:23       ` Marek Szyprowski
2014-09-24  8:42         ` Kukjin Kim

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54227893.7020808@samsung.com \
    --to=kgene.kim@samsung$(echo .)com \
    --cc=linux-arm-kernel@lists$(echo .)infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox