|
@@ -1249,6 +1249,24 @@ static struct cpufreq_driver cpufreq_amd64_driver = {
|
|
|
.attr = powernow_k8_attr,
|
|
|
};
|
|
|
|
|
|
+static void __request_acpi_cpufreq(void)
|
|
|
+{
|
|
|
+ const char *cur_drv, *drv = "acpi-cpufreq";
|
|
|
+
|
|
|
+ cur_drv = cpufreq_get_current_driver();
|
|
|
+ if (!cur_drv)
|
|
|
+ goto request;
|
|
|
+
|
|
|
+ if (strncmp(cur_drv, drv, min_t(size_t, strlen(cur_drv), strlen(drv))))
|
|
|
+ pr_warn(PFX "WTF driver: %s\n", cur_drv);
|
|
|
+
|
|
|
+ return;
|
|
|
+
|
|
|
+ request:
|
|
|
+ pr_warn(PFX "This CPU is not supported anymore, using acpi-cpufreq instead.\n");
|
|
|
+ request_module(drv);
|
|
|
+}
|
|
|
+
|
|
|
/* driver entry point for init */
|
|
|
static int __cpuinit powernowk8_init(void)
|
|
|
{
|
|
@@ -1256,8 +1274,7 @@ static int __cpuinit powernowk8_init(void)
|
|
|
int rv;
|
|
|
|
|
|
if (static_cpu_has(X86_FEATURE_HW_PSTATE)) {
|
|
|
- pr_warn(PFX "this CPU is not supported anymore, using acpi-cpufreq instead.\n");
|
|
|
- request_module("acpi-cpufreq");
|
|
|
+ __request_acpi_cpufreq();
|
|
|
return -ENODEV;
|
|
|
}
|
|
|
|