Re: [PATCH 6/8] ARM: OMAP2+: pm33xx-core: Add platform code needed for PM
From: Tony Lindgren
Date: Tue Apr 04 2017 - 12:19:27 EST
Russell,
* Dave Gerlach <d-gerlach@xxxxxx> [170328 19:01]:
> Most of the PM code needed for am335x and am437x can be moved into a
> module under drivers but some core code must remain in mach-omap2 at the
> moment. This includes some internal clockdomain APIs and low-level ARM
> APIs which are also not exported for use by modules.
>
> Implement a few functions that handle these low-level platform
> operations can be passed to the pm33xx module through the use of
> platform data.
>
> In addition to this, to be able to share data structures between C and
> the sleep33xx and sleep43xx assembly code, we can automatically generate
> all of the C struct member offsets and sizes as macros by making use of
> the ARM asm-offsets file. In the same header that we define our data
> structures in we also define all the macros in an inline function and by
> adding a call to this in the asm_offsets file all macros are properly
> generated and available to the assembly code without cluttering up the
> asm-offsets file.
>
> Signed-off-by: Dave Gerlach <d-gerlach@xxxxxx>
> ---
> arch/arm/kernel/asm-offsets.c | 2 +
> arch/arm/mach-omap2/Kconfig | 1 +
> arch/arm/mach-omap2/Makefile | 4 +
> arch/arm/mach-omap2/pm.h | 5 +
> arch/arm/mach-omap2/pm33xx-core.c | 181 +++++++++++++++++++++++++++++++++++
> include/linux/platform_data/pm33xx.h | 69 +++++++++++++
> 6 files changed, 262 insertions(+)
> create mode 100644 arch/arm/mach-omap2/pm33xx-core.c
> create mode 100644 include/linux/platform_data/pm33xx.h
>
> diff --git a/arch/arm/kernel/asm-offsets.c b/arch/arm/kernel/asm-offsets.c
> index d728b5660e36..62253e7bfac4 100644
> --- a/arch/arm/kernel/asm-offsets.c
> +++ b/arch/arm/kernel/asm-offsets.c
> @@ -28,6 +28,7 @@
> #include <asm/vdso_datapage.h>
> #include <asm/hardware/cache-l2x0.h>
> #include <linux/kbuild.h>
> +#include <linux/platform_data/pm33xx.h>
> #include <linux/ti-emif-sram.h>
>
> /*
> @@ -187,6 +188,7 @@ int main(void)
> #if defined(CONFIG_SOC_AM33XX) || defined(CONFIG_SOC_AM43XX)
> BLANK();
> ti_emif_offsets();
> + amx3_pm_asm_offsets();
> #endif
>
> return 0;
Here too can you please check this is OK with you.
Regards,
Tony