mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 21:21:41 +00:00
cpufreq: acpi-cpufreq: Fix up the handling of cpb sysfs attribute
The cpb sysfs attribute is only exposed by the ACPI cpufreq driver after a runtime check. For this purpose, the driver keeps a NULL placeholder in its table of sysfs attributes and replaces the NULL with a pointer to an attribute structure if it decides to expose cpb. That is confusing, so make the driver set the pointer to the cpb attribute structure upfront and replace it with NULL if the attribute should not be exposed instead. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
This commit is contained in:
parent
3427616b2a
commit
f56c50e322
@ -888,7 +888,9 @@ static int acpi_cpufreq_resume(struct cpufreq_policy *policy)
|
||||
static struct freq_attr *acpi_cpufreq_attr[] = {
|
||||
&cpufreq_freq_attr_scaling_available_freqs,
|
||||
&freqdomain_cpus,
|
||||
NULL, /* this is a placeholder for cpb, do not remove */
|
||||
#ifdef CONFIG_X86_ACPI_CPUFREQ_CPB
|
||||
&cpb,
|
||||
#endif
|
||||
NULL,
|
||||
};
|
||||
|
||||
@ -961,17 +963,16 @@ static int __init acpi_cpufreq_init(void)
|
||||
* only if configured. This is considered legacy code, which
|
||||
* will probably be removed at some point in the future.
|
||||
*/
|
||||
if (check_amd_hwpstate_cpu(0)) {
|
||||
struct freq_attr **iter;
|
||||
if (!check_amd_hwpstate_cpu(0)) {
|
||||
struct freq_attr **attr;
|
||||
|
||||
pr_debug("adding sysfs entry for cpb\n");
|
||||
pr_debug("CPB unsupported, do not expose it\n");
|
||||
|
||||
for (iter = acpi_cpufreq_attr; *iter != NULL; iter++)
|
||||
;
|
||||
|
||||
/* make sure there is a terminator behind it */
|
||||
if (iter[1] == NULL)
|
||||
*iter = &cpb;
|
||||
for (attr = acpi_cpufreq_attr; *attr; attr++)
|
||||
if (*attr == &cpb) {
|
||||
*attr = NULL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
acpi_cpufreq_boost_init();
|
||||
|
Loading…
Reference in New Issue
Block a user