Subject: [PATCH 1/2] gpio: davinci: Fix a check for unbanked gpio

From: [email-masked] (Sekhar Nori)
Date: Tue, 12 Nov 2013 11:48:19 +0530

On Friday 08 November 2013 12:15 PM, Prabhakar Lad wrote:
> From: "Lad, Prabhakar" <[email-masked]>
> 
> 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 <[email-masked]>
> Signed-off-by: Lad, Prabhakar <[email-masked]>

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 */
>