diff options
Diffstat (limited to 'drivers/leds')
-rw-r--r-- | drivers/leds/trigger/ledtrig-cpu.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/leds/trigger/ledtrig-cpu.c b/drivers/leds/trigger/ledtrig-cpu.c index 4a6a182d0a88..22f0634dd3fa 100644 --- a/drivers/leds/trigger/ledtrig-cpu.c +++ b/drivers/leds/trigger/ledtrig-cpu.c @@ -92,13 +92,13 @@ static struct syscore_ops ledtrig_cpu_syscore_ops = { .resume = ledtrig_cpu_syscore_resume, }; -static int ledtrig_starting_cpu(unsigned int cpu) +static int ledtrig_online_cpu(unsigned int cpu) { ledtrig_cpu(CPU_LED_START); return 0; } -static int ledtrig_dying_cpu(unsigned int cpu) +static int ledtrig_prepare_down_cpu(unsigned int cpu) { ledtrig_cpu(CPU_LED_STOP); return 0; @@ -107,6 +107,7 @@ static int ledtrig_dying_cpu(unsigned int cpu) static int __init ledtrig_cpu_init(void) { int cpu; + int ret; /* Supports up to 9999 cpu cores */ BUILD_BUG_ON(CONFIG_NR_CPUS > 9999); @@ -126,12 +127,11 @@ static int __init ledtrig_cpu_init(void) register_syscore_ops(&ledtrig_cpu_syscore_ops); - /* - * FIXME: Why needs this to happen in the interrupt disabled - * low level bringup phase of a cpu? - */ - cpuhp_setup_state(CPUHP_AP_LEDTRIG_STARTING, "AP_LEDTRIG_STARTING", - ledtrig_starting_cpu, ledtrig_dying_cpu); + ret = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "AP_LEDTRIG_STARTING", + ledtrig_online_cpu, ledtrig_prepare_down_cpu); + if (ret < 0) + pr_err("CPU hotplug notifier for ledtrig-cpu could not be registered: %d\n", + ret); pr_info("ledtrig-cpu: registered to indicate activity on CPUs\n"); |