]> Pileus Git - ~andy/linux/commitdiff
Merge tag 'msi-3.12' of git://git.infradead.org/linux-mvebu into next/drivers
authorOlof Johansson <olof@lixom.net>
Thu, 29 Aug 2013 17:06:50 +0000 (10:06 -0700)
committerOlof Johansson <olof@lixom.net>
Thu, 29 Aug 2013 17:06:50 +0000 (10:06 -0700)
From Jason Cooper:
mvebu msi pci changes for v3.12

 - introduce support for MSI on PCI
 - fix s390 build breakage when !HAVE_GENERIC_HARDIRQS

NOTE: This branch is a dependency for changes going though arm-soc from both
Thomas Petazzoni and Thierry Reding.

* tag 'msi-3.12' of git://git.infradead.org/linux-mvebu:
  PCI: msi: add default MSI operations for !HAVE_GENERIC_HARDIRQS platforms
  ARM: pci: add ->add_bus() and ->remove_bus() hooks to hw_pci
  of: pci: add registry of MSI chips
  PCI: Introduce new MSI chip infrastructure
  PCI: remove ARCH_SUPPORTS_MSI kconfig option
  PCI: use weak functions for MSI arch-specific functions

Signed-off-by: Olof Johansson <olof@lixom.net>
1  2 
arch/arm/Kconfig
arch/mips/Kconfig
arch/powerpc/Kconfig
arch/s390/Kconfig
arch/x86/kernel/x86_init.c

diff --combined arch/arm/Kconfig
index 43594d5116efce810798b763da8f3e7ea6891c93,b173c1d8721f67df3b9ff988a2159515208d3bf4..98538e1a7be946e3e2781a78544ea7c6d426d50c
@@@ -20,6 -20,7 +20,6 @@@ config AR
        select GENERIC_STRNCPY_FROM_USER
        select GENERIC_STRNLEN_USER
        select HARDIRQS_SW_RESEND
 -      select HAVE_AOUT
        select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
        select HAVE_ARCH_KGDB
        select HAVE_ARCH_SECCOMP_FILTER
@@@ -217,8 -218,7 +217,8 @@@ config VECTORS_BAS
        default DRAM_BASE if REMAP_VECTORS_TO_RAM
        default 0x00000000
        help
 -        The base address of exception vectors.
 +        The base address of exception vectors.  This must be two pages
 +        in size.
  
  config ARM_PATCH_PHYS_VIRT
        bool "Patch physical to virtual translations at runtime" if EMBEDDED
@@@ -441,7 -441,6 +441,6 @@@ config ARCH_NET
  config ARCH_IOP13XX
        bool "IOP13xx-based"
        depends on MMU
-       select ARCH_SUPPORTS_MSI
        select CPU_XSC3
        select NEED_MACH_MEMORY_H
        select NEED_RET_TO_USER
@@@ -1600,7 -1599,8 +1599,7 @@@ config LOCAL_TIMER
  config ARCH_NR_GPIO
        int
        default 1024 if ARCH_SHMOBILE || ARCH_TEGRA
 -      default 512 if SOC_OMAP5
 -      default 512 if ARCH_KEYSTONE
 +      default 512 if ARCH_EXYNOS || ARCH_KEYSTONE || SOC_OMAP5
        default 392 if ARCH_U8500
        default 352 if ARCH_VT8500
        default 288 if ARCH_SUNXI
diff --combined arch/mips/Kconfig
index e12764c2a9d08163e7d066f276f4b8b87e16e208,00b26986cd05982fe7d5fcc74cf0b33f3cca4aa1..1e31fcb91157b36e648fac9cba7d19419727a8a6
@@@ -114,7 -114,6 +114,7 @@@ config BCM47X
        select FW_CFE
        select HW_HAS_PCI
        select IRQ_CPU
 +      select SYS_HAS_CPU_MIPS32_R1
        select NO_EXCEPT_FILL
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_LITTLE_ENDIAN
@@@ -727,7 -726,6 +727,6 @@@ config CAVIUM_OCTEON_SO
        select SYS_HAS_CPU_CAVIUM_OCTEON
        select SWAP_IO_SPACE
        select HW_HAS_PCI
-       select ARCH_SUPPORTS_MSI
        select ZONE_DMA32
        select USB_ARCH_HAS_OHCI
        select USB_ARCH_HAS_EHCI
@@@ -763,7 -761,6 +762,6 @@@ config NLM_XLR_BOAR
        select CEVT_R4K
        select CSRC_R4K
        select IRQ_CPU
-       select ARCH_SUPPORTS_MSI
        select ZONE_DMA32 if 64BIT
        select SYNC_R4K
        select SYS_HAS_EARLY_PRINTK
@@@ -1703,7 -1700,6 +1701,7 @@@ endchoic
  
  config KVM_GUEST
        bool "KVM Guest Kernel"
 +      depends on BROKEN_ON_SMP
        help
          Select this option if building a guest kernel for KVM (Trap & Emulate) mode
  
diff --combined arch/powerpc/Kconfig
index dbd9d3c991e86ca61e16fff87047bd6956b21420,183a16509e8fc0bc3cbd6f6dbd0bda70a40d5663..3a678697b695210bf2082e5a286b579cbf25387e
@@@ -566,7 -566,7 +566,7 @@@ config SCHED_SM
  config PPC_DENORMALISATION
        bool "PowerPC denormalisation exception handling"
        depends on PPC_BOOK3S_64
 -      default "n"
 +      default "y" if PPC_POWERNV
        ---help---
          Add support for handling denormalisation of single precision
          values.  Useful for bare metal only.  If unsure say Y here.
@@@ -727,7 -727,6 +727,6 @@@ config PC
        default y if !40x && !CPM2 && !8xx && !PPC_83xx \
                && !PPC_85xx && !PPC_86xx && !GAMECUBE_COMMON
        default PCI_QSPAN if !4xx && !CPM2 && 8xx
-       select ARCH_SUPPORTS_MSI
        select GENERIC_PCI_IOMAP
        help
          Find out whether your system includes a PCI bus. PCI is the name of
diff --combined arch/s390/Kconfig
index 8a4cae78f03c91e510f307d25e8f5467211725c3,e9982a353b5578381345b8021ffaa669bcc15a6f..21e5c165df286ab6b5b2e7c8d292b13d905b3ec9
@@@ -118,7 -118,6 +118,7 @@@ config S39
        select HAVE_FUNCTION_TRACE_MCOUNT_TEST
        select HAVE_KERNEL_BZIP2
        select HAVE_KERNEL_GZIP
 +      select HAVE_KERNEL_LZ4
        select HAVE_KERNEL_LZMA
        select HAVE_KERNEL_LZO
        select HAVE_KERNEL_XZ
@@@ -228,12 -227,11 +228,12 @@@ config MARCH_Z19
          not work on older machines.
  
  config MARCH_ZEC12
 -      bool "IBM zEC12"
 +      bool "IBM zBC12 and zEC12"
        select HAVE_MARCH_ZEC12_FEATURES if 64BIT
        help
 -        Select this to enable optimizations for IBM zEC12 (2827 series). The
 -        kernel will be slightly faster but will not work on older machines.
 +        Select this to enable optimizations for IBM zBC12 and zEC12 (2828 and
 +        2827 series). The kernel will be slightly faster but will not work on
 +        older machines.
  
  endchoice
  
@@@ -430,7 -428,6 +430,6 @@@ menuconfig PC
        bool "PCI support"
        default n
        depends on 64BIT
-       select ARCH_SUPPORTS_MSI
        select PCI_MSI
        help
          Enable PCI support.
@@@ -711,7 -708,6 +710,7 @@@ config S390_GUES
        def_bool y
        prompt "s390 support for virtio devices"
        depends on 64BIT
 +      select TTY
        select VIRTUALIZATION
        select VIRTIO
        select VIRTIO_CONSOLE
index 5f24c71accaaf2f9c6f1b17566fc142f9c157535,5587f991d11130613d126d9a95d790c986d862fd..8ce0072cd70096c1435017bdddfeff9d7c15b4f2
@@@ -25,7 -25,7 +25,7 @@@
  #include <asm/iommu.h>
  #include <asm/mach_traps.h>
  
 -void __cpuinit x86_init_noop(void) { }
 +void x86_init_noop(void) { }
  void __init x86_init_uint_noop(unsigned int unused) { }
  int __init iommu_init_noop(void) { return 0; }
  void iommu_shutdown_noop(void) { }
@@@ -85,7 -85,7 +85,7 @@@ struct x86_init_ops x86_init __initdat
        },
  };
  
 -struct x86_cpuinit_ops x86_cpuinit __cpuinitdata = {
 +struct x86_cpuinit_ops x86_cpuinit = {
        .early_percpu_clock_init        = x86_init_noop,
        .setup_percpu_clockev           = setup_secondary_APIC_clock,
  };
@@@ -107,6 -107,8 +107,8 @@@ struct x86_platform_ops x86_platform = 
  };
  
  EXPORT_SYMBOL_GPL(x86_platform);
+ #if defined(CONFIG_PCI_MSI)
  struct x86_msi_ops x86_msi = {
        .setup_msi_irqs         = native_setup_msi_irqs,
        .compose_msi_msg        = native_compose_msi_msg,
        .setup_hpet_msi         = default_setup_hpet_msi,
  };
  
+ /* MSI arch specific hooks */
+ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+ {
+       return x86_msi.setup_msi_irqs(dev, nvec, type);
+ }
+ void arch_teardown_msi_irqs(struct pci_dev *dev)
+ {
+       x86_msi.teardown_msi_irqs(dev);
+ }
+ void arch_teardown_msi_irq(unsigned int irq)
+ {
+       x86_msi.teardown_msi_irq(irq);
+ }
+ void arch_restore_msi_irqs(struct pci_dev *dev, int irq)
+ {
+       x86_msi.restore_msi_irqs(dev, irq);
+ }
+ #endif
  struct x86_io_apic_ops x86_io_apic_ops = {
        .init                   = native_io_apic_init_mappings,
        .read                   = native_io_apic_read,