All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Srivatsa S. Bhat" <srivatsa.bhat@linux.vnet.ibm.com>
To: Viresh Kumar <viresh.kumar@linaro.org>
Cc: rjw@rjwysocki.net, linaro-kernel@lists.linaro.org,
	cpufreq@vger.kernel.org, linux-pm@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	"ego@linux.vnet.ibm.com" <ego@linux.vnet.ibm.com>
Subject: Re: [PATCH V4 2/3] cpufreq: Convert existing drivers to use cpufreq_freq_transition_{begin|end}
Date: Fri, 21 Mar 2014 13:18:44 +0530	[thread overview]
Message-ID: <532BEEDC.9000106@linux.vnet.ibm.com> (raw)
In-Reply-To: <6c531c2fb48c3092bba1098459ef0862a6179375.1395379422.git.viresh.kumar@linaro.org>

On 03/21/2014 11:04 AM, Viresh Kumar wrote:
> CPUFreq core has new infrastructure that would guarantee serialized calls to
> target() or target_index() callbacks. These are called
> cpufreq_freq_transition_begin() and cpufreq_freq_transition_end().
> 
> This patch converts existing drivers to use these new set of routines.
> 
> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>

Nitpick: Instead of using 'false' as an argument to _post_transition(),
you could use '0', since the argument is supposed to be an int. But that's
minor, I won't insist.

Reviewed-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>

Regards,
Srivatsa S. Bhat

> ---
>  drivers/cpufreq/cpufreq-nforce2.c    | 4 ++--
>  drivers/cpufreq/cpufreq.c            | 9 ++++-----
>  drivers/cpufreq/exynos5440-cpufreq.c | 4 ++--
>  drivers/cpufreq/gx-suspmod.c         | 4 ++--
>  drivers/cpufreq/integrator-cpufreq.c | 4 ++--
>  drivers/cpufreq/longhaul.c           | 4 ++--
>  drivers/cpufreq/pcc-cpufreq.c        | 4 ++--
>  drivers/cpufreq/powernow-k6.c        | 4 ++--
>  drivers/cpufreq/powernow-k7.c        | 4 ++--
>  drivers/cpufreq/powernow-k8.c        | 4 ++--
>  drivers/cpufreq/s3c24xx-cpufreq.c    | 4 ++--
>  drivers/cpufreq/sh-cpufreq.c         | 4 ++--
>  drivers/cpufreq/unicore2-cpufreq.c   | 4 ++--
>  13 files changed, 28 insertions(+), 29 deletions(-)
> 
> diff --git a/drivers/cpufreq/cpufreq-nforce2.c b/drivers/cpufreq/cpufreq-nforce2.c
> index a05b876..379cc2c 100644
> --- a/drivers/cpufreq/cpufreq-nforce2.c
> +++ b/drivers/cpufreq/cpufreq-nforce2.c
> @@ -270,7 +270,7 @@ static int nforce2_target(struct cpufreq_policy *policy,
>  	pr_debug("Old CPU frequency %d kHz, new %d kHz\n",
>  	       freqs.old, freqs.new);
> 
> -	cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);
> +	cpufreq_freq_transition_begin(policy, &freqs);
> 
>  	/* Disable IRQs */
>  	/* local_irq_save(flags); */
> @@ -285,7 +285,7 @@ static int nforce2_target(struct cpufreq_policy *policy,
>  	/* Enable IRQs */
>  	/* local_irq_restore(flags); */
> 
> -	cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE);
> +	cpufreq_freq_transition_end(policy, &freqs, false);
> 
>  	return 0;
>  }
> diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
> index 4279cc9..b63e7e4 100644
> --- a/drivers/cpufreq/cpufreq.c
> +++ b/drivers/cpufreq/cpufreq.c
> @@ -1503,8 +1503,8 @@ static void cpufreq_out_of_sync(unsigned int cpu, unsigned int old_freq,
>  	policy = per_cpu(cpufreq_cpu_data, cpu);
>  	read_unlock_irqrestore(&cpufreq_driver_lock, flags);
> 
> -	cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);
> -	cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE);
> +	cpufreq_freq_transition_begin(policy, &freqs);
> +	cpufreq_freq_transition_end(policy, &freqs, false);
>  }
> 
>  /**
> @@ -1864,8 +1864,7 @@ int __cpufreq_driver_target(struct cpufreq_policy *policy,
>  			pr_debug("%s: cpu: %d, oldfreq: %u, new freq: %u\n",
>  				 __func__, policy->cpu, freqs.old, freqs.new);
> 
> -			cpufreq_notify_transition(policy, &freqs,
> -					CPUFREQ_PRECHANGE);
> +			cpufreq_freq_transition_begin(policy, &freqs);
>  		}
> 
>  		retval = cpufreq_driver->target_index(policy, index);
> @@ -1874,7 +1873,7 @@ int __cpufreq_driver_target(struct cpufreq_policy *policy,
>  			       __func__, retval);
> 
>  		if (notify)
> -			cpufreq_notify_post_transition(policy, &freqs, retval);
> +			cpufreq_freq_transition_end(policy, &freqs, retval);
>  	}
> 
>  out:
> diff --git a/drivers/cpufreq/exynos5440-cpufreq.c b/drivers/cpufreq/exynos5440-cpufreq.c
> index 7f776aa..3655e7d 100644
> --- a/drivers/cpufreq/exynos5440-cpufreq.c
> +++ b/drivers/cpufreq/exynos5440-cpufreq.c
> @@ -219,7 +219,7 @@ static int exynos_target(struct cpufreq_policy *policy, unsigned int index)
>  	freqs.old = policy->cur;
>  	freqs.new = freq_table[index].frequency;
> 
> -	cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);
> +	cpufreq_freq_transition_begin(policy, &freqs);
> 
>  	/* Set the target frequency in all C0_3_PSTATE register */
>  	for_each_cpu(i, policy->cpus) {
> @@ -258,7 +258,7 @@ static void exynos_cpufreq_work(struct work_struct *work)
>  		dev_crit(dvfs_info->dev, "New frequency out of range\n");
>  		freqs.new = freqs.old;
>  	}
> -	cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE);
> +	cpufreq_freq_transition_end(policy, &freqs, false);
> 
>  	cpufreq_cpu_put(policy);
>  	mutex_unlock(&cpufreq_lock);
> diff --git a/drivers/cpufreq/gx-suspmod.c b/drivers/cpufreq/gx-suspmod.c
> index d83e826..fe85673 100644
> --- a/drivers/cpufreq/gx-suspmod.c
> +++ b/drivers/cpufreq/gx-suspmod.c
> @@ -265,7 +265,7 @@ static void gx_set_cpuspeed(struct cpufreq_policy *policy, unsigned int khz)
> 
>  	freqs.new = new_khz;
> 
> -	cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);
> +	cpufreq_freq_transition_begin(policy, &freqs);
>  	local_irq_save(flags);
> 
>  	if (new_khz != stock_freq) {
> @@ -314,7 +314,7 @@ static void gx_set_cpuspeed(struct cpufreq_policy *policy, unsigned int khz)
> 
>  	gx_params->pci_suscfg = suscfg;
> 
> -	cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE);
> +	cpufreq_freq_transition_end(policy, &freqs, false);
> 
>  	pr_debug("suspend modulation w/ duration of ON:%d us, OFF:%d us\n",
>  		gx_params->on_duration * 32, gx_params->off_duration * 32);
> diff --git a/drivers/cpufreq/integrator-cpufreq.c b/drivers/cpufreq/integrator-cpufreq.c
> index 0e27844..771f422 100644
> --- a/drivers/cpufreq/integrator-cpufreq.c
> +++ b/drivers/cpufreq/integrator-cpufreq.c
> @@ -122,7 +122,7 @@ static int integrator_set_target(struct cpufreq_policy *policy,
>  		return 0;
>  	}
> 
> -	cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);
> +	cpufreq_freq_transition_begin(policy, &freqs);
> 
>  	cm_osc = __raw_readl(cm_base + INTEGRATOR_HDR_OSC_OFFSET);
> 
> @@ -143,7 +143,7 @@ static int integrator_set_target(struct cpufreq_policy *policy,
>  	 */
>  	set_cpus_allowed(current, cpus_allowed);
> 
> -	cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE);
> +	cpufreq_freq_transition_end(policy, &freqs, false);
> 
>  	return 0;
>  }
> diff --git a/drivers/cpufreq/longhaul.c b/drivers/cpufreq/longhaul.c
> index 7b94da3..c599af9 100644
> --- a/drivers/cpufreq/longhaul.c
> +++ b/drivers/cpufreq/longhaul.c
> @@ -269,7 +269,7 @@ static void longhaul_setstate(struct cpufreq_policy *policy,
>  	freqs.old = calc_speed(longhaul_get_cpu_mult());
>  	freqs.new = speed;
> 
> -	cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);
> +	cpufreq_freq_transition_begin(policy, &freqs);
> 
>  	pr_debug("Setting to FSB:%dMHz Mult:%d.%dx (%s)\n",
>  			fsb, mult/10, mult%10, print_speed(speed/1000));
> @@ -386,7 +386,7 @@ retry_loop:
>  		}
>  	}
>  	/* Report true CPU frequency */
> -	cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE);
> +	cpufreq_freq_transition_end(policy, &freqs, false);
> 
>  	if (!bm_timeout)
>  		printk(KERN_INFO PFX "Warning: Timeout while waiting for "
> diff --git a/drivers/cpufreq/pcc-cpufreq.c b/drivers/cpufreq/pcc-cpufreq.c
> index 1c0f106..728a2d8 100644
> --- a/drivers/cpufreq/pcc-cpufreq.c
> +++ b/drivers/cpufreq/pcc-cpufreq.c
> @@ -215,7 +215,7 @@ static int pcc_cpufreq_target(struct cpufreq_policy *policy,
> 
>  	freqs.old = policy->cur;
>  	freqs.new = target_freq;
> -	cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);
> +	cpufreq_freq_transition_begin(policy, &freqs);
> 
>  	input_buffer = 0x1 | (((target_freq * 100)
>  			       / (ioread32(&pcch_hdr->nominal) * 1000)) << 8);
> @@ -231,7 +231,7 @@ static int pcc_cpufreq_target(struct cpufreq_policy *policy,
>  	status = ioread16(&pcch_hdr->status);
>  	iowrite16(0, &pcch_hdr->status);
> 
> -	cpufreq_notify_post_transition(policy, &freqs, status != CMD_COMPLETE);
> +	cpufreq_freq_transition_end(policy, &freqs, status != CMD_COMPLETE);
>  	spin_unlock(&pcc_lock);
> 
>  	if (status != CMD_COMPLETE) {
> diff --git a/drivers/cpufreq/powernow-k6.c b/drivers/cpufreq/powernow-k6.c
> index ce27e6c..882d673 100644
> --- a/drivers/cpufreq/powernow-k6.c
> +++ b/drivers/cpufreq/powernow-k6.c
> @@ -148,11 +148,11 @@ static int powernow_k6_target(struct cpufreq_policy *policy,
>  	freqs.old = busfreq * powernow_k6_get_cpu_multiplier();
>  	freqs.new = busfreq * clock_ratio[best_i].driver_data;
> 
> -	cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);
> +	cpufreq_freq_transition_begin(policy, &freqs);
> 
>  	powernow_k6_set_cpu_multiplier(best_i);
> 
> -	cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE);
> +	cpufreq_freq_transition_end(policy, &freqs, false);
> 
>  	return 0;
>  }
> diff --git a/drivers/cpufreq/powernow-k7.c b/drivers/cpufreq/powernow-k7.c
> index 0e68e02..30a6c48 100644
> --- a/drivers/cpufreq/powernow-k7.c
> +++ b/drivers/cpufreq/powernow-k7.c
> @@ -269,7 +269,7 @@ static int powernow_target(struct cpufreq_policy *policy, unsigned int index)
> 
>  	freqs.new = powernow_table[index].frequency;
> 
> -	cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);
> +	cpufreq_freq_transition_begin(policy, &freqs);
> 
>  	/* Now do the magic poking into the MSRs.  */
> 
> @@ -290,7 +290,7 @@ static int powernow_target(struct cpufreq_policy *policy, unsigned int index)
>  	if (have_a0 == 1)
>  		local_irq_enable();
> 
> -	cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE);
> +	cpufreq_freq_transition_end(policy, &freqs, false);
> 
>  	return 0;
>  }
> diff --git a/drivers/cpufreq/powernow-k8.c b/drivers/cpufreq/powernow-k8.c
> index 27eb2be..770a9e1 100644
> --- a/drivers/cpufreq/powernow-k8.c
> +++ b/drivers/cpufreq/powernow-k8.c
> @@ -963,9 +963,9 @@ static int transition_frequency_fidvid(struct powernow_k8_data *data,
>  	policy = cpufreq_cpu_get(smp_processor_id());
>  	cpufreq_cpu_put(policy);
> 
> -	cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);
> +	cpufreq_freq_transition_begin(policy, &freqs);
>  	res = transition_fid_vid(data, fid, vid);
> -	cpufreq_notify_post_transition(policy, &freqs, res);
> +	cpufreq_freq_transition_end(policy, &freqs, res);
> 
>  	return res;
>  }
> diff --git a/drivers/cpufreq/s3c24xx-cpufreq.c b/drivers/cpufreq/s3c24xx-cpufreq.c
> index 2506974..d5ef905 100644
> --- a/drivers/cpufreq/s3c24xx-cpufreq.c
> +++ b/drivers/cpufreq/s3c24xx-cpufreq.c
> @@ -217,7 +217,7 @@ static int s3c_cpufreq_settarget(struct cpufreq_policy *policy,
>  	s3c_cpufreq_updateclk(clk_pclk, cpu_new.freq.pclk);
> 
>  	/* start the frequency change */
> -	cpufreq_notify_transition(policy, &freqs.freqs, CPUFREQ_PRECHANGE);
> +	cpufreq_freq_transition_begin(policy, &freqs.freqs);
> 
>  	/* If hclk is staying the same, then we do not need to
>  	 * re-write the IO or the refresh timings whilst we are changing
> @@ -261,7 +261,7 @@ static int s3c_cpufreq_settarget(struct cpufreq_policy *policy,
>  	local_irq_restore(flags);
> 
>  	/* notify everyone we've done this */
> -	cpufreq_notify_transition(policy, &freqs.freqs, CPUFREQ_POSTCHANGE);
> +	cpufreq_freq_transition_end(policy, &freqs.freqs, false);
> 
>  	s3c_freq_dbg("%s: finished\n", __func__);
>  	return 0;
> diff --git a/drivers/cpufreq/sh-cpufreq.c b/drivers/cpufreq/sh-cpufreq.c
> index 696170e..f63abf3 100644
> --- a/drivers/cpufreq/sh-cpufreq.c
> +++ b/drivers/cpufreq/sh-cpufreq.c
> @@ -68,10 +68,10 @@ static int sh_cpufreq_target(struct cpufreq_policy *policy,
>  	freqs.new	= (freq + 500) / 1000;
>  	freqs.flags	= 0;
> 
> -	cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);
> +	cpufreq_freq_transition_begin(policy, &freqs);
>  	set_cpus_allowed_ptr(current, &cpus_allowed);
>  	clk_set_rate(cpuclk, freq);
> -	cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE);
> +	cpufreq_freq_transition_end(policy, &freqs, false);
> 
>  	dev_dbg(dev, "set frequency %lu Hz\n", freq);
> 
> diff --git a/drivers/cpufreq/unicore2-cpufreq.c b/drivers/cpufreq/unicore2-cpufreq.c
> index 36cc330..13be802 100644
> --- a/drivers/cpufreq/unicore2-cpufreq.c
> +++ b/drivers/cpufreq/unicore2-cpufreq.c
> @@ -44,9 +44,9 @@ static int ucv2_target(struct cpufreq_policy *policy,
>  	freqs.old = policy->cur;
>  	freqs.new = target_freq;
> 
> -	cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);
> +	cpufreq_freq_transition_begin(policy, &freqs);
>  	ret = clk_set_rate(policy->mclk, target_freq * 1000);
> -	cpufreq_notify_post_transition(policy, &freqs, ret);
> +	cpufreq_freq_transition_end(policy, &freqs, ret);
> 
>  	return ret;
>  }
> 


  reply	other threads:[~2014-03-21  7:48 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-21  5:34 [PATCH V4 0/3] cpufreq: Introduce cpufreq_freq_transition_{begin|end}() Viresh Kumar
2014-03-21  5:34 ` [PATCH V4 1/3] cpufreq: Make sure frequency transitions are serialized Viresh Kumar
2014-03-21  7:46   ` Srivatsa S. Bhat
2014-03-21  7:58     ` Viresh Kumar
2014-03-21  8:42       ` Srivatsa S. Bhat
2014-03-21  9:21         ` Viresh Kumar
2014-03-21 10:06           ` Viresh Kumar
2014-03-21 11:05           ` Catalin Marinas
2014-03-21 11:24             ` Srivatsa S. Bhat
2014-03-21 18:07               ` Catalin Marinas
2014-03-22  3:48                 ` Viresh Kumar
2014-03-24  6:48                 ` Srivatsa S. Bhat
2014-03-24  6:19             ` Viresh Kumar
2014-03-21  5:34 ` [PATCH V4 2/3] cpufreq: Convert existing drivers to use cpufreq_freq_transition_{begin|end} Viresh Kumar
2014-03-21  7:48   ` Srivatsa S. Bhat [this message]
2014-03-21  7:59     ` Viresh Kumar
2014-03-21  5:34 ` [PATCH V4 3/3] cpufreq: Make cpufreq_notify_transition & cpufreq_notify_post_transition static Viresh Kumar
2014-03-21  7:51   ` Srivatsa S. Bhat

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=532BEEDC.9000106@linux.vnet.ibm.com \
    --to=srivatsa.bhat@linux.vnet.ibm.com \
    --cc=cpufreq@vger.kernel.org \
    --cc=ego@linux.vnet.ibm.com \
    --cc=linaro-kernel@lists.linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=rjw@rjwysocki.net \
    --cc=viresh.kumar@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.