From: Gregory CLEMENT <gregory.clement@free-electrons.com>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org,
Jason Cooper <jason@lakedaemon.net>, Andrew Lunn <andrew@lunn.ch>,
Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>,
Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
linux-arm-kernel@lists.infradead.org,
Nadav Haklai <nadavh@marvell.com>,
Shadi Ammouri <shadi@marvell.com>,
Yehuda Yitschak <yehuday@marvell.com>,
Omri Itach <omrii@marvell.com>, Hanna Hawa <hannah@marvell.com>,
Igal Liberman <igall@marvell.com>,
Marcin Wojtas <mw@semihalf.com>
Subject: Re: [PATCH] gpio: mvebu: Fix cause computation in irq handler
Date: Mon, 24 Jul 2017 17:49:32 +0200 [thread overview]
Message-ID: <874lu14yyb.fsf@free-electrons.com> (raw)
In-Reply-To: <20170712112229.858-1-gregory.clement@free-electrons.com> (Gregory CLEMENT's message of "Wed, 12 Jul 2017 13:22:29 +0200")
Hi Linus,
On mer., juil. 12 2017, Gregory CLEMENT <gregory.clement@free-electrons.com> wrote:
> When switching to regmap, the way to compute the irq cause was
> reorganized. However while doing it, a typo was introduced: a 'xor'
> replaced a 'and'.
>
> This lead to wrong behavior in the interrupt handler ans one of the
> symptom was wrong irq handler called on the Armada 388 GP:
> "->handle_irq(): c016303c,
> handle_bad_irq+0x0/0x278
> ->irq_data.chip(): c0b0ec0c,
> 0xc0b0ec0c
> ->action(): (null)
> IRQ_NOPROBE set
> IRQ_NOREQUEST set
> unexpected IRQ trap at vector 00
> irq 0, desc: ee804800, depth: 1, count: 0, unhandled: 0"
>
> Fixes: 2233bf7a92e7 ("gpio: mvebu: switch to regmap for register access")
> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Would it be possible to push this fix on the current kernel (v4.13-rc) ?
Indeed currently due to this bug, the Armada 388 GP board does not boot
anymore because this board uses a gpio interrupt. So it prevents to have
continuous integration on this one with kci for instance.
Thanks,
Gregory
> ---
> drivers/gpio/gpio-mvebu.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c
> index e338c3743562..45c65f805fd6 100644
> --- a/drivers/gpio/gpio-mvebu.c
> +++ b/drivers/gpio/gpio-mvebu.c
> @@ -557,7 +557,7 @@ static void mvebu_gpio_irq_handler(struct irq_desc *desc)
> edge_cause = mvebu_gpio_read_edge_cause(mvchip);
> edge_mask = mvebu_gpio_read_edge_mask(mvchip);
>
> - cause = (data_in ^ level_mask) | (edge_cause & edge_mask);
> + cause = (data_in & level_mask) | (edge_cause & edge_mask);
>
> for (i = 0; i < mvchip->chip.ngpio; i++) {
> int irq;
> --
> 2.13.2
>
--
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
WARNING: multiple messages have this Message-ID (diff)
From: gregory.clement@free-electrons.com (Gregory CLEMENT)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] gpio: mvebu: Fix cause computation in irq handler
Date: Mon, 24 Jul 2017 17:49:32 +0200 [thread overview]
Message-ID: <874lu14yyb.fsf@free-electrons.com> (raw)
In-Reply-To: <20170712112229.858-1-gregory.clement@free-electrons.com> (Gregory CLEMENT's message of "Wed, 12 Jul 2017 13:22:29 +0200")
Hi Linus,
On mer., juil. 12 2017, Gregory CLEMENT <gregory.clement@free-electrons.com> wrote:
> When switching to regmap, the way to compute the irq cause was
> reorganized. However while doing it, a typo was introduced: a 'xor'
> replaced a 'and'.
>
> This lead to wrong behavior in the interrupt handler ans one of the
> symptom was wrong irq handler called on the Armada 388 GP:
> "->handle_irq(): c016303c,
> handle_bad_irq+0x0/0x278
> ->irq_data.chip(): c0b0ec0c,
> 0xc0b0ec0c
> ->action(): (null)
> IRQ_NOPROBE set
> IRQ_NOREQUEST set
> unexpected IRQ trap at vector 00
> irq 0, desc: ee804800, depth: 1, count: 0, unhandled: 0"
>
> Fixes: 2233bf7a92e7 ("gpio: mvebu: switch to regmap for register access")
> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Would it be possible to push this fix on the current kernel (v4.13-rc) ?
Indeed currently due to this bug, the Armada 388 GP board does not boot
anymore because this board uses a gpio interrupt. So it prevents to have
continuous integration on this one with kci for instance.
Thanks,
Gregory
> ---
> drivers/gpio/gpio-mvebu.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c
> index e338c3743562..45c65f805fd6 100644
> --- a/drivers/gpio/gpio-mvebu.c
> +++ b/drivers/gpio/gpio-mvebu.c
> @@ -557,7 +557,7 @@ static void mvebu_gpio_irq_handler(struct irq_desc *desc)
> edge_cause = mvebu_gpio_read_edge_cause(mvchip);
> edge_mask = mvebu_gpio_read_edge_mask(mvchip);
>
> - cause = (data_in ^ level_mask) | (edge_cause & edge_mask);
> + cause = (data_in & level_mask) | (edge_cause & edge_mask);
>
> for (i = 0; i < mvchip->chip.ngpio; i++) {
> int irq;
> --
> 2.13.2
>
--
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
next prev parent reply other threads:[~2017-07-24 15:49 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-12 11:22 [PATCH] gpio: mvebu: Fix cause computation in irq handler Gregory CLEMENT
2017-07-12 11:22 ` Gregory CLEMENT
2017-07-24 15:49 ` Gregory CLEMENT [this message]
2017-07-24 15:49 ` Gregory CLEMENT
2017-08-02 12:09 ` Gregory CLEMENT
2017-08-02 12:09 ` Gregory CLEMENT
2017-08-07 12:15 ` Linus Walleij
2017-08-07 12:15 ` Linus Walleij
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=874lu14yyb.fsf@free-electrons.com \
--to=gregory.clement@free-electrons.com \
--cc=andrew@lunn.ch \
--cc=hannah@marvell.com \
--cc=igall@marvell.com \
--cc=jason@lakedaemon.net \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mw@semihalf.com \
--cc=nadavh@marvell.com \
--cc=omrii@marvell.com \
--cc=sebastian.hesselbarth@gmail.com \
--cc=shadi@marvell.com \
--cc=thomas.petazzoni@free-electrons.com \
--cc=yehuday@marvell.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.