Loading arch/x86/kernel/cpu/cpufreq/powernow-k6.c +26 −18 Original line number Diff line number Diff line /* * This file was based upon code in Powertweak Linux (http://powertweak.sf.net) * (C) 2000-2003 Dave Jones, Arjan van de Ven, Janne Pänkälä, Dominik Brodowski. * (C) 2000-2003 Dave Jones, Arjan van de Ven, Janne Pänkälä, * Dominik Brodowski. * * Licensed under the terms of the GNU GPL License version 2. * Loading @@ -13,14 +14,15 @@ #include <linux/cpufreq.h> #include <linux/ioport.h> #include <linux/slab.h> #include <asm/msr.h> #include <linux/timex.h> #include <linux/io.h> #include <asm/msr.h> #define POWERNOW_IOPORT 0xfff0 /* it doesn't matter where, as long as it is unused */ #define PFX "powernow-k6: " static unsigned int busfreq; /* FSB, in 10 kHz */ static unsigned int max_multiplier; Loading Loading @@ -73,7 +75,7 @@ static void powernow_k6_set_state(unsigned int best_i) struct cpufreq_freqs freqs; if (clock_ratio[best_i].index > max_multiplier) { printk(KERN_ERR "cpufreq: invalid target frequency\n"); printk(KERN_ERR PFX "invalid target frequency\n"); return; } Loading Loading @@ -119,7 +121,8 @@ static int powernow_k6_verify(struct cpufreq_policy *policy) * powernow_k6_setpolicy - sets a new CPUFreq policy * @policy: new policy * @target_freq: the target frequency * @relation: how that frequency relates to achieved frequency (CPUFREQ_RELATION_L or CPUFREQ_RELATION_H) * @relation: how that frequency relates to achieved frequency * (CPUFREQ_RELATION_L or CPUFREQ_RELATION_H) * * sets a new CPUFreq policy */ Loading @@ -129,7 +132,8 @@ static int powernow_k6_target(struct cpufreq_policy *policy, { unsigned int newstate = 0; if (cpufreq_frequency_table_target(policy, &clock_ratio[0], target_freq, relation, &newstate)) if (cpufreq_frequency_table_target(policy, &clock_ratio[0], target_freq, relation, &newstate)) return -EINVAL; powernow_k6_set_state(newstate); Loading @@ -140,7 +144,7 @@ static int powernow_k6_target(struct cpufreq_policy *policy, static int powernow_k6_cpu_init(struct cpufreq_policy *policy) { unsigned int i; unsigned int i, f; int result; if (policy->cpu != 0) Loading @@ -152,10 +156,11 @@ static int powernow_k6_cpu_init(struct cpufreq_policy *policy) /* table init */ for (i = 0; (clock_ratio[i].frequency != CPUFREQ_TABLE_END); i++) { if (clock_ratio[i].index > max_multiplier) f = clock_ratio[i].index; if (f > max_multiplier) clock_ratio[i].frequency = CPUFREQ_ENTRY_INVALID; else clock_ratio[i].frequency = busfreq * clock_ratio[i].index; clock_ratio[i].frequency = busfreq * f; } /* cpuinfo and default policy values */ Loading Loading @@ -185,7 +190,9 @@ static int powernow_k6_cpu_exit(struct cpufreq_policy *policy) static unsigned int powernow_k6_get(unsigned int cpu) { return busfreq * powernow_k6_get_cpu_multiplier(); unsigned int ret; ret = (busfreq * powernow_k6_get_cpu_multiplier()); return ret; } static struct freq_attr *powernow_k6_attr[] = { Loading Loading @@ -221,7 +228,7 @@ static int __init powernow_k6_init(void) return -ENODEV; if (!request_region(POWERNOW_IOPORT, 16, "PowerNow!")) { printk("cpufreq: PowerNow IOPORT region already used.\n"); printk(KERN_INFO PFX "PowerNow IOPORT region already used.\n"); return -EIO; } Loading @@ -246,7 +253,8 @@ static void __exit powernow_k6_exit(void) } MODULE_AUTHOR("Arjan van de Ven, Dave Jones <davej@redhat.com>, Dominik Brodowski <linux@brodo.de>"); MODULE_AUTHOR("Arjan van de Ven, Dave Jones <davej@redhat.com>, " "Dominik Brodowski <linux@brodo.de>"); MODULE_DESCRIPTION("PowerNow! driver for AMD K6-2+ / K6-3+ processors."); MODULE_LICENSE("GPL"); Loading Loading
arch/x86/kernel/cpu/cpufreq/powernow-k6.c +26 −18 Original line number Diff line number Diff line /* * This file was based upon code in Powertweak Linux (http://powertweak.sf.net) * (C) 2000-2003 Dave Jones, Arjan van de Ven, Janne Pänkälä, Dominik Brodowski. * (C) 2000-2003 Dave Jones, Arjan van de Ven, Janne Pänkälä, * Dominik Brodowski. * * Licensed under the terms of the GNU GPL License version 2. * Loading @@ -13,14 +14,15 @@ #include <linux/cpufreq.h> #include <linux/ioport.h> #include <linux/slab.h> #include <asm/msr.h> #include <linux/timex.h> #include <linux/io.h> #include <asm/msr.h> #define POWERNOW_IOPORT 0xfff0 /* it doesn't matter where, as long as it is unused */ #define PFX "powernow-k6: " static unsigned int busfreq; /* FSB, in 10 kHz */ static unsigned int max_multiplier; Loading Loading @@ -73,7 +75,7 @@ static void powernow_k6_set_state(unsigned int best_i) struct cpufreq_freqs freqs; if (clock_ratio[best_i].index > max_multiplier) { printk(KERN_ERR "cpufreq: invalid target frequency\n"); printk(KERN_ERR PFX "invalid target frequency\n"); return; } Loading Loading @@ -119,7 +121,8 @@ static int powernow_k6_verify(struct cpufreq_policy *policy) * powernow_k6_setpolicy - sets a new CPUFreq policy * @policy: new policy * @target_freq: the target frequency * @relation: how that frequency relates to achieved frequency (CPUFREQ_RELATION_L or CPUFREQ_RELATION_H) * @relation: how that frequency relates to achieved frequency * (CPUFREQ_RELATION_L or CPUFREQ_RELATION_H) * * sets a new CPUFreq policy */ Loading @@ -129,7 +132,8 @@ static int powernow_k6_target(struct cpufreq_policy *policy, { unsigned int newstate = 0; if (cpufreq_frequency_table_target(policy, &clock_ratio[0], target_freq, relation, &newstate)) if (cpufreq_frequency_table_target(policy, &clock_ratio[0], target_freq, relation, &newstate)) return -EINVAL; powernow_k6_set_state(newstate); Loading @@ -140,7 +144,7 @@ static int powernow_k6_target(struct cpufreq_policy *policy, static int powernow_k6_cpu_init(struct cpufreq_policy *policy) { unsigned int i; unsigned int i, f; int result; if (policy->cpu != 0) Loading @@ -152,10 +156,11 @@ static int powernow_k6_cpu_init(struct cpufreq_policy *policy) /* table init */ for (i = 0; (clock_ratio[i].frequency != CPUFREQ_TABLE_END); i++) { if (clock_ratio[i].index > max_multiplier) f = clock_ratio[i].index; if (f > max_multiplier) clock_ratio[i].frequency = CPUFREQ_ENTRY_INVALID; else clock_ratio[i].frequency = busfreq * clock_ratio[i].index; clock_ratio[i].frequency = busfreq * f; } /* cpuinfo and default policy values */ Loading Loading @@ -185,7 +190,9 @@ static int powernow_k6_cpu_exit(struct cpufreq_policy *policy) static unsigned int powernow_k6_get(unsigned int cpu) { return busfreq * powernow_k6_get_cpu_multiplier(); unsigned int ret; ret = (busfreq * powernow_k6_get_cpu_multiplier()); return ret; } static struct freq_attr *powernow_k6_attr[] = { Loading Loading @@ -221,7 +228,7 @@ static int __init powernow_k6_init(void) return -ENODEV; if (!request_region(POWERNOW_IOPORT, 16, "PowerNow!")) { printk("cpufreq: PowerNow IOPORT region already used.\n"); printk(KERN_INFO PFX "PowerNow IOPORT region already used.\n"); return -EIO; } Loading @@ -246,7 +253,8 @@ static void __exit powernow_k6_exit(void) } MODULE_AUTHOR("Arjan van de Ven, Dave Jones <davej@redhat.com>, Dominik Brodowski <linux@brodo.de>"); MODULE_AUTHOR("Arjan van de Ven, Dave Jones <davej@redhat.com>, " "Dominik Brodowski <linux@brodo.de>"); MODULE_DESCRIPTION("PowerNow! driver for AMD K6-2+ / K6-3+ processors."); MODULE_LICENSE("GPL"); Loading