diff mbox

[3/5] cpuidle / ACPI : pass the cpuidle_device parameter

Message ID 1350640292-22468-3-git-send-email-daniel.lezcano@linaro.org (mailing list archive)
State Rejected, archived
Headers show

Commit Message

Daniel Lezcano Oct. 19, 2012, 9:51 a.m. UTC
The cpuidle_device is retrieved in the function by using directly
the global variable. But the caller of this function already have
this device and it can be passed as a parameter. That is one small
step to encapsulate the code more.

Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
---
 drivers/acpi/processor_idle.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

Comments

Rafael Wysocki Oct. 25, 2012, 11:47 p.m. UTC | #1
On Friday, October 19, 2012 11:51:30 AM Daniel Lezcano wrote:
> The cpuidle_device is retrieved in the function by using directly
> the global variable. But the caller of this function already have
> this device and it can be passed as a parameter. That is one small
> step to encapsulate the code more.
> 
> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
> ---
>  drivers/acpi/processor_idle.c |   11 ++++++-----
>  1 files changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
> index 9aac69b..5c4330f 100644
> --- a/drivers/acpi/processor_idle.c
> +++ b/drivers/acpi/processor_idle.c
> @@ -974,13 +974,14 @@ struct cpuidle_driver acpi_idle_driver = {
>   * device i.e. per-cpu data
>   *
>   * @pr: the ACPI processor
> + * @dev : the cpuidle device
>   */
> -static int acpi_processor_setup_cpuidle_cx(struct acpi_processor *pr)
> +static int acpi_processor_setup_cpuidle_cx(struct acpi_processor *pr,
> +					   struct cpuidle_device *dev)
>  {
>  	int i, count = CPUIDLE_DRIVER_STATE_START;
>  	struct acpi_processor_cx *cx;
>  	struct cpuidle_state_usage *state_usage;
> -	struct cpuidle_device *dev = per_cpu(acpi_cpuidle_device, pr->id);

I'm not sure if that's worth it.  The value of dev should be in the cache
anyway and the way it is makes it clear that this is a per-CPU variable
without tracking the call sequence.

I'm not applying this unless you need it for some further changes.

Thanks,
Rafael


>  
>  	if (!pr->flags.power_setup_done)
>  		return -EINVAL;
> @@ -1132,7 +1133,7 @@ int acpi_processor_hotplug(struct acpi_processor *pr)
>  	cpuidle_disable_device(dev);
>  	acpi_processor_get_power_info(pr);
>  	if (pr->flags.power) {
> -		acpi_processor_setup_cpuidle_cx(pr);
> +		acpi_processor_setup_cpuidle_cx(pr, dev);
>  		ret = cpuidle_enable_device(dev);
>  	}
>  	cpuidle_resume_and_unlock();
> @@ -1189,8 +1190,8 @@ int acpi_processor_cst_has_changed(struct acpi_processor *pr)
>  				continue;
>  			acpi_processor_get_power_info(_pr);
>  			if (_pr->flags.power) {
> -				acpi_processor_setup_cpuidle_cx(_pr);
>  				dev = per_cpu(acpi_cpuidle_device, cpu);
> +				acpi_processor_setup_cpuidle_cx(_pr, dev);
>  				cpuidle_enable_device(dev);
>  			}
>  		}
> @@ -1259,7 +1260,7 @@ int __cpuinit acpi_processor_power_init(struct acpi_processor *pr)
>  			return -ENOMEM;
>  		per_cpu(acpi_cpuidle_device, pr->id) = dev;
>  
> -		acpi_processor_setup_cpuidle_cx(pr);
> +		acpi_processor_setup_cpuidle_cx(pr, dev);
>  
>  		/* Register per-cpu cpuidle_device. Cpuidle driver
>  		 * must already be registered before registering device
>
diff mbox

Patch

diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index 9aac69b..5c4330f 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -974,13 +974,14 @@  struct cpuidle_driver acpi_idle_driver = {
  * device i.e. per-cpu data
  *
  * @pr: the ACPI processor
+ * @dev : the cpuidle device
  */
-static int acpi_processor_setup_cpuidle_cx(struct acpi_processor *pr)
+static int acpi_processor_setup_cpuidle_cx(struct acpi_processor *pr,
+					   struct cpuidle_device *dev)
 {
 	int i, count = CPUIDLE_DRIVER_STATE_START;
 	struct acpi_processor_cx *cx;
 	struct cpuidle_state_usage *state_usage;
-	struct cpuidle_device *dev = per_cpu(acpi_cpuidle_device, pr->id);
 
 	if (!pr->flags.power_setup_done)
 		return -EINVAL;
@@ -1132,7 +1133,7 @@  int acpi_processor_hotplug(struct acpi_processor *pr)
 	cpuidle_disable_device(dev);
 	acpi_processor_get_power_info(pr);
 	if (pr->flags.power) {
-		acpi_processor_setup_cpuidle_cx(pr);
+		acpi_processor_setup_cpuidle_cx(pr, dev);
 		ret = cpuidle_enable_device(dev);
 	}
 	cpuidle_resume_and_unlock();
@@ -1189,8 +1190,8 @@  int acpi_processor_cst_has_changed(struct acpi_processor *pr)
 				continue;
 			acpi_processor_get_power_info(_pr);
 			if (_pr->flags.power) {
-				acpi_processor_setup_cpuidle_cx(_pr);
 				dev = per_cpu(acpi_cpuidle_device, cpu);
+				acpi_processor_setup_cpuidle_cx(_pr, dev);
 				cpuidle_enable_device(dev);
 			}
 		}
@@ -1259,7 +1260,7 @@  int __cpuinit acpi_processor_power_init(struct acpi_processor *pr)
 			return -ENOMEM;
 		per_cpu(acpi_cpuidle_device, pr->id) = dev;
 
-		acpi_processor_setup_cpuidle_cx(pr);
+		acpi_processor_setup_cpuidle_cx(pr, dev);
 
 		/* Register per-cpu cpuidle_device. Cpuidle driver
 		 * must already be registered before registering device