]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/sparc64/kernel/us2e_cpufreq.c
kernel/cpu.c: create a CPU_STARTING cpu_chain notifier
[linux-2.6-omap-h63xx.git] / arch / sparc64 / kernel / us2e_cpufreq.c
index 686e526bec04c91ffe1e7c145537b1a74680fb20..791c15138f3a4abf3cb368e12041fcd7f304842c 100644 (file)
@@ -326,7 +326,6 @@ static int __init us2e_freq_cpu_init(struct cpufreq_policy *policy)
        table[2].index = 5;
        table[3].frequency = CPUFREQ_TABLE_END;
 
-       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
        policy->cpuinfo.transition_latency = 0;
        policy->cur = clock_tick;
 
@@ -346,6 +345,9 @@ static int __init us2e_freq_init(void)
        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);
@@ -354,20 +356,16 @@ static int __init us2e_freq_init(void)
                struct cpufreq_driver *driver;
 
                ret = -ENOMEM;
-               driver = kmalloc(sizeof(struct cpufreq_driver), GFP_KERNEL);
+               driver = kzalloc(sizeof(struct cpufreq_driver), GFP_KERNEL);
                if (!driver)
                        goto err_out;
-               memset(driver, 0, sizeof(*driver));
 
-               us2e_freq_table = kmalloc(
+               us2e_freq_table = kzalloc(
                        (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;
@@ -388,10 +386,8 @@ err_out:
                        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;
        }
 
@@ -402,7 +398,6 @@ static void __exit us2e_freq_exit(void)
 {
        if (cpufreq_us2e_driver) {
                cpufreq_unregister_driver(cpufreq_us2e_driver);
-
                kfree(cpufreq_us2e_driver);
                cpufreq_us2e_driver = NULL;
                kfree(us2e_freq_table);