From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750990AbcGNHTf (ORCPT ); Thu, 14 Jul 2016 03:19:35 -0400 Received: from mailout4.w1.samsung.com ([210.118.77.14]:35730 "EHLO mailout4.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750739AbcGNHTd (ORCPT ); Thu, 14 Jul 2016 03:19:33 -0400 X-AuditID: cbfec7f5-f792a6d000001302-96-57873d0159b2 Message-id: <57873CFF.1010803@samsung.com> Date: Thu, 14 Jul 2016 09:19:27 +0200 From: Jacek Anaszewski User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130804 Thunderbird/17.0.8 MIME-version: 1.0 To: Anna-Maria Gleixner Cc: LKML , Peter Zijlstra , Ingo Molnar , Thomas Gleixner , rt@linutronix.de, Richard Cochran , Sebastian Andrzej Siewior , Linus Torvalds , Linus Walleij , Paul Gortmaker , Richard Purdie , linux-leds@vger.kernel.org Subject: Re: [patch V2 43/67] leds/trigger/cpu: Convert to hotplug state machine References: <20160713153219.128052238@linutronix.de> <20160713153336.465496902@linutronix.de> In-reply-to: <20160713153336.465496902@linutronix.de> Content-type: text/plain; charset=ISO-8859-15; format=flowed Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpjkeLIzCtJLcpLzFFi42I5/e/4NV1G2/Zwg8Z5IhbvLixns5h2cRKz xZQ/y5ksLu+aw2ax9c06RovV/04xWlzbe5zZ4njvASaL3q6dTBa7dz1ltbh65yCjxeZNU5kt HvW9ZXfg9di8Qstj06pONo871/awebw7d47d48SM3ywee+b/YPX4vEnOY/2WrUwBHFFcNimp OZllqUX6dglcGScfrWQuOKNQcWbTZsYGxg2SXYycHBICJhIPnm9hgrDFJC7cW8/WxcjFISSw lFFi86wHYAkhgWeMEt++O4HYvAJaEmdbJ7OA2CwCqhJPui8xg9hsAoYSP1+8BqsXFYiQ+HN6 HytEvaDEj8n3wOpFBIwkjl9dywKygFngFrPE5hsL2EASwgIBEtNufWCBWBYvsWjfOUYQm1PA VOLJ9atAcQ6gBhuJg/PTQMLMAvISm9e8ZZ7AKDALyYpZCFWzkFQtYGRexSiaWppcUJyUnmuk V5yYW1yal66XnJ+7iRESO193MC49ZnWIUYCDUYmH90FeW7gQa2JZcWXuIUYJDmYlEV4rq/Zw Id6UxMqq1KL8+KLSnNTiQ4zSHCxK4rwzd70PERJITyxJzU5NLUgtgskycXBKNTC6nMlbYOiz 5/WSVw6+nGt7Hn+4uac0vuDUs7dbKg9odve+tdlQ4+jVb37TPtBsgshDFvuiCpE5ZVYMfl/E klM+XY/L2c1+9F/MJ9+Sw/vENokFH2fOUlU6x7O4rrmuTMH37wQL+8fJ2RNYryUBo65KeJv9 NvEUD591t8JXF7N9MRdNEAz4r8RSnJFoqMVcVJwIANwbcIyZAgAA Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Anna, On 07/13/2016 07:16 PM, Anna-Maria Gleixner wrote: > -------- Original Message -------- > Subject: [patch V2 43/67] leds/trigger/cpu: Convert to hotplug state machine > Date: Wed, 13 Jul 2016 17:16:45 +0000 > From: Anna-Maria Gleixner > To: LKML > CC: Peter Zijlstra , Ingo Molnar , Thomas Gleixner , rt@linutronix.de, Richard Cochran , Sebastian Andrzej Siewior , Jacek Anaszewski , Linus Torvalds , Linus Walleij , Paul Gortmaker , Richard Purdie , linux-leds@vger.kernel.org, Anna-Maria Gleixner > > From: Richard Cochran > > This is a straightforward conversion. We place this callback last > in the list so that the LED illuminates only after a successful > bring up sequence. > > Signed-off-by: Richard Cochran > Reviewed-by: Sebastian Andrzej Siewior > Cc: Jacek Anaszewski > Cc: Linus Torvalds > Cc: Linus Walleij > Cc: Paul Gortmaker > Cc: Peter Zijlstra > Cc: Richard Purdie > Cc: Thomas Gleixner > Cc: linux-leds@vger.kernel.org > Signed-off-by: Anna-Maria Gleixner > --- > drivers/leds/trigger/ledtrig-cpu.c | 32 +++++++++++++++----------------- > include/linux/cpuhotplug.h | 1 + > 2 files changed, 16 insertions(+), 17 deletions(-) > > diff --git a/drivers/leds/trigger/ledtrig-cpu.c b/drivers/leds/trigger/ledtrig-cpu.c > index 938467f..4a6a182 100644 > --- a/drivers/leds/trigger/ledtrig-cpu.c > +++ b/drivers/leds/trigger/ledtrig-cpu.c > @@ -92,25 +92,17 @@ static struct syscore_ops ledtrig_cpu_syscore_ops = { > .resume = ledtrig_cpu_syscore_resume, > }; > > -static int ledtrig_cpu_notify(struct notifier_block *self, > - unsigned long action, void *hcpu) > +static int ledtrig_starting_cpu(unsigned int cpu) > { > - switch (action & ~CPU_TASKS_FROZEN) { > - case CPU_STARTING: > - ledtrig_cpu(CPU_LED_START); > - break; > - break; > - } > - > - return NOTIFY_OK; > + ledtrig_cpu(CPU_LED_START); > + return 0; > } > > - > -static struct notifier_block ledtrig_cpu_nb = { > - .notifier_call = ledtrig_cpu_notify, > -}; > +static int ledtrig_dying_cpu(unsigned int cpu) > +{ > + ledtrig_cpu(CPU_LED_STOP); > + return 0; > +} > > static int __init ledtrig_cpu_init(void) > { > @@ -133,7 +125,13 @@ static int __init ledtrig_cpu_init(void) > } > > register_syscore_ops(&ledtrig_cpu_syscore_ops); > - register_cpu_notifier(&ledtrig_cpu_nb); > + > + /* > + * FIXME: Why needs this to happen in the interrupt disabled > + * low level bringup phase of a cpu? > + */ Why wasn't it possible to clarify the issue before the submission? > + cpuhp_setup_state(CPUHP_AP_LEDTRIG_STARTING, "AP_LEDTRIG_STARTING", > + ledtrig_starting_cpu, ledtrig_dying_cpu); > > pr_info("ledtrig-cpu: registered to indicate activity on CPUs\n"); > > diff --git a/include/linux/cpuhotplug.h b/include/linux/cpuhotplug.h > index c052b04..ef7bfa6 100644 > --- a/include/linux/cpuhotplug.h > +++ b/include/linux/cpuhotplug.h > @@ -43,6 +43,7 @@ enum cpuhp_state { > CPUHP_AP_QCOM_TIMER_STARTING, > CPUHP_AP_MIPS_GIC_TIMER_STARTING, > CPUHP_AP_KVM_STARTING, > + CPUHP_AP_LEDTRIG_STARTING, > CPUHP_AP_NOTIFY_STARTING, > CPUHP_AP_ONLINE, > CPUHP_TEARDOWN_CPU, > -- -- Best regards, Jacek Anaszewski