Re: [PATCH 2/6] acpi : move cpuidle_device field out of the acpi_processor_power structure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Sep 7, 2012 at 3:49 PM, Daniel Lezcano
<daniel.lezcano@xxxxxxxxxx> wrote:
> Currently we have the cpuidle_device field in the acpi_processor_power structure.
> This adds a dependency in processor.h for cpuidle.h.
>
> In order to be consistent with the rest of the drivers and for the per cpu states
> coming right after this patch, this one move out of the acpi_processor_power
> structure the cpuidle_device field.

Reword a little to make it easier to read:

In order to be consistent with the rest of the drivers and for the
per-cpu states coming after this patch, this patch moves the
cpuidle_device field out of the acpi_processor_power structure.

> Signed-off-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
> Acked-by: Peter De Schrijver <pdeschrijver@xxxxxxxxxx>
> Tested-by: Peter De Schrijver <pdeschrijver@xxxxxxxxxx>
> ---
>  drivers/acpi/processor_idle.c |   25 ++++++++++++++++++-------
>  include/acpi/processor.h      |    2 --
>  2 files changed, 18 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
> index de89624..084b1d2 100644
> --- a/drivers/acpi/processor_idle.c
> +++ b/drivers/acpi/processor_idle.c
> @@ -79,6 +79,8 @@ module_param(bm_check_disable, uint, 0000);
>  static unsigned int latency_factor __read_mostly = 2;
>  module_param(latency_factor, uint, 0644);
>
> +static DEFINE_PER_CPU(struct cpuidle_device, acpi_cpuidle_device);
> +
>  static int disabled_by_idle_boot_param(void)
>  {
>         return boot_option_idle_override == IDLE_POLL ||
> @@ -998,7 +1000,7 @@ static int acpi_processor_setup_cpuidle_cx(struct acpi_processor *pr)
>         int i, count = CPUIDLE_DRIVER_STATE_START;
>         struct acpi_processor_cx *cx;
>         struct cpuidle_state_usage *state_usage;
> -       struct cpuidle_device *dev = &pr->power.dev;
> +       struct cpuidle_device *dev = &per_cpu(acpi_cpuidle_device, pr->id);
>
>         if (!pr->flags.power_setup_done)
>                 return -EINVAL;
> @@ -1130,6 +1132,7 @@ static int acpi_processor_setup_cpuidle_states(struct acpi_processor *pr)
>  int acpi_processor_hotplug(struct acpi_processor *pr)
>  {
>         int ret = 0;
> +       struct cpuidle_device *dev = &per_cpu(acpi_cpuidle_device, pr->id);
>
>         if (disabled_by_idle_boot_param())
>                 return 0;
> @@ -1145,11 +1148,11 @@ int acpi_processor_hotplug(struct acpi_processor *pr)
>                 return -ENODEV;
>
>         cpuidle_pause_and_lock();
> -       cpuidle_disable_device(&pr->power.dev);
> +       cpuidle_disable_device(dev);
>         acpi_processor_get_power_info(pr);
>         if (pr->flags.power) {
>                 acpi_processor_setup_cpuidle_cx(pr);
> -               ret = cpuidle_enable_device(&pr->power.dev);
> +               ret = cpuidle_enable_device(dev);
>         }
>         cpuidle_resume_and_unlock();
>
> @@ -1160,6 +1163,7 @@ int acpi_processor_cst_has_changed(struct acpi_processor *pr)
>  {
>         int cpu;
>         struct acpi_processor *_pr;
> +       struct cpuidle_device *dev;
>
>         if (disabled_by_idle_boot_param())
>                 return 0;
> @@ -1190,7 +1194,8 @@ int acpi_processor_cst_has_changed(struct acpi_processor *pr)
>                         _pr = per_cpu(processors, cpu);
>                         if (!_pr || !_pr->flags.power_setup_done)
>                                 continue;
> -                       cpuidle_disable_device(&_pr->power.dev);
> +                       dev = &per_cpu(acpi_cpuidle_device, cpu);
> +                       cpuidle_disable_device(dev);
>                 }
>
>                 /* Populate Updated C-state information */
> @@ -1204,7 +1209,8 @@ int acpi_processor_cst_has_changed(struct acpi_processor *pr)
>                         acpi_processor_get_power_info(_pr);
>                         if (_pr->flags.power) {
>                                 acpi_processor_setup_cpuidle_cx(_pr);
> -                               cpuidle_enable_device(&_pr->power.dev);
> +                               dev = &per_cpu(acpi_cpuidle_device, cpu);
> +                               cpuidle_enable_device(dev);
>                         }
>                 }
>                 put_online_cpus();
> @@ -1221,6 +1227,7 @@ int __cpuinit acpi_processor_power_init(struct acpi_processor *pr,
>  {
>         acpi_status status = 0;
>         int retval;
> +       struct cpuidle_device *dev;
>         static int first_run;
>
>         if (disabled_by_idle_boot_param())
> @@ -1270,7 +1277,9 @@ int __cpuinit acpi_processor_power_init(struct acpi_processor *pr,
>                  * must already be registered before registering device
>                  */
>                 acpi_processor_setup_cpuidle_cx(pr);
> -               retval = cpuidle_register_device(&pr->power.dev);
> +
> +               dev = &per_cpu(acpi_cpuidle_device, pr->id);
> +               retval = cpuidle_register_device(dev);
>                 if (retval) {
>                         if (acpi_processor_registered == 0)
>                                 cpuidle_unregister_driver(&acpi_idle_driver);
> @@ -1284,11 +1293,13 @@ int __cpuinit acpi_processor_power_init(struct acpi_processor *pr,
>  int acpi_processor_power_exit(struct acpi_processor *pr,
>                               struct acpi_device *device)
>  {
> +       struct cpuidle_device *dev = &per_cpu(acpi_cpuidle_device, pr->id);
> +
>         if (disabled_by_idle_boot_param())
>                 return 0;
>
>         if (pr->flags.power) {
> -               cpuidle_unregister_device(&pr->power.dev);
> +               cpuidle_unregister_device(dev);
>                 acpi_processor_registered--;
>                 if (acpi_processor_registered == 0)
>                         cpuidle_unregister_driver(&acpi_idle_driver);
> diff --git a/include/acpi/processor.h b/include/acpi/processor.h
> index 8b2c39a..4d98ec8 100644
> --- a/include/acpi/processor.h
> +++ b/include/acpi/processor.h
> @@ -3,7 +3,6 @@
>
>  #include <linux/kernel.h>
>  #include <linux/cpu.h>
> -#include <linux/cpuidle.h>
>  #include <linux/thermal.h>
>  #include <asm/acpi.h>
>
> @@ -64,7 +63,6 @@ struct acpi_processor_cx {
>  };
>
>  struct acpi_processor_power {
> -       struct cpuidle_device dev;
>         struct acpi_processor_cx *state;
>         unsigned long bm_check_timestamp;
>         u32 default_state;
> --
> 1.7.5.4
>
>
> _______________________________________________
> linaro-dev mailing list
> linaro-dev@xxxxxxxxxxxxxxxx
> http://lists.linaro.org/mailman/listinfo/linaro-dev
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux