public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
* Powerop-cpufreq.patch
@ 2006-08-01  0:42 david singleton
  0 siblings, 0 replies; 2+ messages in thread
From: david singleton @ 2006-08-01  0:42 UTC (permalink / raw)
  To: linux-pm; +Cc: david singleton

This patch unifies the cpufreq power management into the PowerOp 
operating point
concept.   The same CPU frequencies can be set by either interface.  
The PowerOp
interface can transition to the new frequency by writing the name of 
the operating
point into the /sys/power/state file.


David

Signed-Off-by: David Singleton dsingleton@mvista.com

  drivers/cpufreq/cpufreq.c |   34 ++++++++++++++++++++++++++++++++++
  include/linux/cpufreq.h   |    2 ++
  2 files changed, 36 insertions(+)

Index: linux-2.6.17/drivers/cpufreq/cpufreq.c
===================================================================
--- linux-2.6.17.orig/drivers/cpufreq/cpufreq.c
+++ linux-2.6.17/drivers/cpufreq/cpufreq.c
@@ -226,6 +226,33 @@ static void adjust_jiffies(unsigned long
  static inline void adjust_jiffies(unsigned long val, struct 
cpufreq_freqs *ci) { return; }
  #endif

+int cpufreq_prepare_transition(struct power_op *cur, struct power_op 
*new)
+{
+       struct cpufreq_freqs freqs;
+
+       freqs.old = cur->frequency;
+       freqs.new = new->frequency;
+       freqs.cpu = 0;
+       freqs.flags = cpufreq_driver->flags;
+       blocking_notifier_call_chain(&cpufreq_transition_notifier_list,
+                       CPUFREQ_PRECHANGE, &freqs);
+       adjust_jiffies(CPUFREQ_PRECHANGE, &freqs);
+       return 0;
+}
+
+int cpufreq_finish_transition(struct power_op *cur, struct power_op 
*new)
+{
+       struct cpufreq_freqs freqs;
+
+       freqs.old = cur->frequency;
+       freqs.new = new->frequency;
+       freqs.cpu = 0;
+       freqs.flags = cpufreq_driver->flags;
+       adjust_jiffies(CPUFREQ_POSTCHANGE, &freqs);
+       blocking_notifier_call_chain(&cpufreq_transition_notifier_list,
+                       CPUFREQ_POSTCHANGE, &freqs);
+       return 0;
+}

  /**
   * cpufreq_notify_transition - call notifier chain and adjust_jiffies
@@ -884,6 +911,12 @@ static void cpufreq_out_of_sync(unsigned
  }


+#ifdef CONFIG_PM
+unsigned int cpufreq_quick_get(unsigned int cpu)
+{
+       return (current_state->frequency * 1000);
+}
+#else
  /**
   * cpufreq_quick_get - get the CPU frequency (in kHz) frpm policy->cur
   * @cpu: CPU number
@@ -905,6 +938,7 @@ unsigned int cpufreq_quick_get(unsigned

         return (ret);
  }
+#endif
  EXPORT_SYMBOL(cpufreq_quick_get);


Index: linux-2.6.17/include/linux/cpufreq.h
===================================================================
--- linux-2.6.17.orig/include/linux/cpufreq.h
+++ linux-2.6.17/include/linux/cpufreq.h
@@ -271,6 +271,8 @@ static inline unsigned int cpufreq_quick
         return 0;
  }
  #endif
+int cpufreq_prepare_transition(struct power_op *cur, struct power_op 
*new);
+int cpufreq_finish_transition(struct power_op *cur, struct power_op 
*new);


  /*********************************************************************

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Powerop-cpufreq.patch
@ 2006-08-05  2:31 david singleton
  0 siblings, 0 replies; 2+ messages in thread
From: david singleton @ 2006-08-05  2:31 UTC (permalink / raw)
  To: linux-pm; +Cc: david singleton

This patch adds support to be able to use the cpufreq 
'prepare-to-transition'
and 'finish-transition' nofifier lists for PowerOp transitions.


Signed-Off-by: David Singleton <dsingleton@mvista.com>

  drivers/cpufreq/cpufreq.c |   36 ++++++++++++++++++++++++++++++++++++
  include/linux/cpufreq.h   |    2 ++
  2 files changed, 38 insertions(+)

Index: linux-2.6.17/drivers/cpufreq/cpufreq.c
===================================================================
--- linux-2.6.17.orig/drivers/cpufreq/cpufreq.c
+++ linux-2.6.17/drivers/cpufreq/cpufreq.c
@@ -226,6 +226,35 @@ static void adjust_jiffies(unsigned long
  static inline void adjust_jiffies(unsigned long val, struct 
cpufreq_freqs *ci) { return; }
  #endif

+int cpufreq_prepare_transition(struct powerop *cur, struct powerop 
*new)
+{
+       struct cpufreq_freqs freqs;
+
+       freqs.old = cur->frequency;
+       freqs.new = new->frequency;
+       freqs.cpu = 0;
+       freqs.flags = cpufreq_driver->flags;
+       blocking_notifier_call_chain(&cpufreq_transition_notifier_list,
+                       CPUFREQ_PRECHANGE, &freqs);
+       adjust_jiffies(CPUFREQ_PRECHANGE, &freqs);
+       return 0;
+}
+EXPORT_SYMBOL(cpufreq_prepare_transition);
+
+int cpufreq_finish_transition(struct powerop *cur, struct powerop *new)
+{
+       struct cpufreq_freqs freqs;
+
+       freqs.old = cur->frequency;
+       freqs.new = new->frequency;
+       freqs.cpu = 0;
+       freqs.flags = cpufreq_driver->flags;
+       adjust_jiffies(CPUFREQ_POSTCHANGE, &freqs);
+       blocking_notifier_call_chain(&cpufreq_transition_notifier_list,
+                       CPUFREQ_POSTCHANGE, &freqs);
+       return 0;
+}
+EXPORT_SYMBOL(cpufreq_finish_transition);

  /**
   * cpufreq_notify_transition - call notifier chain and adjust_jiffies
@@ -884,6 +913,12 @@ static void cpufreq_out_of_sync(unsigned
  }


+#ifdef CONFIG_PM
+unsigned int cpufreq_quick_get(unsigned int cpu)
+{
+       return (current_state->frequency * 1000);
+}
+#else
  /**
   * cpufreq_quick_get - get the CPU frequency (in kHz) frpm policy->cur
   * @cpu: CPU number
@@ -905,6 +940,7 @@ unsigned int cpufreq_quick_get(unsigned

         return (ret);
  }
+#endif
  EXPORT_SYMBOL(cpufreq_quick_get);


Index: linux-2.6.17/include/linux/cpufreq.h
===================================================================
--- linux-2.6.17.orig/include/linux/cpufreq.h
+++ linux-2.6.17/include/linux/cpufreq.h
@@ -271,6 +271,8 @@ static inline unsigned int cpufreq_quick
         return 0;
  }
  #endif
+int cpufreq_prepare_transition(struct powerop *cur, struct powerop 
*new);
+int cpufreq_finish_transition(struct powerop *cur, struct powerop 
*new);


  /*********************************************************************

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-08-05  2:31 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-08-05  2:31 Powerop-cpufreq.patch david singleton
  -- strict thread matches above, loose matches on Subject: below --
2006-08-01  0:42 Powerop-cpufreq.patch david singleton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox