2012-10-23 08:36:29

by Linus Walleij

[permalink] [raw]
Subject: [PATCH v2] pinctrl/nomadik: use irq_create_mapping()

From: Linus Walleij <[email protected]>

Since in the DT case, the linear domain path will not allocate
descriptors for the IRQs, we need to use irq_create_mapping()
for mapping hwirqs to Linux IRQs, so these descriptors get
created on-the-fly in this case.

ChangeLog v1->v2:

- Just use irq_create_mapping() in the .to_irq function since
this is called before unmasking or enabling any interrupt
lines, so irq_find_mapping() should be sufficient for the
IRQ handler function.

Cc: Lee Jones <[email protected]>
Signed-off-by: Linus Walleij <[email protected]>
---
drivers/pinctrl/pinctrl-nomadik.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pinctrl/pinctrl-nomadik.c b/drivers/pinctrl/pinctrl-nomadik.c
index 01aea1c..db5e0b3 100644
--- a/drivers/pinctrl/pinctrl-nomadik.c
+++ b/drivers/pinctrl/pinctrl-nomadik.c
@@ -1056,7 +1056,7 @@ static int nmk_gpio_to_irq(struct gpio_chip *chip, unsigned offset)
struct nmk_gpio_chip *nmk_chip =
container_of(chip, struct nmk_gpio_chip, chip);

- return irq_find_mapping(nmk_chip->domain, offset);
+ return irq_create_mapping(nmk_chip->domain, offset);
}

#ifdef CONFIG_DEBUG_FS
--
1.7.11.3


2012-10-23 16:17:48

by Stephen Warren

[permalink] [raw]
Subject: Re: [PATCH v2] pinctrl/nomadik: use irq_create_mapping()

On 10/23/2012 02:35 AM, Linus Walleij wrote:
> From: Linus Walleij <[email protected]>
>
> Since in the DT case, the linear domain path will not allocate
> descriptors for the IRQs, we need to use irq_create_mapping()
> for mapping hwirqs to Linux IRQs, so these descriptors get
> created on-the-fly in this case.
>
> ChangeLog v1->v2:
>
> - Just use irq_create_mapping() in the .to_irq function since
> this is called before unmasking or enabling any interrupt
> lines, so irq_find_mapping() should be sufficient for the
> IRQ handler function.

Reviewed-by: Stephen Warren <[email protected]>