From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gregory Fong Subject: Re: [PATCH 5/7] gpio: brcmstb: enable masking of interrupts when changing type Date: Tue, 3 Oct 2017 19:10:59 -0700 Message-ID: References: <20170930034057.15166-1-opendmb@gmail.com> <20170930034057.15166-6-opendmb@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Return-path: In-Reply-To: <20170930034057.15166-6-opendmb@gmail.com> Sender: linux-kernel-owner@vger.kernel.org To: Doug Berger Cc: Linus Walleij , Brian Norris , Florian Fainelli , bcm-kernel-feedback-list , linux-gpio@vger.kernel.org, "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" List-Id: linux-gpio@vger.kernel.org Hi Doug, On Fri, Sep 29, 2017 at 8:40 PM, Doug Berger wrote: > Mask the GPIO interrupt while its type is being changed, just in case > it can prevent a spurious interrupt. "Just in case"? I don't have access to hardware documentation for this anymore, but I'd expect to some stronger claim that the hardware actually requires masking before changing the trigger type. If you can quote documentation for this or explain an actual problem seen, that would be good. > > Signed-off-by: Doug Berger > --- > drivers/gpio/gpio-brcmstb.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpio/gpio-brcmstb.c b/drivers/gpio/gpio-brcmstb.c > index 0418cb266586..e2fff559c1ca 100644 > --- a/drivers/gpio/gpio-brcmstb.c > +++ b/drivers/gpio/gpio-brcmstb.c > @@ -363,7 +363,9 @@ static int brcmstb_gpio_irq_setup(struct platform_device *pdev, > bank->irq_chip.irq_set_type = brcmstb_gpio_irq_set_type; > > /* Ensures that all non-wakeup IRQs are disabled at suspend */ > - bank->irq_chip.flags = IRQCHIP_MASK_ON_SUSPEND; > + /* and that interrupts are masked when changing their type */ This doesn't follow the kernel multi-line comment style, please adjust. > + bank->irq_chip.flags = IRQCHIP_MASK_ON_SUSPEND | > + IRQCHIP_SET_TYPE_MASKED; > > if (IS_ENABLED(CONFIG_PM_SLEEP) && !priv->parent_wake_irq && > of_property_read_bool(np, "wakeup-source")) { > -- > 2.14.1 > Thanks, Gregory From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751531AbdJDCLd (ORCPT ); Tue, 3 Oct 2017 22:11:33 -0400 Received: from mail-wr0-f196.google.com ([209.85.128.196]:35000 "EHLO mail-wr0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751169AbdJDCLb (ORCPT ); Tue, 3 Oct 2017 22:11:31 -0400 X-Google-Smtp-Source: AOwi7QDK30NKkODOfhB5o9LIBWpJMRAOLqi296pbpdLIUd6M/cVvdc7gKG3jMGyoNiDloj4ED8c4IyjZrx6NDlcmrjQ= MIME-Version: 1.0 In-Reply-To: <20170930034057.15166-6-opendmb@gmail.com> References: <20170930034057.15166-1-opendmb@gmail.com> <20170930034057.15166-6-opendmb@gmail.com> From: Gregory Fong Date: Tue, 3 Oct 2017 19:10:59 -0700 Message-ID: Subject: Re: [PATCH 5/7] gpio: brcmstb: enable masking of interrupts when changing type To: Doug Berger Cc: Linus Walleij , Brian Norris , Florian Fainelli , bcm-kernel-feedback-list , linux-gpio@vger.kernel.org, "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Doug, On Fri, Sep 29, 2017 at 8:40 PM, Doug Berger wrote: > Mask the GPIO interrupt while its type is being changed, just in case > it can prevent a spurious interrupt. "Just in case"? I don't have access to hardware documentation for this anymore, but I'd expect to some stronger claim that the hardware actually requires masking before changing the trigger type. If you can quote documentation for this or explain an actual problem seen, that would be good. > > Signed-off-by: Doug Berger > --- > drivers/gpio/gpio-brcmstb.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpio/gpio-brcmstb.c b/drivers/gpio/gpio-brcmstb.c > index 0418cb266586..e2fff559c1ca 100644 > --- a/drivers/gpio/gpio-brcmstb.c > +++ b/drivers/gpio/gpio-brcmstb.c > @@ -363,7 +363,9 @@ static int brcmstb_gpio_irq_setup(struct platform_device *pdev, > bank->irq_chip.irq_set_type = brcmstb_gpio_irq_set_type; > > /* Ensures that all non-wakeup IRQs are disabled at suspend */ > - bank->irq_chip.flags = IRQCHIP_MASK_ON_SUSPEND; > + /* and that interrupts are masked when changing their type */ This doesn't follow the kernel multi-line comment style, please adjust. > + bank->irq_chip.flags = IRQCHIP_MASK_ON_SUSPEND | > + IRQCHIP_SET_TYPE_MASKED; > > if (IS_ENABLED(CONFIG_PM_SLEEP) && !priv->parent_wake_irq && > of_property_read_bool(np, "wakeup-source")) { > -- > 2.14.1 > Thanks, Gregory From mboxrd@z Thu Jan 1 00:00:00 1970 From: gregory.0xf0@gmail.com (Gregory Fong) Date: Tue, 3 Oct 2017 19:10:59 -0700 Subject: [PATCH 5/7] gpio: brcmstb: enable masking of interrupts when changing type In-Reply-To: <20170930034057.15166-6-opendmb@gmail.com> References: <20170930034057.15166-1-opendmb@gmail.com> <20170930034057.15166-6-opendmb@gmail.com> Message-ID: To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi Doug, On Fri, Sep 29, 2017 at 8:40 PM, Doug Berger wrote: > Mask the GPIO interrupt while its type is being changed, just in case > it can prevent a spurious interrupt. "Just in case"? I don't have access to hardware documentation for this anymore, but I'd expect to some stronger claim that the hardware actually requires masking before changing the trigger type. If you can quote documentation for this or explain an actual problem seen, that would be good. > > Signed-off-by: Doug Berger > --- > drivers/gpio/gpio-brcmstb.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpio/gpio-brcmstb.c b/drivers/gpio/gpio-brcmstb.c > index 0418cb266586..e2fff559c1ca 100644 > --- a/drivers/gpio/gpio-brcmstb.c > +++ b/drivers/gpio/gpio-brcmstb.c > @@ -363,7 +363,9 @@ static int brcmstb_gpio_irq_setup(struct platform_device *pdev, > bank->irq_chip.irq_set_type = brcmstb_gpio_irq_set_type; > > /* Ensures that all non-wakeup IRQs are disabled at suspend */ > - bank->irq_chip.flags = IRQCHIP_MASK_ON_SUSPEND; > + /* and that interrupts are masked when changing their type */ This doesn't follow the kernel multi-line comment style, please adjust. > + bank->irq_chip.flags = IRQCHIP_MASK_ON_SUSPEND | > + IRQCHIP_SET_TYPE_MASKED; > > if (IS_ENABLED(CONFIG_PM_SLEEP) && !priv->parent_wake_irq && > of_property_read_bool(np, "wakeup-source")) { > -- > 2.14.1 > Thanks, Gregory