diff mbox

mfd: mt6397: Use set_irq_flags only on ARM

Message ID 1425453869-18482-1-git-send-email-s.hauer@pengutronix.de (mailing list archive)
State New, archived
Headers show

Commit Message

Sascha Hauer March 4, 2015, 7:24 a.m. UTC
Continue the common pattern in MFD drivers and use set_irq_flags on ARM
and irq_set_noprobe on other architectures. This fixes compilation on
non ARM architecures.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---

Lee, feel free to squash this into the patch adding mt6397 core support.
Alternatively I could also add some Kconfig dependency to compile this
on ARM only if you are more comfortable with that.

 drivers/mfd/mt6397-core.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Uwe Kleine-König March 4, 2015, 7:59 a.m. UTC | #1
Hello,

[Cc += tglx, rmk]

On Wed, Mar 04, 2015 at 08:24:29AM +0100, Sascha Hauer wrote:
> Continue the common pattern in MFD drivers and use set_irq_flags on ARM
> and irq_set_noprobe on other architectures. This fixes compilation on
> non ARM architecures.
> 
> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> ---
> 
> Lee, feel free to squash this into the patch adding mt6397 core support.
> Alternatively I could also add some Kconfig dependency to compile this
> on ARM only if you are more comfortable with that.
> 
>  drivers/mfd/mt6397-core.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/mfd/mt6397-core.c b/drivers/mfd/mt6397-core.c
> index b61c4eb..09bc780 100644
> --- a/drivers/mfd/mt6397-core.c
> +++ b/drivers/mfd/mt6397-core.c
> @@ -121,7 +121,11 @@ static int mt6397_irq_domain_map(struct irq_domain *d, unsigned int irq,
>  	irq_set_chip_data(irq, mt6397);
>  	irq_set_chip_and_handler(irq, &mt6397_irq_chip, handle_level_irq);
>  	irq_set_nested_thread(irq, 1);
> +#ifdef CONFIG_ARM
>  	set_irq_flags(irq, IRQF_VALID);
> +#else
> +	irq_set_noprobe(irq);
> +#endif
While this is what everyone does, I wonder why ARM is special here.
Has this only historic reasons and needs refurbishment?

Best regards
Uwe
Lee Jones March 4, 2015, 8:01 a.m. UTC | #2
On Wed, 04 Mar 2015, Sascha Hauer wrote:

> Continue the common pattern in MFD drivers and use set_irq_flags on ARM
> and irq_set_noprobe on other architectures. This fixes compilation on
> non ARM architecures.
> 
> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> ---
> 
> Lee, feel free to squash this into the patch adding mt6397 core support.
> Alternatively I could also add some Kconfig dependency to compile this
> on ARM only if you are more comfortable with that.

This solution is fine.  I'm going to squash this patch.

Thanks for fixing.

>  drivers/mfd/mt6397-core.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/mfd/mt6397-core.c b/drivers/mfd/mt6397-core.c
> index b61c4eb..09bc780 100644
> --- a/drivers/mfd/mt6397-core.c
> +++ b/drivers/mfd/mt6397-core.c
> @@ -121,7 +121,11 @@ static int mt6397_irq_domain_map(struct irq_domain *d, unsigned int irq,
>  	irq_set_chip_data(irq, mt6397);
>  	irq_set_chip_and_handler(irq, &mt6397_irq_chip, handle_level_irq);
>  	irq_set_nested_thread(irq, 1);
> +#ifdef CONFIG_ARM
>  	set_irq_flags(irq, IRQF_VALID);
> +#else
> +	irq_set_noprobe(irq);
> +#endif
>  
>  	return 0;
>  }
Russell King - ARM Linux March 9, 2015, 4:23 p.m. UTC | #3
On Wed, Mar 04, 2015 at 08:59:07AM +0100, Uwe Kleine-König wrote:
> While this is what everyone does, I wonder why ARM is special here.
> Has this only historic reasons and needs refurbishment?

We have platforms where we need to ensure that certain interrupts can't
be requested.

Unfortunately, that was never properly dealt with when genirq came
along, and we're pretty much stuck with this situation: going through
and working out what the restrictions were is a much bigger problem
than it was when genirq first happened.  I don't see how we could
sanely fix this now.

What we should probably at least do is work out a way that we can kill
that ifdef, so we don't have the same hack appearing in many drivers.
diff mbox

Patch

diff --git a/drivers/mfd/mt6397-core.c b/drivers/mfd/mt6397-core.c
index b61c4eb..09bc780 100644
--- a/drivers/mfd/mt6397-core.c
+++ b/drivers/mfd/mt6397-core.c
@@ -121,7 +121,11 @@  static int mt6397_irq_domain_map(struct irq_domain *d, unsigned int irq,
 	irq_set_chip_data(irq, mt6397);
 	irq_set_chip_and_handler(irq, &mt6397_irq_chip, handle_level_irq);
 	irq_set_nested_thread(irq, 1);
+#ifdef CONFIG_ARM
 	set_irq_flags(irq, IRQF_VALID);
+#else
+	irq_set_noprobe(irq);
+#endif
 
 	return 0;
 }