• Arnd Bergmann's avatar
    PCI/MSI: irqchip: Fix PCI_MSI dependencies · 3ee80364
    Arnd Bergmann authored
    The PCI_MSI symbol is used inconsistently throughout the tree, with some
    drivers using 'select' and others using 'depends on', or using conditional
    selects.  This keeps causing problems; the latest one is a result of
    ARCH_ALPINE using a 'select' statement to enable its platform-specific MSI
    driver without enabling MSI:
    
      warning: (ARCH_ALPINE) selects ALPINE_MSI which has unmet direct dependencies (PCI && PCI_MSI)
      drivers/irqchip/irq-alpine-msi.c:104:15: error: variable 'alpine_msix_domain_info' has initializer but incomplete type
       static struct msi_domain_info alpine_msix_domain_info = {
    		 ^~~~~~~~~~~~~~~
      drivers/irqchip/irq-alpine-msi.c:105:2: error: unknown field 'flags' specified in initializer
        .flags = MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
        ^
      drivers/irqchip/irq-alpine-msi.c:105:11: error: 'MSI_FLAG_USE_DEF_DOM_OPS' undeclared here (not in a function)
        .flags = MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
    	     ^~~~~~~~~~~~~~~~~~~~~~~~
    
    There is little reason to enable PCI support for a platform that uses MSI
    but then leave MSI disabled at compile time.
    
    Select PCI_MSI from irqchips that implement MSI, and make PCI host bridges
    that use MSI on ARM depend on PCI_MSI_IRQ_DOMAIN.
    
    For all three architectures that support PCI_MSI_IRQ_DOMAIN (ARM, ARM64,
    X86), enable it by default whenever MSI is enabled.
    
    [bhelgaas: changelog, omit crypto config change]
    Suggested-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Acked-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
    3ee80364