powercap: intel_rapl: Allow probing without CPUID match
Currently, CPU model checks is used to 1. get proper rapl_defaults callbacks for RAPL MSR/MMIO Interface. 2. create a platform device node for the intel_rapl_msr driver to probe. Both of these are only mandatory for the RAPL MSR/MMIO Interface. Make the CPUID match optional. Signed-off-by: Zhang Rui <rui.zhang@intel.com> Tested-by: Wang Wendy <wendy.wang@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
31cb1304ad
commit
1488ac990a
@ -1528,32 +1528,25 @@ static int __init rapl_init(void)
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
id = x86_match_cpu(rapl_ids);
|
id = x86_match_cpu(rapl_ids);
|
||||||
if (!id) {
|
if (id) {
|
||||||
pr_err("driver does not support CPU family %d model %d\n",
|
rapl_defaults = (struct rapl_defaults *)id->driver_data;
|
||||||
boot_cpu_data.x86, boot_cpu_data.x86_model);
|
|
||||||
|
|
||||||
return -ENODEV;
|
rapl_msr_platdev = platform_device_alloc("intel_rapl_msr", 0);
|
||||||
|
if (!rapl_msr_platdev)
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
|
ret = platform_device_add(rapl_msr_platdev);
|
||||||
|
if (ret) {
|
||||||
|
platform_device_put(rapl_msr_platdev);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rapl_defaults = (struct rapl_defaults *)id->driver_data;
|
|
||||||
|
|
||||||
ret = register_pm_notifier(&rapl_pm_notifier);
|
ret = register_pm_notifier(&rapl_pm_notifier);
|
||||||
if (ret)
|
if (ret && rapl_msr_platdev) {
|
||||||
return ret;
|
platform_device_del(rapl_msr_platdev);
|
||||||
|
|
||||||
rapl_msr_platdev = platform_device_alloc("intel_rapl_msr", 0);
|
|
||||||
if (!rapl_msr_platdev) {
|
|
||||||
ret = -ENOMEM;
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = platform_device_add(rapl_msr_platdev);
|
|
||||||
if (ret)
|
|
||||||
platform_device_put(rapl_msr_platdev);
|
platform_device_put(rapl_msr_platdev);
|
||||||
|
}
|
||||||
end:
|
|
||||||
if (ret)
|
|
||||||
unregister_pm_notifier(&rapl_pm_notifier);
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user