Message ID | 1383893156-28010-2-git-send-email-prabhakar.csengg@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Friday 08 November 2013 12:15 PM, Prabhakar Lad wrote: > From: "Lad, Prabhakar" <prabhakar.csengg@gmail.com> > > This patch fixes a check for offset in gpio_to_irq_unbanked() > and also assigns gpio_irq, gpio_unbanked of chips[0] to > appropriate values which is used in gpio_to_irq_unbanked() > function. > > Reported-by: Grygorii Strashko <grygorii.strashko@ti.com> > Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com> You should note explicitly that this patch fixes broken unbanked IRQ support. You mostly just described what you are doing. I will fixup while committing. Thanks, Sekhar > --- > drivers/gpio/gpio-davinci.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c > index 8847adf..84be701 100644 > --- a/drivers/gpio/gpio-davinci.c > +++ b/drivers/gpio/gpio-davinci.c > @@ -327,7 +327,7 @@ static int gpio_to_irq_unbanked(struct gpio_chip *chip, unsigned offset) > * NOTE: we assume for now that only irqs in the first gpio_chip > * can provide direct-mapped IRQs to AINTC (up to 32 GPIOs). > */ > - if (offset < d->irq_base) > + if (offset < d->gpio_unbanked) > return d->gpio_irq + offset; > else > return -ENODEV; > @@ -419,6 +419,8 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) > > /* pass "bank 0" GPIO IRQs to AINTC */ > chips[0].chip.to_irq = gpio_to_irq_unbanked; > + chips[0].gpio_irq = bank_irq; > + chips[0].gpio_unbanked = pdata->gpio_unbanked; > binten = BIT(0); > > /* AINTC handles mask/unmask; GPIO handles triggering */ >
On Tue, Nov 12, 2013 at 7:18 AM, Sekhar Nori <nsekhar@ti.com> wrote: > On Friday 08 November 2013 12:15 PM, Prabhakar Lad wrote: >> From: "Lad, Prabhakar" <prabhakar.csengg@gmail.com> >> >> This patch fixes a check for offset in gpio_to_irq_unbanked() >> and also assigns gpio_irq, gpio_unbanked of chips[0] to >> appropriate values which is used in gpio_to_irq_unbanked() >> function. >> >> Reported-by: Grygorii Strashko <grygorii.strashko@ti.com> >> Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com> > > You should note explicitly that this patch fixes broken unbanked IRQ > support. You mostly just described what you are doing. > > I will fixup while committing. So you're carrying this patch Sekhar? Thanks: Acked-by: Linus Walleij <linus.walleij@linaro.org> Yours, Linus Walleij
On Monday 18 November 2013 04:18 PM, Linus Walleij wrote: > On Tue, Nov 12, 2013 at 7:18 AM, Sekhar Nori <nsekhar@ti.com> wrote: >> On Friday 08 November 2013 12:15 PM, Prabhakar Lad wrote: >>> From: "Lad, Prabhakar" <prabhakar.csengg@gmail.com> >>> >>> This patch fixes a check for offset in gpio_to_irq_unbanked() >>> and also assigns gpio_irq, gpio_unbanked of chips[0] to >>> appropriate values which is used in gpio_to_irq_unbanked() >>> function. >>> >>> Reported-by: Grygorii Strashko <grygorii.strashko@ti.com> >>> Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com> >> >> You should note explicitly that this patch fixes broken unbanked IRQ >> support. You mostly just described what you are doing. >> >> I will fixup while committing. > > So you're carrying this patch Sekhar? Yes, and I would have sent this for upstream already if not for I going under the weather a bit past couple of days. Thanks, Sekhar
diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c index 8847adf..84be701 100644 --- a/drivers/gpio/gpio-davinci.c +++ b/drivers/gpio/gpio-davinci.c @@ -327,7 +327,7 @@ static int gpio_to_irq_unbanked(struct gpio_chip *chip, unsigned offset) * NOTE: we assume for now that only irqs in the first gpio_chip * can provide direct-mapped IRQs to AINTC (up to 32 GPIOs). */ - if (offset < d->irq_base) + if (offset < d->gpio_unbanked) return d->gpio_irq + offset; else return -ENODEV; @@ -419,6 +419,8 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) /* pass "bank 0" GPIO IRQs to AINTC */ chips[0].chip.to_irq = gpio_to_irq_unbanked; + chips[0].gpio_irq = bank_irq; + chips[0].gpio_unbanked = pdata->gpio_unbanked; binten = BIT(0); /* AINTC handles mask/unmask; GPIO handles triggering */