imx6: disable MSI interrupts
The IMX6 PCIe host controller does not fire legacy interrupts if MSI is enabled. A patch is being worked on to enable MSI at runtime only when it is needed but meanwhile this patch will disable MSI for the imx6 kernel. This fixes the no interrupt issue on cards/drivers that use legacy interrupts such as ath9k. Signed-off-by: Tim Harvey <tharvey@gateworks.com> Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
This commit is contained in:
parent
bc1e7469aa
commit
456bd95023
2 changed files with 24 additions and 40 deletions
|
@ -1,7 +1,5 @@
|
||||||
CONFIG_AHCI_IMX=y
|
CONFIG_AHCI_IMX=y
|
||||||
CONFIG_ALIGNMENT_TRAP=y
|
CONFIG_ALIGNMENT_TRAP=y
|
||||||
# CONFIG_APM_EMULATION is not set
|
|
||||||
# CONFIG_ARCH_ARTPEC is not set
|
|
||||||
CONFIG_ARCH_CLOCKSOURCE_DATA=y
|
CONFIG_ARCH_CLOCKSOURCE_DATA=y
|
||||||
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
|
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
|
||||||
CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
|
CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
|
||||||
|
@ -18,29 +16,22 @@ CONFIG_ARCH_MULTI_V6_V7=y
|
||||||
CONFIG_ARCH_MULTI_V7=y
|
CONFIG_ARCH_MULTI_V7=y
|
||||||
CONFIG_ARCH_MXC=y
|
CONFIG_ARCH_MXC=y
|
||||||
CONFIG_ARCH_NR_GPIO=0
|
CONFIG_ARCH_NR_GPIO=0
|
||||||
# CONFIG_ARCH_RENESAS is not set
|
|
||||||
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
|
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
|
||||||
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
|
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
|
||||||
CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
|
CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
|
||||||
CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
|
CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
|
||||||
CONFIG_ARCH_SUPPORTS_UPROBES=y
|
CONFIG_ARCH_SUPPORTS_UPROBES=y
|
||||||
CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
||||||
# CONFIG_ARCH_TANGO is not set
|
|
||||||
CONFIG_ARCH_USE_BUILTIN_BSWAP=y
|
CONFIG_ARCH_USE_BUILTIN_BSWAP=y
|
||||||
CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
|
CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
|
||||||
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
|
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
|
||||||
CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
|
CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
# CONFIG_ARM_CPU_SUSPEND is not set
|
CONFIG_ARM_CPU_SUSPEND=y
|
||||||
CONFIG_ARM_CRYPTO=y
|
CONFIG_ARM_CRYPTO=y
|
||||||
CONFIG_ARM_ERRATA_754322=y
|
CONFIG_ARM_ERRATA_754322=y
|
||||||
CONFIG_ARM_ERRATA_764369=y
|
CONFIG_ARM_ERRATA_764369=y
|
||||||
CONFIG_ARM_ERRATA_775420=y
|
CONFIG_ARM_ERRATA_775420=y
|
||||||
# CONFIG_ARM_ERRATA_818325_852422 is not set
|
|
||||||
# CONFIG_ARM_ERRATA_821420 is not set
|
|
||||||
# CONFIG_ARM_ERRATA_825619 is not set
|
|
||||||
# CONFIG_ARM_ERRATA_852421 is not set
|
|
||||||
# CONFIG_ARM_ERRATA_852423 is not set
|
|
||||||
CONFIG_ARM_GIC=y
|
CONFIG_ARM_GIC=y
|
||||||
CONFIG_ARM_HAS_SG_CHAIN=y
|
CONFIG_ARM_HAS_SG_CHAIN=y
|
||||||
CONFIG_ARM_HEAVY_MB=y
|
CONFIG_ARM_HEAVY_MB=y
|
||||||
|
@ -69,9 +60,6 @@ CONFIG_CLKSRC_PROBE=y
|
||||||
CONFIG_CLONE_BACKWARDS=y
|
CONFIG_CLONE_BACKWARDS=y
|
||||||
CONFIG_CLZ_TAB=y
|
CONFIG_CLZ_TAB=y
|
||||||
CONFIG_COMMON_CLK=y
|
CONFIG_COMMON_CLK=y
|
||||||
# CONFIG_COMMON_CLK_CS2000_CP is not set
|
|
||||||
# CONFIG_COMMON_CLK_NXP is not set
|
|
||||||
# CONFIG_COMMON_CLK_PIC32 is not set
|
|
||||||
CONFIG_CPUFREQ_DT=y
|
CONFIG_CPUFREQ_DT=y
|
||||||
CONFIG_CPUFREQ_DT_PLATDEV=y
|
CONFIG_CPUFREQ_DT_PLATDEV=y
|
||||||
CONFIG_CPU_32v6K=y
|
CONFIG_CPU_32v6K=y
|
||||||
|
@ -175,7 +163,6 @@ CONFIG_DMA_OF=y
|
||||||
CONFIG_DTC=y
|
CONFIG_DTC=y
|
||||||
CONFIG_EDAC_ATOMIC_SCRUB=y
|
CONFIG_EDAC_ATOMIC_SCRUB=y
|
||||||
CONFIG_EDAC_SUPPORT=y
|
CONFIG_EDAC_SUPPORT=y
|
||||||
# CONFIG_EFI is not set
|
|
||||||
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
|
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
|
||||||
CONFIG_ENCRYPTED_KEYS=y
|
CONFIG_ENCRYPTED_KEYS=y
|
||||||
CONFIG_EXT2_FS=y
|
CONFIG_EXT2_FS=y
|
||||||
|
@ -211,8 +198,6 @@ CONFIG_GENERIC_IO=y
|
||||||
CONFIG_GENERIC_IRQ_CHIP=y
|
CONFIG_GENERIC_IRQ_CHIP=y
|
||||||
CONFIG_GENERIC_IRQ_SHOW=y
|
CONFIG_GENERIC_IRQ_SHOW=y
|
||||||
CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
|
CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
|
||||||
CONFIG_GENERIC_MSI_IRQ=y
|
|
||||||
CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
|
|
||||||
CONFIG_GENERIC_PCI_IOMAP=y
|
CONFIG_GENERIC_PCI_IOMAP=y
|
||||||
CONFIG_GENERIC_PINCONF=y
|
CONFIG_GENERIC_PINCONF=y
|
||||||
CONFIG_GENERIC_SCHED_CLOCK=y
|
CONFIG_GENERIC_SCHED_CLOCK=y
|
||||||
|
@ -224,7 +209,6 @@ CONFIG_GLOB=y
|
||||||
CONFIG_GPIOLIB=y
|
CONFIG_GPIOLIB=y
|
||||||
CONFIG_GPIOLIB_IRQCHIP=y
|
CONFIG_GPIOLIB_IRQCHIP=y
|
||||||
CONFIG_GPIO_GENERIC=y
|
CONFIG_GPIO_GENERIC=y
|
||||||
# CONFIG_GPIO_MPC8XXX is not set
|
|
||||||
CONFIG_GPIO_MXC=y
|
CONFIG_GPIO_MXC=y
|
||||||
CONFIG_GPIO_PCA953X=y
|
CONFIG_GPIO_PCA953X=y
|
||||||
CONFIG_GPIO_PCA953X_IRQ=y
|
CONFIG_GPIO_PCA953X_IRQ=y
|
||||||
|
@ -281,8 +265,6 @@ CONFIG_HAVE_SMP=y
|
||||||
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
|
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
|
||||||
CONFIG_HAVE_UID16=y
|
CONFIG_HAVE_UID16=y
|
||||||
CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
|
CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
|
||||||
# CONFIG_HISI_FEMAC is not set
|
|
||||||
# CONFIG_HWLAT_TRACER is not set
|
|
||||||
CONFIG_HW_RANDOM=y
|
CONFIG_HW_RANDOM=y
|
||||||
CONFIG_HZ_FIXED=0
|
CONFIG_HZ_FIXED=0
|
||||||
CONFIG_HZ_PERIODIC=y
|
CONFIG_HZ_PERIODIC=y
|
||||||
|
@ -305,19 +287,12 @@ CONFIG_IRQ_WORK=y
|
||||||
CONFIG_JBD2=y
|
CONFIG_JBD2=y
|
||||||
# CONFIG_JFFS2_FS is not set
|
# CONFIG_JFFS2_FS is not set
|
||||||
CONFIG_KEYS=y
|
CONFIG_KEYS=y
|
||||||
# CONFIG_KEY_DH_OPERATIONS is not set
|
|
||||||
CONFIG_LD_DEAD_CODE_DATA_ELIMINATION=y
|
|
||||||
# CONFIG_LEDS_IS31FL319X is not set
|
|
||||||
# CONFIG_LEDS_IS31FL32XX is not set
|
|
||||||
# CONFIG_LEDS_TRIGGER_MTD is not set
|
|
||||||
CONFIG_LIBFDT=y
|
CONFIG_LIBFDT=y
|
||||||
CONFIG_LOCK_SPIN_ON_OWNER=y
|
CONFIG_LOCK_SPIN_ON_OWNER=y
|
||||||
CONFIG_LZO_COMPRESS=y
|
CONFIG_LZO_COMPRESS=y
|
||||||
CONFIG_LZO_DECOMPRESS=y
|
CONFIG_LZO_DECOMPRESS=y
|
||||||
CONFIG_MARVELL_PHY=y
|
CONFIG_MARVELL_PHY=y
|
||||||
CONFIG_MDIO_BOARDINFO=y
|
CONFIG_MDIO_BOARDINFO=y
|
||||||
# CONFIG_MDIO_HISI_FEMAC is not set
|
|
||||||
# CONFIG_MFD_ACT8945A is not set
|
|
||||||
# CONFIG_MFD_MAX77620 is not set
|
# CONFIG_MFD_MAX77620 is not set
|
||||||
CONFIG_MFD_SYSCON=y
|
CONFIG_MFD_SYSCON=y
|
||||||
CONFIG_MICREL_PHY=y
|
CONFIG_MICREL_PHY=y
|
||||||
|
@ -338,7 +313,6 @@ CONFIG_MPILIB=y
|
||||||
CONFIG_MTD_NAND=y
|
CONFIG_MTD_NAND=y
|
||||||
CONFIG_MTD_NAND_ECC=y
|
CONFIG_MTD_NAND_ECC=y
|
||||||
CONFIG_MTD_NAND_GPMI_NAND=y
|
CONFIG_MTD_NAND_GPMI_NAND=y
|
||||||
# CONFIG_MTD_NAND_MTK is not set
|
|
||||||
# CONFIG_MTD_PHYSMAP_OF_VERSATILE is not set
|
# CONFIG_MTD_PHYSMAP_OF_VERSATILE is not set
|
||||||
CONFIG_MTD_UBI=y
|
CONFIG_MTD_UBI=y
|
||||||
CONFIG_MTD_UBI_BEB_LIMIT=20
|
CONFIG_MTD_UBI_BEB_LIMIT=20
|
||||||
|
@ -353,10 +327,8 @@ CONFIG_MXS_DMA=y
|
||||||
CONFIG_NEED_DMA_MAP_STATE=y
|
CONFIG_NEED_DMA_MAP_STATE=y
|
||||||
CONFIG_NEON=y
|
CONFIG_NEON=y
|
||||||
CONFIG_NET_DSA=y
|
CONFIG_NET_DSA=y
|
||||||
# CONFIG_B53 is not set
|
|
||||||
CONFIG_NET_DSA_MV88E6XXX=y
|
CONFIG_NET_DSA_MV88E6XXX=y
|
||||||
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
|
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
|
||||||
# CONFIG_NET_DSA_QCA8K is not set
|
|
||||||
CONFIG_NET_DSA_TAG_DSA=y
|
CONFIG_NET_DSA_TAG_DSA=y
|
||||||
CONFIG_NET_DSA_TAG_EDSA=y
|
CONFIG_NET_DSA_TAG_EDSA=y
|
||||||
CONFIG_NET_FLOW_LIMIT=y
|
CONFIG_NET_FLOW_LIMIT=y
|
||||||
|
@ -386,18 +358,14 @@ CONFIG_OUTER_CACHE=y
|
||||||
CONFIG_OUTER_CACHE_SYNC=y
|
CONFIG_OUTER_CACHE_SYNC=y
|
||||||
CONFIG_PADATA=y
|
CONFIG_PADATA=y
|
||||||
CONFIG_PAGE_OFFSET=0x80000000
|
CONFIG_PAGE_OFFSET=0x80000000
|
||||||
# CONFIG_PARAVIRT is not set
|
|
||||||
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
|
|
||||||
CONFIG_PCI=y
|
CONFIG_PCI=y
|
||||||
CONFIG_PCIEAER=y
|
CONFIG_PCIEAER=y
|
||||||
CONFIG_PCIEPORTBUS=y
|
CONFIG_PCIEPORTBUS=y
|
||||||
CONFIG_PCIE_DW=y
|
CONFIG_PCIE_DW=y
|
||||||
CONFIG_PCIE_DW_PLAT=y
|
CONFIG_PCIE_PME=y
|
||||||
CONFIG_PCI_DOMAINS=y
|
CONFIG_PCI_DOMAINS=y
|
||||||
CONFIG_PCI_DOMAINS_GENERIC=y
|
CONFIG_PCI_DOMAINS_GENERIC=y
|
||||||
CONFIG_PCI_IMX6=y
|
CONFIG_PCI_IMX6=y
|
||||||
CONFIG_PCI_MSI=y
|
|
||||||
CONFIG_PCI_MSI_IRQ_DOMAIN=y
|
|
||||||
CONFIG_PERF_USE_VMALLOC=y
|
CONFIG_PERF_USE_VMALLOC=y
|
||||||
CONFIG_PGTABLE_LEVELS=2
|
CONFIG_PGTABLE_LEVELS=2
|
||||||
CONFIG_PHYLIB=y
|
CONFIG_PHYLIB=y
|
||||||
|
@ -423,9 +391,6 @@ CONFIG_PTP_1588_CLOCK=y
|
||||||
CONFIG_PWM=y
|
CONFIG_PWM=y
|
||||||
CONFIG_PWM_IMX=y
|
CONFIG_PWM_IMX=y
|
||||||
CONFIG_PWM_SYSFS=y
|
CONFIG_PWM_SYSFS=y
|
||||||
CONFIG_PWRSEQ_EMMC=y
|
|
||||||
CONFIG_PWRSEQ_SIMPLE=y
|
|
||||||
# CONFIG_QORIQ_THERMAL is not set
|
|
||||||
CONFIG_RAS=y
|
CONFIG_RAS=y
|
||||||
CONFIG_RATIONAL=y
|
CONFIG_RATIONAL=y
|
||||||
CONFIG_RCU_STALL_COMMON=y
|
CONFIG_RCU_STALL_COMMON=y
|
||||||
|
@ -442,9 +407,6 @@ CONFIG_REGULATOR_ANATOP=y
|
||||||
CONFIG_REGULATOR_FIXED_VOLTAGE=y
|
CONFIG_REGULATOR_FIXED_VOLTAGE=y
|
||||||
CONFIG_REGULATOR_LTC3676=y
|
CONFIG_REGULATOR_LTC3676=y
|
||||||
CONFIG_REGULATOR_PFUZE100=y
|
CONFIG_REGULATOR_PFUZE100=y
|
||||||
# CONFIG_REGULATOR_PV88060 is not set
|
|
||||||
# CONFIG_REGULATOR_PV88080 is not set
|
|
||||||
# CONFIG_REGULATOR_PV88090 is not set
|
|
||||||
CONFIG_RFS_ACCEL=y
|
CONFIG_RFS_ACCEL=y
|
||||||
CONFIG_RPS=y
|
CONFIG_RPS=y
|
||||||
CONFIG_RTC_CLASS=y
|
CONFIG_RTC_CLASS=y
|
||||||
|
|
22
target/linux/imx6/patches-4.9/200-disable-msi.patch
Normal file
22
target/linux/imx6/patches-4.9/200-disable-msi.patch
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
The IMX6 PCIe host controller does not fire legacy interrupts when MSI is
|
||||||
|
enabled. A patch is being worked on upstream to only enable MSI at runtime
|
||||||
|
when needed, but until that is ready we will allow MSI to be disabled.
|
||||||
|
|
||||||
|
--- a/drivers/pci/host/Kconfig
|
||||||
|
+++ b/drivers/pci/host/Kconfig
|
||||||
|
@@ -51,7 +51,6 @@ config PCIE_DW_PLAT
|
||||||
|
|
||||||
|
config PCIE_DW
|
||||||
|
bool
|
||||||
|
- depends on PCI_MSI_IRQ_DOMAIN
|
||||||
|
|
||||||
|
config PCI_EXYNOS
|
||||||
|
bool "Samsung Exynos PCIe controller"
|
||||||
|
@@ -63,7 +62,6 @@ config PCI_EXYNOS
|
||||||
|
config PCI_IMX6
|
||||||
|
bool "Freescale i.MX6 PCIe controller"
|
||||||
|
depends on SOC_IMX6Q
|
||||||
|
- depends on PCI_MSI_IRQ_DOMAIN
|
||||||
|
select PCIEPORTBUS
|
||||||
|
select PCIE_DW
|
||||||
|
|
Loading…
Reference in a new issue