git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
[pandora-kernel.git]
/
arch
/
sparc64
/
kernel
/
us2e_cpufreq.c
diff --git
a/arch/sparc64/kernel/us2e_cpufreq.c
b/arch/sparc64/kernel/us2e_cpufreq.c
index
686e526
..
1f83fe6
100644
(file)
--- a/
arch/sparc64/kernel/us2e_cpufreq.c
+++ b/
arch/sparc64/kernel/us2e_cpufreq.c
@@
-346,6
+346,9
@@
static int __init us2e_freq_init(void)
unsigned long manuf, impl, ver;
int ret;
unsigned long manuf, impl, ver;
int ret;
+ if (tlb_type != spitfire)
+ return -ENODEV;
+
__asm__("rdpr %%ver, %0" : "=r" (ver));
manuf = ((ver >> 48) & 0xffff);
impl = ((ver >> 32) & 0xffff);
__asm__("rdpr %%ver, %0" : "=r" (ver));
manuf = ((ver >> 48) & 0xffff);
impl = ((ver >> 32) & 0xffff);
@@
-354,20
+357,16
@@
static int __init us2e_freq_init(void)
struct cpufreq_driver *driver;
ret = -ENOMEM;
struct cpufreq_driver *driver;
ret = -ENOMEM;
- driver = k
m
alloc(sizeof(struct cpufreq_driver), GFP_KERNEL);
+ driver = k
z
alloc(sizeof(struct cpufreq_driver), GFP_KERNEL);
if (!driver)
goto err_out;
if (!driver)
goto err_out;
- memset(driver, 0, sizeof(*driver));
- us2e_freq_table = k
m
alloc(
+ us2e_freq_table = k
z
alloc(
(NR_CPUS * sizeof(struct us2e_freq_percpu_info)),
GFP_KERNEL);
if (!us2e_freq_table)
goto err_out;
(NR_CPUS * sizeof(struct us2e_freq_percpu_info)),
GFP_KERNEL);
if (!us2e_freq_table)
goto err_out;
- memset(us2e_freq_table, 0,
- (NR_CPUS * sizeof(struct us2e_freq_percpu_info)));
-
driver->init = us2e_freq_cpu_init;
driver->verify = us2e_freq_verify;
driver->target = us2e_freq_target;
driver->init = us2e_freq_cpu_init;
driver->verify = us2e_freq_verify;
driver->target = us2e_freq_target;
@@
-388,10
+387,8
@@
err_out:
kfree(driver);
cpufreq_us2e_driver = NULL;
}
kfree(driver);
cpufreq_us2e_driver = NULL;
}
- if (us2e_freq_table) {
- kfree(us2e_freq_table);
- us2e_freq_table = NULL;
- }
+ kfree(us2e_freq_table);
+ us2e_freq_table = NULL;
return ret;
}
return ret;
}
@@
-402,7
+399,6
@@
static void __exit us2e_freq_exit(void)
{
if (cpufreq_us2e_driver) {
cpufreq_unregister_driver(cpufreq_us2e_driver);
{
if (cpufreq_us2e_driver) {
cpufreq_unregister_driver(cpufreq_us2e_driver);
-
kfree(cpufreq_us2e_driver);
cpufreq_us2e_driver = NULL;
kfree(us2e_freq_table);
kfree(cpufreq_us2e_driver);
cpufreq_us2e_driver = NULL;
kfree(us2e_freq_table);