diff mbox

[13/34] cpufreq: exynos5440: set CPUFREQ_NO_NOTIFICATION flag

Message ID 14993d27bdc6a91eced0af5eb96bdb5ca6546cbf.1376619363.git.viresh.kumar@linaro.org
State New
Headers show

Commit Message

Viresh Kumar Aug. 16, 2013, 2:25 a.m. UTC
Most of the drivers do following in their ->target_index() routines:

	struct cpufreq_freqs freqs;
	freqs.old = old freq...
	freqs.new = new freq...

	cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);

	/* Change rate here */

	cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE);

This is replicated over all cpufreq drivers today and there doesn't exists a
good enough reason why this shouldn't be moved to cpufreq core instead.

Earlier patches have added support in cpufreq core to do cpufreq notification on
frequency change, but this drivers needs to do this notification itself and so
it sets its CPUFREQ_NO_NOTIFICATION flag.

Cc: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
---
 drivers/cpufreq/exynos5440-cpufreq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Amit Daniel Kachhap Aug. 18, 2013, 10:54 a.m. UTC | #1
On Fri, Aug 16, 2013 at 7:55 AM, Viresh Kumar <viresh.kumar@linaro.org> wrote:
> Most of the drivers do following in their ->target_index() routines:
>
>         struct cpufreq_freqs freqs;
>         freqs.old = old freq...
>         freqs.new = new freq...
>
>         cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);
>
>         /* Change rate here */
>
>         cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE);
>
> This is replicated over all cpufreq drivers today and there doesn't exists a
> good enough reason why this shouldn't be moved to cpufreq core instead.
>
> Earlier patches have added support in cpufreq core to do cpufreq notification on
> frequency change, but this drivers needs to do this notification itself and so
> it sets its CPUFREQ_NO_NOTIFICATION flag.
>
> Cc: Kukjin Kim <kgene.kim@samsung.com>
> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
The code change looks fine,
Acked-By: Amit Daniel Kachhap <amit.daniel@samsung.com>

Thanks
Amit Daniel
> ---
>  drivers/cpufreq/exynos5440-cpufreq.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/cpufreq/exynos5440-cpufreq.c b/drivers/cpufreq/exynos5440-cpufreq.c
> index 91a64d6..8fb6183 100644
> --- a/drivers/cpufreq/exynos5440-cpufreq.c
> +++ b/drivers/cpufreq/exynos5440-cpufreq.c
> @@ -323,7 +323,7 @@ static int exynos_cpufreq_cpu_init(struct cpufreq_policy *policy)
>  }
>
>  static struct cpufreq_driver exynos_driver = {
> -       .flags          = CPUFREQ_STICKY,
> +       .flags          = CPUFREQ_STICKY | CPUFREQ_NO_NOTIFICATION,
>         .verify         = cpufreq_generic_frequency_table_verify,
>         .target_index   = exynos_target,
>         .get            = exynos_getspeed,
> --
> 1.7.12.rc2.18.g61b472e
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
Kukjin Kim Aug. 18, 2013, 9:57 p.m. UTC | #2
amit daniel kachhap wrote:
> 
> On Fri, Aug 16, 2013 at 7:55 AM, Viresh Kumar <viresh.kumar@linaro.org>
> wrote:
> > Most of the drivers do following in their ->target_index() routines:
> >
> >         struct cpufreq_freqs freqs;
> >         freqs.old = old freq...
> >         freqs.new = new freq...
> >
> >         cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);
> >
> >         /* Change rate here */
> >
> >         cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE);
> >
> > This is replicated over all cpufreq drivers today and there doesn't
> exists a
> > good enough reason why this shouldn't be moved to cpufreq core instead.
> >
> > Earlier patches have added support in cpufreq core to do cpufreq
> notification on
> > frequency change, but this drivers needs to do this notification itself
> and so
> > it sets its CPUFREQ_NO_NOTIFICATION flag.
> >
> > Cc: Kukjin Kim <kgene.kim@samsung.com>

Acked-by: Kukjin Kim <kgene.kim@samsung.com>

Thanks,
Kukjin

> > Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
> The code change looks fine,
> Acked-By: Amit Daniel Kachhap <amit.daniel@samsung.com>
> 
> Thanks
> Amit Daniel
> > ---
> >  drivers/cpufreq/exynos5440-cpufreq.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/cpufreq/exynos5440-cpufreq.c
> b/drivers/cpufreq/exynos5440-cpufreq.c
> > index 91a64d6..8fb6183 100644
> > --- a/drivers/cpufreq/exynos5440-cpufreq.c
> > +++ b/drivers/cpufreq/exynos5440-cpufreq.c
> > @@ -323,7 +323,7 @@ static int exynos_cpufreq_cpu_init(struct
> cpufreq_policy *policy)
> >  }
> >
> >  static struct cpufreq_driver exynos_driver = {
> > -       .flags          = CPUFREQ_STICKY,
> > +       .flags          = CPUFREQ_STICKY | CPUFREQ_NO_NOTIFICATION,
> >         .verify         = cpufreq_generic_frequency_table_verify,
> >         .target_index   = exynos_target,
> >         .get            = exynos_getspeed,
> > --
> > 1.7.12.rc2.18.g61b472e
Amit Daniel Kachhap Aug. 19, 2013, 3:42 a.m. UTC | #3
On Sun, Aug 18, 2013 at 4:24 PM, amit daniel kachhap
<amit.daniel@samsung.com> wrote:
> On Fri, Aug 16, 2013 at 7:55 AM, Viresh Kumar <viresh.kumar@linaro.org> wrote:
>> Most of the drivers do following in their ->target_index() routines:
>>
>>         struct cpufreq_freqs freqs;
>>         freqs.old = old freq...
>>         freqs.new = new freq...
>>
>>         cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);
>>
>>         /* Change rate here */
>>
>>         cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE);
>>
>> This is replicated over all cpufreq drivers today and there doesn't exists a
>> good enough reason why this shouldn't be moved to cpufreq core instead.
>>
>> Earlier patches have added support in cpufreq core to do cpufreq notification on
>> frequency change, but this drivers needs to do this notification itself and so
>> it sets its CPUFREQ_NO_NOTIFICATION flag.
>>
>> Cc: Kukjin Kim <kgene.kim@samsung.com>
>> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
> The code change looks fine,
> Acked-By: Amit Daniel Kachhap <amit.daniel@samsung.com>
>
> Thanks
> Amit Daniel
>> ---
>>  drivers/cpufreq/exynos5440-cpufreq.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/cpufreq/exynos5440-cpufreq.c b/drivers/cpufreq/exynos5440-cpufreq.c
>> index 91a64d6..8fb6183 100644
>> --- a/drivers/cpufreq/exynos5440-cpufreq.c
>> +++ b/drivers/cpufreq/exynos5440-cpufreq.c
>> @@ -323,7 +323,7 @@ static int exynos_cpufreq_cpu_init(struct cpufreq_policy *policy)
>>  }
>>
>>  static struct cpufreq_driver exynos_driver = {
>> -       .flags          = CPUFREQ_STICKY,
>> +       .flags          = CPUFREQ_STICKY | CPUFREQ_NO_NOTIFICATION,
How about naming the flag as CPUFREQ_ASYNC_NOTIFICATION? For platforms
not defining this flag, the notifiers can be called synchronously from
the core driver.

Thanks,
Amit Daniel
>>         .verify         = cpufreq_generic_frequency_table_verify,
>>         .target_index   = exynos_target,
>>         .get            = exynos_getspeed,
>> --
>> 1.7.12.rc2.18.g61b472e
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> Please read the FAQ at  http://www.tux.org/lkml/
Viresh Kumar Aug. 19, 2013, 4:40 a.m. UTC | #4
On 19 August 2013 09:12, amit daniel kachhap <amit.daniel@samsung.com> wrote:
>>> +       .flags          = CPUFREQ_STICKY | CPUFREQ_NO_NOTIFICATION,
> How about naming the flag as CPUFREQ_ASYNC_NOTIFICATION? For platforms
> not defining this flag, the notifiers can be called synchronously from
> the core driver.

Nice.. +1

My repo will be updated with this change..
diff mbox

Patch

diff --git a/drivers/cpufreq/exynos5440-cpufreq.c b/drivers/cpufreq/exynos5440-cpufreq.c
index 91a64d6..8fb6183 100644
--- a/drivers/cpufreq/exynos5440-cpufreq.c
+++ b/drivers/cpufreq/exynos5440-cpufreq.c
@@ -323,7 +323,7 @@  static int exynos_cpufreq_cpu_init(struct cpufreq_policy *policy)
 }
 
 static struct cpufreq_driver exynos_driver = {
-	.flags		= CPUFREQ_STICKY,
+	.flags		= CPUFREQ_STICKY | CPUFREQ_NO_NOTIFICATION,
 	.verify		= cpufreq_generic_frequency_table_verify,
 	.target_index	= exynos_target,
 	.get		= exynos_getspeed,