On Monday, August 03, 2015 08:36:14 AM Viresh Kumar wrote: > What's being done from CPUFREQ_INCOMPATIBLE, can also be done with > CPUFREQ_ADJUST. There is nothing special with CPUFREQ_INCOMPATIBLE > notifier. The above part of the changelog is a disaster to me. :-( It not only doesn't explain what really goes on, but it's actively confusing. What really happens is that the core sends CPUFREQ_INCOMPATIBLE notifications unconditionally right after sending the CPUFREQ_ADJUST ones, so the former is just redundant and it's more efficient to merge the two into one. > Kill CPUFREQ_INCOMPATIBLE and fix its usage sites. > > This also updates the numbering of notifier events to remove holes. Why don't you redefine CPUFREQ_ADJUST as 1 instead? > Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx> > --- > Documentation/cpu-freq/core.txt | 7 ++----- > drivers/acpi/processor_perflib.c | 2 +- > drivers/cpufreq/cpufreq.c | 4 ---- > drivers/cpufreq/ppc_cbe_cpufreq_pmi.c | 4 ++-- > drivers/video/fbdev/pxafb.c | 1 - > drivers/video/fbdev/sa1100fb.c | 1 - > include/linux/cpufreq.h | 9 ++++----- > 7 files changed, 9 insertions(+), 19 deletions(-) > > diff --git a/Documentation/cpu-freq/core.txt b/Documentation/cpu-freq/core.txt > index 70933eadc308..ba78e7c2a069 100644 > --- a/Documentation/cpu-freq/core.txt > +++ b/Documentation/cpu-freq/core.txt > @@ -55,16 +55,13 @@ transition notifiers. > ---------------------------- > > These are notified when a new policy is intended to be set. Each > -CPUFreq policy notifier is called three times for a policy transition: > +CPUFreq policy notifier is called twice for a policy transition: > > 1.) During CPUFREQ_ADJUST all CPUFreq notifiers may change the limit if > they see a need for this - may it be thermal considerations or > hardware limitations. > > -2.) During CPUFREQ_INCOMPATIBLE only changes may be done in order to avoid > - hardware failure. > - > -3.) And during CPUFREQ_NOTIFY all notifiers are informed of the new policy > +2.) And during CPUFREQ_NOTIFY all notifiers are informed of the new policy > - if two hardware drivers failed to agree on a new policy before this > stage, the incompatible hardware shall be shut down, and the user > informed of this. > diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c > index 47af702bb6a2..bb01dea39fdc 100644 > --- a/drivers/acpi/processor_perflib.c > +++ b/drivers/acpi/processor_perflib.c > @@ -83,7 +83,7 @@ static int acpi_processor_ppc_notifier(struct notifier_block *nb, > if (ignore_ppc) > return 0; > > - if (event != CPUFREQ_INCOMPATIBLE) > + if (event != CPUFREQ_ADJUST) > return 0; > > mutex_lock(&performance_mutex); > diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c > index 76a26609d96b..293f47b814bf 100644 > --- a/drivers/cpufreq/cpufreq.c > +++ b/drivers/cpufreq/cpufreq.c > @@ -2206,10 +2206,6 @@ static int cpufreq_set_policy(struct cpufreq_policy *policy, > blocking_notifier_call_chain(&cpufreq_policy_notifier_list, > CPUFREQ_ADJUST, new_policy); > > - /* adjust if necessary - hardware incompatibility*/ > - blocking_notifier_call_chain(&cpufreq_policy_notifier_list, > - CPUFREQ_INCOMPATIBLE, new_policy); > - > /* > * verify the cpu speed can be set within this limit, which might be > * different to the first one > diff --git a/drivers/cpufreq/ppc_cbe_cpufreq_pmi.c b/drivers/cpufreq/ppc_cbe_cpufreq_pmi.c > index d29e8da396a0..7969f7690498 100644 > --- a/drivers/cpufreq/ppc_cbe_cpufreq_pmi.c > +++ b/drivers/cpufreq/ppc_cbe_cpufreq_pmi.c > @@ -97,8 +97,8 @@ static int pmi_notifier(struct notifier_block *nb, > struct cpufreq_frequency_table *cbe_freqs; > u8 node; > > - /* Should this really be called for CPUFREQ_ADJUST, CPUFREQ_INCOMPATIBLE > - * and CPUFREQ_NOTIFY policy events?) > + /* Should this really be called for CPUFREQ_ADJUST and CPUFREQ_NOTIFY > + * policy events?) > */ > if (event == CPUFREQ_START) > return 0; > diff --git a/drivers/video/fbdev/pxafb.c b/drivers/video/fbdev/pxafb.c > index 7245611ec963..94813af97f09 100644 > --- a/drivers/video/fbdev/pxafb.c > +++ b/drivers/video/fbdev/pxafb.c > @@ -1668,7 +1668,6 @@ pxafb_freq_policy(struct notifier_block *nb, unsigned long val, void *data) > > switch (val) { > case CPUFREQ_ADJUST: > - case CPUFREQ_INCOMPATIBLE: > pr_debug("min dma period: %d ps, " > "new clock %d kHz\n", pxafb_display_dma_period(var), > policy->max); > diff --git a/drivers/video/fbdev/sa1100fb.c b/drivers/video/fbdev/sa1100fb.c > index 89dd7e02197f..dcf774c15889 100644 > --- a/drivers/video/fbdev/sa1100fb.c > +++ b/drivers/video/fbdev/sa1100fb.c > @@ -1042,7 +1042,6 @@ sa1100fb_freq_policy(struct notifier_block *nb, unsigned long val, > > switch (val) { > case CPUFREQ_ADJUST: > - case CPUFREQ_INCOMPATIBLE: > dev_dbg(fbi->dev, "min dma period: %d ps, " > "new clock %d kHz\n", sa1100fb_min_dma_period(fbi), > policy->max); > diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h > index bde1e567b3a9..bedcc90c0757 100644 > --- a/include/linux/cpufreq.h > +++ b/include/linux/cpufreq.h > @@ -369,11 +369,10 @@ static inline void cpufreq_resume(void) {} > > /* Policy Notifiers */ > #define CPUFREQ_ADJUST (0) > -#define CPUFREQ_INCOMPATIBLE (1) > -#define CPUFREQ_NOTIFY (2) > -#define CPUFREQ_START (3) > -#define CPUFREQ_CREATE_POLICY (4) > -#define CPUFREQ_REMOVE_POLICY (5) > +#define CPUFREQ_NOTIFY (1) > +#define CPUFREQ_START (2) > +#define CPUFREQ_CREATE_POLICY (3) > +#define CPUFREQ_REMOVE_POLICY (4) > > #ifdef CONFIG_CPU_FREQ > int cpufreq_register_notifier(struct notifier_block *nb, unsigned int list); > -- I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center. -- 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