[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20110708153349.GA9070@ponder.secretlab.ca>
Date: Fri, 8 Jul 2011 09:33:49 -0600
From: Grant Likely <grant.likely@...retlab.ca>
To: Alan Cox <alan@...rguk.ukuu.org.uk>
Cc: torvalds@...ux-foundation.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] gpio: langwell_gpio: ack the correct bit for langwell
gpio interrupts
On Fri, Jul 08, 2011 at 10:02:18AM +0100, Alan Cox wrote:
> From: Mathias Nyman <mathias.nyman@...ux.intel.com>
>
> The wrong bit was masked when acking langwell gpio interrupts.
>
> Reason for maskig the wrong bit was probably because__ffs() and ffs() functions
> return bit indexes differently (0..31 vs 1..32)
>
> This fixes langwell based devices from hanging when a gpio interrupt is
> triggered and undoes the breakage which occurred in change set
> 732063b92bb727b27e61580ce278dddefe31c6ad
>
> Signed-off-by: Mathias Nyman <mathias.nyman@...ux.intel.com>
> Signed-off-by: Alan Cox <alan@...ux.intel.com>
Merged, thanks.
g.
> ---
>
> drivers/gpio/langwell_gpio.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
>
> diff --git a/drivers/gpio/langwell_gpio.c b/drivers/gpio/langwell_gpio.c
> index bd6571e..644ba12 100644
> --- a/drivers/gpio/langwell_gpio.c
> +++ b/drivers/gpio/langwell_gpio.c
> @@ -223,7 +223,7 @@ static void lnw_irq_handler(unsigned irq, struct irq_desc *desc)
> gedr = gpio_reg(&lnw->chip, base, GEDR);
> pending = readl(gedr);
> while (pending) {
> - gpio = __ffs(pending) - 1;
> + gpio = __ffs(pending);
> mask = BIT(gpio);
> pending &= ~mask;
> /* Clear before handling so we can't lose an edge */
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists