All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eduardo Valentin <edubezval@gmail.com>
To: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Rafael Wysocki <rjw@rjwysocki.net>,
	linaro-kernel@lists.linaro.org, linux-pm@vger.kernel.org,
	l.majewski@samsung.com
Subject: Re: [PATCH 3/7] cpufreq: Introduce ->usable() callback for cpufreq drivers
Date: Wed, 26 Nov 2014 13:58:33 -0400	[thread overview]
Message-ID: <20141126175829.GD1826@developer> (raw)
In-Reply-To: <95b84bb8af3d4d9667a79db520cfa37d9444d75b.1416980448.git.viresh.kumar@linaro.org>

[-- Attachment #1: Type: text/plain, Size: 2220 bytes --]

On Wed, Nov 26, 2014 at 11:22:58AM +0530, Viresh Kumar wrote:
> Currently there is no callback for cpufreq drivers which is called once the
> policy is ready to be used. There are some requirements where such a callback is
> required.
> 
> One of them is registering a cooling device with the help of
> of_cpufreq_cooling_register(). This routine tries to get 'struct cpufreq_policy'
> for CPUs which isn't yet initialed at the time ->init() is called and so we face
> issues while registering the cooling device.
> 
> Because we can't register cooling device from ->init(), we need a callback that
> is called after the policy is ready to be used and hence we introduce ->usable()
> callback.
> 

Reviewed-by: Eduardo Valentin <edubezval@gmail.com>
Tested-by: Eduardo Valentin <edubezval@gmail.com>

> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
> ---
>  drivers/cpufreq/cpufreq.c | 5 +++++
>  include/linux/cpufreq.h   | 4 ++++
>  2 files changed, 9 insertions(+)
> 
> diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
> index de2c3e1..4fb95b9 100644
> --- a/drivers/cpufreq/cpufreq.c
> +++ b/drivers/cpufreq/cpufreq.c
> @@ -1285,8 +1285,13 @@ static int __cpufreq_add_dev(struct device *dev, struct subsys_interface *sif)
>  	up_write(&policy->rwsem);
>  
>  	kobject_uevent(&policy->kobj, KOBJ_ADD);
> +
>  	up_read(&cpufreq_rwsem);
>  
> +	/* Callback for handling stuff after policy is ready */
> +	if (cpufreq_driver->usable)
> +		cpufreq_driver->usable(policy);
> +
>  	pr_debug("initialization complete\n");
>  
>  	return 0;
> diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
> index db3c130..4795c0b 100644
> --- a/include/linux/cpufreq.h
> +++ b/include/linux/cpufreq.h
> @@ -267,6 +267,10 @@ struct cpufreq_driver {
>  	void		(*stop_cpu)(struct cpufreq_policy *policy);
>  	int		(*suspend)(struct cpufreq_policy *policy);
>  	int		(*resume)(struct cpufreq_policy *policy);
> +
> +	/* Will be called after the driver is fully initialized */
> +	void		(*usable)(struct cpufreq_policy *policy);
> +
>  	struct freq_attr **attr;
>  
>  	/* platform specific boost support code */
> -- 
> 2.0.3.693.g996b0fd
> 

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

  reply	other threads:[~2014-11-26 17:58 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-26  5:52 [PATCH 0/7] cpufreq: Register cooling device after policy is usable Viresh Kumar
2014-11-26  5:52 ` [PATCH 1/7] cpufreq: Fix formatting issues in 'struct cpufreq_driver' Viresh Kumar
2014-11-26 17:57   ` Eduardo Valentin
2014-11-26  5:52 ` [PATCH 2/7] cpufreq-dt: pass 'policy->related_cpus' to of_cpufreq_cooling_register() Viresh Kumar
2014-11-26 17:55   ` Eduardo Valentin
2014-11-26  5:52 ` [PATCH 3/7] cpufreq: Introduce ->usable() callback for cpufreq drivers Viresh Kumar
2014-11-26 17:58   ` Eduardo Valentin [this message]
2014-11-27  0:25   ` Rafael J. Wysocki
2014-11-27  0:28     ` Viresh Kumar
2014-11-26  5:52 ` [PATCH 4/7] cpufreq-dt: register cooling device from ->usable() callback Viresh Kumar
2014-11-26 17:59   ` Eduardo Valentin
2014-11-26  5:53 ` [PATCH 5/7] cpu_cooling: Don't match min/max frequencies for all CPUs on cooling register Viresh Kumar
2014-11-27 15:35   ` Eduardo Valentin
2014-11-28  9:19     ` Viresh Kumar
2014-11-26  5:53 ` [PATCH 6/7] cpu_cooling: don't iterate over all allowed_cpus to update cpufreq policy Viresh Kumar
2014-11-26  5:53 ` [PATCH 7/7] cpu_cooling: Don't check is_cpufreq_valid() Viresh Kumar
2014-11-26 17:54 ` [PATCH 0/7] cpufreq: Register cooling device after policy is usable Eduardo Valentin
2014-11-27  0:26   ` Rafael J. Wysocki
2014-11-27 15:33   ` Eduardo Valentin
2014-11-28  6:27     ` Viresh Kumar
2014-11-26 18:01 ` Eduardo Valentin

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=20141126175829.GD1826@developer \
    --to=edubezval@gmail.com \
    --cc=l.majewski@samsung.com \
    --cc=linaro-kernel@lists.linaro.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.