Sekhar Nori <[email protected]> writes: > This patch adds a new function to the davinci_soc_info > structure which controls voltage level (typically CVDD). > > The new set_new_voltage call will be implemented by platform > code supporting voltage change. > > Signed-off-by: Sekhar Nori <[email protected]> > --- > arch/arm/mach-davinci/cpufreq.c | 8 ++++++++ > arch/arm/mach-davinci/include/mach/common.h | 1 + > 2 files changed, 9 insertions(+), 0 deletions(-) > > diff --git a/arch/arm/mach-davinci/cpufreq.c b/arch/arm/mach-davinci/cpufreq.c > index af60d3d..8cb0c85 100644 > --- a/arch/arm/mach-davinci/cpufreq.c > +++ b/arch/arm/mach-davinci/cpufreq.c > @@ -102,8 +102,16 @@ static int davinci_target(struct cpufreq_policy *policy, > > cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); > > + /* if moving to higher frequency, up the voltage beforehand */ > + if (davinci_soc_info.set_new_voltage && freqs.new > freqs.old) > + davinci_soc_info.set_new_voltage(idx); > + > ret = clk_set_rate(armclk, idx); > > + /* if moving to lower freq, lower the voltage after lowering freq */ > + if (davinci_soc_info.set_new_voltage && freqs.new < freqs.old) > + davinci_soc_info.set_new_voltage(idx); > + > cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); > > return ret; > diff --git a/arch/arm/mach-davinci/include/mach/common.h > b/arch/arm/mach-davinci/include/mach/common.h > index 1487a57..49d08aa 100644 > --- a/arch/arm/mach-davinci/include/mach/common.h > +++ b/arch/arm/mach-davinci/include/mach/common.h > @@ -71,6 +71,7 @@ struct davinci_soc_info { > dma_addr_t sram_dma; > unsigned sram_len; > void (*init_cpufreq_table) (struct cpufreq_frequency_table **); > + int (*set_new_voltage) (unsigned int index); > };
I'm not crazy about the soc_info extention with functional interface. There should a new API for this. Kevin _______________________________________________ Davinci-linux-open-source mailing list [email protected] http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
