irqchip: build IMX_MU_MSI only on ARM

Message ID 20221215164109.761427-1-arnd@kernel.org
State New
Headers
Series irqchip: build IMX_MU_MSI only on ARM |

Commit Message

Arnd Bergmann Dec. 15, 2022, 4:40 p.m. UTC
  From: Arnd Bergmann <arnd@arndb.de>

compile-testing IMX_MU_MSI on x86 without PCI_MSI support results
in a build failure:

arch/x86/kernel/hpet.c:520:46: error: 'msi_alloc_info_t' {aka 'struct irq_alloc_info'} has no member named 'hwirq'
  520 |         irq_domain_set_info(domain, virq, arg->hwirq, info->chip, NULL,
      |                                              ^~
arch/x86/kernel/hpet.c:521:49: error: 'msi_alloc_info_t' {aka 'struct irq_alloc_info'} has no member named 'data'
  521 |                             handle_edge_irq, arg->data, "edge");
      |                                                 ^~
arch/x86/kernel/hpet.c: In function 'hpet_create_irq_domain':
arch/x86/kernel/hpet.c:550:13: error: 'x86_vector_domain' undeclared (first use in this function)
  550 |         if (x86_vector_domain == NULL)
      |             ^~~~~~~~~~~~~~~~~
arch/x86/kernel/hpet.c:550:13: note: each undeclared identifier is reported only once for each function it appears in
arch/x86/kernel/hpet.c: In function 'hpet_assign_irq':
arch/x86/kernel/hpet.c:600:9: error: implicit declaration of function 'init_irq_alloc_info' [-Werror=implicit-function-declaration]
  600 |         init_irq_alloc_info(&info, NULL);

Tighten the dependency further to only allow compile testing on Arm.
This could be refined further to allow certain x86 configs.

Fixes: 6c9f7434159b ("irqchip: IMX_MU_MSI should depend on ARCH_MXC")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/irqchip/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Geert Uytterhoeven Dec. 15, 2022, 7:47 p.m. UTC | #1
Hi Arnd,

On Thu, Dec 15, 2022 at 5:41 PM Arnd Bergmann <arnd@kernel.org> wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> compile-testing IMX_MU_MSI on x86 without PCI_MSI support results
> in a build failure:
>
> arch/x86/kernel/hpet.c:520:46: error: 'msi_alloc_info_t' {aka 'struct irq_alloc_info'} has no member named 'hwirq'
>   520 |         irq_domain_set_info(domain, virq, arg->hwirq, info->chip, NULL,
>       |                                              ^~
> arch/x86/kernel/hpet.c:521:49: error: 'msi_alloc_info_t' {aka 'struct irq_alloc_info'} has no member named 'data'
>   521 |                             handle_edge_irq, arg->data, "edge");
>       |                                                 ^~
> arch/x86/kernel/hpet.c: In function 'hpet_create_irq_domain':
> arch/x86/kernel/hpet.c:550:13: error: 'x86_vector_domain' undeclared (first use in this function)
>   550 |         if (x86_vector_domain == NULL)
>       |             ^~~~~~~~~~~~~~~~~
> arch/x86/kernel/hpet.c:550:13: note: each undeclared identifier is reported only once for each function it appears in
> arch/x86/kernel/hpet.c: In function 'hpet_assign_irq':
> arch/x86/kernel/hpet.c:600:9: error: implicit declaration of function 'init_irq_alloc_info' [-Werror=implicit-function-declaration]
>   600 |         init_irq_alloc_info(&info, NULL);
>
> Tighten the dependency further to only allow compile testing on Arm.
> This could be refined further to allow certain x86 configs.

Thanks for your patch!

> Fixes: 6c9f7434159b ("irqchip: IMX_MU_MSI should depend on ARCH_MXC")

This is not the commit that introduced the issue.

Fixes: 70afdab904d2d1e6 ("irqchip: Add IMX MU MSI controller driver")

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  drivers/irqchip/Kconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig
> index caa952c40ff9..4ebf4d566e6f 100644
> --- a/drivers/irqchip/Kconfig
> +++ b/drivers/irqchip/Kconfig
> @@ -484,7 +484,7 @@ config IMX_INTMUX
>  config IMX_MU_MSI
>         tristate "i.MX MU used as MSI controller"
>         depends on OF && HAS_IOMEM
> -       depends on ARCH_MXC || COMPILE_TEST
> +       depends on ARCH_MXC || ((ARM || ARM64) && COMPILE_TEST)

I think adding a separate line

    depends on ARM || ARM64

is easier to read (and easier to extend).

>         default m if ARCH_MXC
>         select IRQ_DOMAIN
>         select IRQ_DOMAIN_HIERARCHY

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
  

Patch

diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig
index caa952c40ff9..4ebf4d566e6f 100644
--- a/drivers/irqchip/Kconfig
+++ b/drivers/irqchip/Kconfig
@@ -484,7 +484,7 @@  config IMX_INTMUX
 config IMX_MU_MSI
 	tristate "i.MX MU used as MSI controller"
 	depends on OF && HAS_IOMEM
-	depends on ARCH_MXC || COMPILE_TEST
+	depends on ARCH_MXC || ((ARM || ARM64) && COMPILE_TEST)
 	default m if ARCH_MXC
 	select IRQ_DOMAIN
 	select IRQ_DOMAIN_HIERARCHY