powernow-k8: Cleanup module request

Check whether we've actually already loaded acpi-cpufreq before
requesting it.

Signed-off-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
Borislav Petkov 2013-01-20 10:24:29 +00:00 коммит произвёл Rafael J. Wysocki
Родитель 9d95046e5d
Коммит 4827ea6ec9
1 изменённых файлов: 19 добавлений и 2 удалений

Просмотреть файл

@ -1249,6 +1249,24 @@ static struct cpufreq_driver cpufreq_amd64_driver = {
.attr = powernow_k8_attr, .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 */ /* driver entry point for init */
static int __cpuinit powernowk8_init(void) static int __cpuinit powernowk8_init(void)
{ {
@ -1256,8 +1274,7 @@ static int __cpuinit powernowk8_init(void)
int rv; int rv;
if (static_cpu_has(X86_FEATURE_HW_PSTATE)) { if (static_cpu_has(X86_FEATURE_HW_PSTATE)) {
pr_warn(PFX "this CPU is not supported anymore, using acpi-cpufreq instead.\n"); __request_acpi_cpufreq();
request_module("acpi-cpufreq");
return -ENODEV; return -ENODEV;
} }