[source] imx6: disable MSI interrupts
LEDE Commits
lede-commits at lists.infradead.org
Wed Apr 26 02:53:05 PDT 2017
nbd pushed a commit to source.git, branch master:
https://git.lede-project.org/456bd950236e5a8a59c19ae8614bec65ed513a2f
commit 456bd950236e5a8a59c19ae8614bec65ed513a2f
Author: Tim Harvey <tharvey at gateworks.com>
AuthorDate: Thu Apr 20 13:28:20 2017 -0700
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 at gateworks.com>
Tested-by: Koen Vandeputte <koen.vandeputte at ncentric.com>
---
target/linux/imx6/config-4.9 | 42 ++--------------------
.../linux/imx6/patches-4.9/200-disable-msi.patch | 22 ++++++++++++
2 files changed, 24 insertions(+), 40 deletions(-)
diff --git a/target/linux/imx6/config-4.9 b/target/linux/imx6/config-4.9
index b4d23de..701bb53 100644
--- a/target/linux/imx6/config-4.9
+++ b/target/linux/imx6/config-4.9
@@ -1,7 +1,5 @@
CONFIG_AHCI_IMX=y
CONFIG_ALIGNMENT_TRAP=y
-# CONFIG_APM_EMULATION is not set
-# CONFIG_ARCH_ARTPEC is not set
CONFIG_ARCH_CLOCKSOURCE_DATA=y
CONFIG_ARCH_HAS_ELF_RANDOMIZE=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_MXC=y
CONFIG_ARCH_NR_GPIO=0
-# CONFIG_ARCH_RENESAS is not set
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
-# CONFIG_ARCH_TANGO is not set
CONFIG_ARCH_USE_BUILTIN_BSWAP=y
CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
CONFIG_ARM=y
-# CONFIG_ARM_CPU_SUSPEND is not set
+CONFIG_ARM_CPU_SUSPEND=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_ERRATA_754322=y
CONFIG_ARM_ERRATA_764369=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_HAS_SG_CHAIN=y
CONFIG_ARM_HEAVY_MB=y
@@ -69,9 +60,6 @@ CONFIG_CLKSRC_PROBE=y
CONFIG_CLONE_BACKWARDS=y
CONFIG_CLZ_TAB=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_PLATDEV=y
CONFIG_CPU_32v6K=y
@@ -175,7 +163,6 @@ CONFIG_DMA_OF=y
CONFIG_DTC=y
CONFIG_EDAC_ATOMIC_SCRUB=y
CONFIG_EDAC_SUPPORT=y
-# CONFIG_EFI is not set
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
CONFIG_ENCRYPTED_KEYS=y
CONFIG_EXT2_FS=y
@@ -211,8 +198,6 @@ CONFIG_GENERIC_IO=y
CONFIG_GENERIC_IRQ_CHIP=y
CONFIG_GENERIC_IRQ_SHOW=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_PINCONF=y
CONFIG_GENERIC_SCHED_CLOCK=y
@@ -224,7 +209,6 @@ CONFIG_GLOB=y
CONFIG_GPIOLIB=y
CONFIG_GPIOLIB_IRQCHIP=y
CONFIG_GPIO_GENERIC=y
-# CONFIG_GPIO_MPC8XXX is not set
CONFIG_GPIO_MXC=y
CONFIG_GPIO_PCA953X=y
CONFIG_GPIO_PCA953X_IRQ=y
@@ -281,8 +265,6 @@ CONFIG_HAVE_SMP=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_UID16=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_HZ_FIXED=0
CONFIG_HZ_PERIODIC=y
@@ -305,19 +287,12 @@ CONFIG_IRQ_WORK=y
CONFIG_JBD2=y
# CONFIG_JFFS2_FS is not set
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_LOCK_SPIN_ON_OWNER=y
CONFIG_LZO_COMPRESS=y
CONFIG_LZO_DECOMPRESS=y
CONFIG_MARVELL_PHY=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_SYSCON=y
CONFIG_MICREL_PHY=y
@@ -338,7 +313,6 @@ CONFIG_MPILIB=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_ECC=y
CONFIG_MTD_NAND_GPMI_NAND=y
-# CONFIG_MTD_NAND_MTK is not set
# CONFIG_MTD_PHYSMAP_OF_VERSATILE is not set
CONFIG_MTD_UBI=y
CONFIG_MTD_UBI_BEB_LIMIT=20
@@ -353,10 +327,8 @@ CONFIG_MXS_DMA=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEON=y
CONFIG_NET_DSA=y
-# CONFIG_B53 is not set
CONFIG_NET_DSA_MV88E6XXX=y
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
-# CONFIG_NET_DSA_QCA8K is not set
CONFIG_NET_DSA_TAG_DSA=y
CONFIG_NET_DSA_TAG_EDSA=y
CONFIG_NET_FLOW_LIMIT=y
@@ -386,18 +358,14 @@ CONFIG_OUTER_CACHE=y
CONFIG_OUTER_CACHE_SYNC=y
CONFIG_PADATA=y
CONFIG_PAGE_OFFSET=0x80000000
-# CONFIG_PARAVIRT is not set
-# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
CONFIG_PCI=y
CONFIG_PCIEAER=y
CONFIG_PCIEPORTBUS=y
CONFIG_PCIE_DW=y
-CONFIG_PCIE_DW_PLAT=y
+CONFIG_PCIE_PME=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCI_DOMAINS_GENERIC=y
CONFIG_PCI_IMX6=y
-CONFIG_PCI_MSI=y
-CONFIG_PCI_MSI_IRQ_DOMAIN=y
CONFIG_PERF_USE_VMALLOC=y
CONFIG_PGTABLE_LEVELS=2
CONFIG_PHYLIB=y
@@ -423,9 +391,6 @@ CONFIG_PTP_1588_CLOCK=y
CONFIG_PWM=y
CONFIG_PWM_IMX=y
CONFIG_PWM_SYSFS=y
-CONFIG_PWRSEQ_EMMC=y
-CONFIG_PWRSEQ_SIMPLE=y
-# CONFIG_QORIQ_THERMAL is not set
CONFIG_RAS=y
CONFIG_RATIONAL=y
CONFIG_RCU_STALL_COMMON=y
@@ -442,9 +407,6 @@ CONFIG_REGULATOR_ANATOP=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_REGULATOR_LTC3676=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_RPS=y
CONFIG_RTC_CLASS=y
diff --git a/target/linux/imx6/patches-4.9/200-disable-msi.patch b/target/linux/imx6/patches-4.9/200-disable-msi.patch
new file mode 100644
index 0000000..290147c
--- /dev/null
+++ b/target/linux/imx6/patches-4.9/200-disable-msi.patch
@@ -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
+
More information about the lede-commits
mailing list