-obj-y += acpi.o
+obj-$(CONFIG_INTEL) += acpi.o
obj-y += cpufreq.o
-obj-y += hwp.o
-obj-y += powernow.o
+obj-$(CONFIG_INTEL) += hwp.o
+obj-$(CONFIG_AMD) += powernow.o
switch ( cpufreq_xen_opts[i] )
{
case CPUFREQ_xen:
- ret = acpi_cpufreq_register();
+ ret = IS_ENABLED(CONFIG_INTEL) ?
+ acpi_cpufreq_register() : -ENODEV;
break;
case CPUFREQ_hwp:
- ret = hwp_register_driver();
+ ret = IS_ENABLED(CONFIG_INTEL) ?
+ hwp_register_driver() : -ENODEV;
break;
case CPUFREQ_none:
ret = 0;
case X86_VENDOR_AMD:
case X86_VENDOR_HYGON:
- ret = powernow_register_driver();
+ ret = IS_ENABLED(CONFIG_AMD) ? powernow_register_driver() : -ENODEV;
break;
}
}
else
strlcpy(op->u.get_para.scaling_driver, "Unknown", CPUFREQ_NAME_LEN);
- if ( !strncmp(op->u.get_para.scaling_driver, XEN_HWP_DRIVER_NAME,
- CPUFREQ_NAME_LEN) )
+ if ( IS_ENABLED(CONFIG_INTEL) &&
+ !strncmp(op->u.get_para.scaling_driver, XEN_HWP_DRIVER_NAME,
+ CPUFREQ_NAME_LEN) )
ret = get_hwp_para(policy->cpu, &op->u.get_para.u.cppc_para);
else
{
if ( arg[0] && arg[1] )
ret = cpufreq_cmdline_parse(arg + 1, end);
}
- else if ( choice < 0 && !cmdline_strcmp(str, "hwp") )
+ else if ( IS_ENABLED(CONFIG_INTEL) && choice < 0 &&
+ !cmdline_strcmp(str, "hwp") )
{
xen_processor_pmbits |= XEN_PROCESSOR_PM_PX;
cpufreq_controller = FREQCTL_xen;
int hwp_cmdline_parse(const char *s, const char *e);
int hwp_register_driver(void);
+#ifdef CONFIG_INTEL
bool hwp_active(void);
+#else
+static inline bool hwp_active(void) { return false; }
+#endif
+
int get_hwp_para(unsigned int cpu,
struct xen_cppc_para *cppc_para);
int set_hwp_para(struct cpufreq_policy *policy,