2014-01-28 02:59:34

by Sonic Zhang

[permalink] [raw]
Subject: [PATCH 2/3 v2] pinctrl-adi2: change irq_base from usigned int to int

From: Sonic Zhang <[email protected]>

Negative irq_base means there is no fixed Linux irq mappings are created from the platform data.
The driver calls irq_create_mapping to allocate a virtual Linux irq.

Signed-off-by: Sonic Zhang <[email protected]>
---
v2-changes:
- reword the patch description

drivers/pinctrl/pinctrl-adi2.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pinctrl/pinctrl-adi2.c b/drivers/pinctrl/pinctrl-adi2.c
index e8120fa..9fb53c9 100644
--- a/drivers/pinctrl/pinctrl-adi2.c
+++ b/drivers/pinctrl/pinctrl-adi2.c
@@ -173,7 +173,7 @@ struct adi_pinctrl {
struct gpio_port {
struct list_head node;
void __iomem *base;
- unsigned int irq_base;
+ int irq_base;
unsigned int width;
struct gpio_port_t *regs;
struct gpio_port_saved saved_data;
--
1.8.2.3


2014-01-31 12:42:12

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH 2/3 v2] pinctrl-adi2: change irq_base from usigned int to int

On Tue, Jan 28, 2014 at 4:02 AM, Sonic Zhang <[email protected]> wrote:

> From: Sonic Zhang <[email protected]>
>
> Negative irq_base means there is no fixed Linux irq mappings are created from the platform data.
> The driver calls irq_create_mapping to allocate a virtual Linux irq.

Those IRQs are not any more "virtual" than any other Linux IRQ
so I don't like this way of putting things. They are dynamically
allocated though.

The whole "virq" thing is just one big confusion, somehow people
are under the impression that some IRQ numbers in the kernel
are more "real" than others just because they happen to map
1-to-1 to a certain HW IRQ on the primary IRQ controller, but this
is just pure luck. This is one reason we're trying to get rid of
IRQ numbers altogether (if that will ever go anywhere).

> Signed-off-by: Sonic Zhang <[email protected]>
> ---
> v2-changes:
> - reword the patch description

I applied v1 anyway.

Yours,
Linus Walleij