|
@@ -67,33 +67,6 @@ static ssize_t show_smt_snooze_delay(struct sys_device *dev,
|
|
static SYSDEV_ATTR(smt_snooze_delay, 0644, show_smt_snooze_delay,
|
|
static SYSDEV_ATTR(smt_snooze_delay, 0644, show_smt_snooze_delay,
|
|
store_smt_snooze_delay);
|
|
store_smt_snooze_delay);
|
|
|
|
|
|
-/* Only parse OF options if the matching cmdline option was not specified */
|
|
|
|
-static int smt_snooze_cmdline;
|
|
|
|
-
|
|
|
|
-static int __init smt_setup(void)
|
|
|
|
-{
|
|
|
|
- struct device_node *options;
|
|
|
|
- const unsigned int *val;
|
|
|
|
- unsigned int cpu;
|
|
|
|
-
|
|
|
|
- if (!cpu_has_feature(CPU_FTR_SMT))
|
|
|
|
- return -ENODEV;
|
|
|
|
-
|
|
|
|
- options = of_find_node_by_path("/options");
|
|
|
|
- if (!options)
|
|
|
|
- return -ENODEV;
|
|
|
|
-
|
|
|
|
- val = of_get_property(options, "ibm,smt-snooze-delay", NULL);
|
|
|
|
- if (!smt_snooze_cmdline && val) {
|
|
|
|
- for_each_possible_cpu(cpu)
|
|
|
|
- per_cpu(smt_snooze_delay, cpu) = *val;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- of_node_put(options);
|
|
|
|
- return 0;
|
|
|
|
-}
|
|
|
|
-__initcall(smt_setup);
|
|
|
|
-
|
|
|
|
static int __init setup_smt_snooze_delay(char *str)
|
|
static int __init setup_smt_snooze_delay(char *str)
|
|
{
|
|
{
|
|
unsigned int cpu;
|
|
unsigned int cpu;
|
|
@@ -102,8 +75,6 @@ static int __init setup_smt_snooze_delay(char *str)
|
|
if (!cpu_has_feature(CPU_FTR_SMT))
|
|
if (!cpu_has_feature(CPU_FTR_SMT))
|
|
return 1;
|
|
return 1;
|
|
|
|
|
|
- smt_snooze_cmdline = 1;
|
|
|
|
-
|
|
|
|
if (get_option(&str, &snooze)) {
|
|
if (get_option(&str, &snooze)) {
|
|
for_each_possible_cpu(cpu)
|
|
for_each_possible_cpu(cpu)
|
|
per_cpu(smt_snooze_delay, cpu) = snooze;
|
|
per_cpu(smt_snooze_delay, cpu) = snooze;
|