[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5421A045.5020804@samsung.com>
Date: Wed, 24 Sep 2014 01:31:01 +0900
From: Kukjin Kim <kgene.kim@...sung.com>
To: Tomasz Figa <t.figa@...sung.com>
CC: linux-samsung-soc@...r.kernel.org,
Kukjin Kim <kgene.kim@...sung.com>,
Russell King - ARM Linux <linux@....linux.org.uk>,
Arnd Bergmann <arnd@...db.de>, linux-kernel@...r.kernel.org,
Tomasz Figa <tomasz.figa@...il.com>, acourbot@...dia.com,
tomeu@...euvizoso.net, Olof Johansson <olof@...om.net>,
swarren@...dia.com, drake@...lessm.com,
linux-arm-kernel@...ts.infradead.org,
Marek Szyprowski <m.szyprowski@...sung.com>,
Tomasz Figa <tomasz.figa@...il.com>
Subject: Re: [PATCH v3 1/5] ARM: firmware: Introduce suspend and resume operations
On 08/26/14 23:10, Tomasz Figa wrote:
> This patch extends the firmware_ops structure with two new callbacks:
> .suspend() and .resume(). The former is intended to ask the firmware to
> save all its volatile state and suspend the system, without returning
> back to the kernel in between. The latter is to be called early by
> very low level platform suspend code after waking up to restore low
> level hardware state, which can't be restored in non-secure mode.
>
> While at it, outdated version of the structure is removed from the
> documentation and replaced with a reference to the header file.
>
> Signed-off-by: Tomasz Figa<t.figa@...sung.com>
> Acked-by: Alexandre Courbot<acourbot@...dia.com>
> ---
> Documentation/arm/firmware.txt | 28 +++++-----------------------
> arch/arm/include/asm/firmware.h | 8 ++++++++
> 2 files changed, 13 insertions(+), 23 deletions(-)
>
> diff --git a/Documentation/arm/firmware.txt b/Documentation/arm/firmware.txt
> index c2e468f..da6713a 100644
> --- a/Documentation/arm/firmware.txt
> +++ b/Documentation/arm/firmware.txt
> @@ -7,32 +7,14 @@ world, which changes the way some things have to be initialized. This makes
> a need to provide an interface for such platforms to specify available firmware
> operations and call them when needed.
>
> -Firmware operations can be specified using struct firmware_ops
> -
> - struct firmware_ops {
> - /*
> - * Enters CPU idle mode
> - */
> - int (*do_idle)(void);
> - /*
> - * Sets boot address of specified physical CPU
> - */
> - int (*set_cpu_boot_addr)(int cpu, unsigned long boot_addr);
> - /*
> - * Boots specified physical CPU
> - */
> - int (*cpu_boot)(int cpu);
> - /*
> - * Initializes L2 cache
> - */
> - int (*l2x0_init)(void);
> - };
> -
> -and then registered with register_firmware_ops function
> +Firmware operations can be specified by filling in a struct firmware_ops
> +with appropriate callbacks and then registering it with register_firmware_ops()
> +function.
>
> void register_firmware_ops(const struct firmware_ops *ops)
>
> -the ops pointer must be non-NULL.
> +The ops pointer must be non-NULL. More information about struct firmware_ops
> +and its members can be found in arch/arm/include/asm/firmware.h header.
>
> There is a default, empty set of operations provided, so there is no need to
> set anything if platform does not require firmware operations.
> diff --git a/arch/arm/include/asm/firmware.h b/arch/arm/include/asm/firmware.h
> index 2c9f10d..5904f59 100644
> --- a/arch/arm/include/asm/firmware.h
> +++ b/arch/arm/include/asm/firmware.h
> @@ -41,6 +41,14 @@ struct firmware_ops {
> * Initializes L2 cache
> */
> int (*l2x0_init)(void);
> + /*
> + * Enter system-wide suspend.
> + */
> + int (*suspend)(void);
> + /*
> + * Restore state of privileged hardware after system-wide suspend.
> + */
> + int (*resume)(void);
> };
>
> /* Global pointer for current firmware_ops structure, can't be NULL. */
Hi Russell,
I've applied this in samsung tree for exynos stuff, if you have any
objection, please kindly let me know.
Thanks,
Kukjin
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists