[PATCHv3 11/12] ARM: migrate to common PSCI client code

Rob Herring robh at kernel.org
Wed May 27 09:46:47 PDT 2015


On Tue, May 26, 2015 at 8:52 AM, Mark Rutland <mark.rutland at arm.com> wrote:
> Now that the common PSCI client code has been factored out to
> drivers/firmware, and made safe for 32-bit use, move the 32-bit ARM code
> over to it. This results in a moderate reduction of duplicated lines,
> and will prevent further duplication as the PSCI client code is updated
> for PSCI 1.0 and beyond.
>
> The two legacy platform users of the PSCI invocation code are updated to
> account for interface changes. In both cases the power state parameter
> is changed to an opaque u32 token in preparation for PSCI 1.0 power
> state changes.

[...]

> diff --git a/arch/arm/mach-highbank/highbank.c b/arch/arm/mach-highbank/highbank.c
> index 231fba0..6050a14 100644
> --- a/arch/arm/mach-highbank/highbank.c
> +++ b/arch/arm/mach-highbank/highbank.c
> @@ -28,8 +28,8 @@
>  #include <linux/reboot.h>
>  #include <linux/amba/bus.h>
>  #include <linux/platform_device.h>
> +#include <linux/psci.h>
>
> -#include <asm/psci.h>
>  #include <asm/hardware/cache-l2x0.h>
>  #include <asm/mach/arch.h>
>  #include <asm/mach/map.h>
> diff --git a/arch/arm/mach-highbank/pm.c b/arch/arm/mach-highbank/pm.c
> index 7f2bd85..014e96d 100644
> --- a/arch/arm/mach-highbank/pm.c
> +++ b/arch/arm/mach-highbank/pm.c
> @@ -16,18 +16,14 @@
>
>  #include <linux/cpu_pm.h>
>  #include <linux/init.h>
> +#include <linux/psci.h>
>  #include <linux/suspend.h>
>
>  #include <asm/suspend.h>
> -#include <asm/psci.h>
>
>  static int highbank_suspend_finish(unsigned long val)
>  {
> -       const struct psci_power_state ps = {
> -               .type = PSCI_POWER_STATE_TYPE_POWER_DOWN,
> -               .affinity_level = 1,
> -       };
> -
> +       u32 ps = 0x01010000; /* Aff1 power down */

Why not just pass directly instead of sticking in a variable first.

>         return psci_ops.cpu_suspend(ps, __pa(cpu_resume));
>  }
>
> diff --git a/drivers/cpuidle/cpuidle-calxeda.c b/drivers/cpuidle/cpuidle-calxeda.c
> index 9445e6c..d010da8f 100644
> --- a/drivers/cpuidle/cpuidle-calxeda.c
> +++ b/drivers/cpuidle/cpuidle-calxeda.c
> @@ -25,15 +25,14 @@
>  #include <linux/init.h>
>  #include <linux/mm.h>
>  #include <linux/platform_device.h>
> +#include <linux/psci.h>
> +
>  #include <asm/cpuidle.h>
>  #include <asm/suspend.h>
> -#include <asm/psci.h>
>
>  static int calxeda_idle_finish(unsigned long val)
>  {
> -       const struct psci_power_state ps = {
> -               .type = PSCI_POWER_STATE_TYPE_POWER_DOWN,
> -       };
> +       u32 ps = 0x00010000; /* Aff0 power down */

ditto.

>         return psci_ops.cpu_suspend(ps, __pa(cpu_resume));
>  }
>
> --
> 1.9.1
>



More information about the linux-arm-kernel mailing list