linux_dsm_epyc7002/arch/arm
Linus Walleij dcf5907e0e ARM: dts: MSM8660 remove flags from SPMI/MPP IRQs
The Qualcomm SPMI GPIO and MPP lines are problematic: the
are fetched from the main MFD driver with platform_get_irq()
which means that at this point they will all be assigned the
flags set up for the interrupts in the device tree.

That is problematic since these are flagged as rising edge
and an this point the interrupt descriptor is assigned a
rising edge, while the only thing the GPIO/MPP drivers really
do is issue irq_get_irqchip_state() on the line to read it
out and to provide a .to_irq() helper for *other* IRQ
consumers.

If another device tree node tries to flag the same IRQ
for use as something else than rising edge, the kernel
irqdomain core will protest like this:

  type mismatch, failed to map hwirq-NN for <FOO>!

Which is what happens when the device tree defines two
contradictory flags for the same interrupt line.

To work around this and alleviate the problem, assign 0
as flag for the interrupts taken by the PM GPIO and MPP
drivers. This will lead to the flag being unset, and a
second consumer requesting rising, falling, both or level
interrupts will be respected. This is what the qcom-pm*.dtsi
files already do.

Switched to using the symbolic name IRQ_TYPE_NONE so that
we get this more readable.

This misconfiguration was caused by a copy/pasting the
APQ8064 set-up, the latter has been fixed in a separate
patch.

Tested with one of the SPMI GPIOs: after this I can
successfully request one of these GPIOs as falling edge
from the device tree.

Fixes: 0840ea9e44 ("ARM: dts: add GPIO and MPP to MSM8660 PMIC")
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Stephen Boyd <sboyd@codeaurora.org>
Cc: Björn Andersson <bjorn.andersson@linaro.org>
Cc: Ivan T. Ivanov <ivan.ivanov@linaro.org>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Andy Gross <andy.gross@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
2016-08-23 23:05:56 -05:00
..
boot ARM: dts: MSM8660 remove flags from SPMI/MPP IRQs 2016-08-23 23:05:56 -05:00
common dma-mapping: use unsigned long for dma_attrs 2016-08-04 08:50:07 -04:00
configs ARM: SoC defconfig updates for v4.8 2016-08-01 18:30:44 -04:00
crypto
firmware
include dma-mapping: use unsigned long for dma_attrs 2016-08-04 08:50:07 -04:00
kernel arm: jump label may reference text in __exit 2016-08-04 08:50:07 -04:00
kvm KVM/ARM Changes for v4.8 - Take 2 2016-08-04 13:59:56 +02:00
lib
mach-alpine
mach-artpec
mach-asm9260
mach-aspeed
mach-at91 ARM: SoC platform updates for v4.8 2016-08-01 18:27:08 -04:00
mach-axxia
mach-bcm ARM: DT updates for v4.8 2016-08-01 18:37:45 -04:00
mach-berlin
mach-clps711x clocksource/drivers/clps_711x: fixup for "ARM: clps711x: 2016-08-01 21:25:20 -04:00
mach-cns3xxx
mach-davinci ARM: SoC platform updates for v4.8 2016-08-01 18:27:08 -04:00
mach-digicolor
mach-dove
mach-ebsa110
mach-efm32
mach-ep93xx
mach-exynos ARM: SoC driver updates for v4.8 2016-08-01 18:36:01 -04:00
mach-footbridge
mach-gemini
mach-highbank
mach-hisi
mach-imx ARM: SoC platform updates for v4.8 2016-08-01 18:27:08 -04:00
mach-integrator treewide: replace obsolete _refok by __ref 2016-08-02 17:31:41 -04:00
mach-iop13xx
mach-iop32x
mach-iop33x
mach-ixp4xx
mach-keystone ARM: SoC defconfig updates for v4.8 2016-08-01 18:30:44 -04:00
mach-ks8695
mach-lpc18xx
mach-lpc32xx
mach-mediatek
mach-meson
mach-mmp
mach-moxart ARM: SoC cleanups for v4.8 2016-08-01 18:21:13 -04:00
mach-mv78xx0 treewide: replace obsolete _refok by __ref 2016-08-02 17:31:41 -04:00
mach-mvebu ARM: SoC cleanups for v4.8 2016-08-01 18:21:13 -04:00
mach-mxs ARM: SoC cleanups for v4.8 2016-08-01 18:21:13 -04:00
mach-netx
mach-nomadik
mach-nspire DeviceTree update for 4.8: 2016-07-30 11:32:01 -07:00
mach-omap1 ARM: SoC platform updates for v4.8 2016-08-01 18:27:08 -04:00
mach-omap2 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-08-03 07:26:11 -04:00
mach-orion5x RTC for 4.8 2016-08-05 09:48:22 -04:00
mach-oxnas
mach-picoxcell ARM: SoC cleanups for v4.8 2016-08-01 18:21:13 -04:00
mach-prima2 ARM: SoC cleanups for v4.8 2016-08-01 18:21:13 -04:00
mach-pxa RTC for 4.8 2016-08-05 09:48:22 -04:00
mach-qcom
mach-realview
mach-rockchip ARM: SoC cleanups for v4.8 2016-08-01 18:21:13 -04:00
mach-rpc
mach-s3c24xx ARM: SoC cleanups for v4.8 2016-08-01 18:21:13 -04:00
mach-s3c64xx ARM: SoC platform updates for v4.8 2016-08-01 18:27:08 -04:00
mach-s5pv210
mach-sa1100
mach-shmobile ARM: SoC platform updates for v4.8 2016-08-01 18:27:08 -04:00
mach-socfpga
mach-spear ARM: SoC cleanups for v4.8 2016-08-01 18:21:13 -04:00
mach-sti
mach-stm32
mach-sunxi
mach-tango
mach-tegra ARM: SoC cleanups for v4.8 2016-08-01 18:21:13 -04:00
mach-u300 ARM: SoC cleanups for v4.8 2016-08-01 18:21:13 -04:00
mach-uniphier
mach-ux500 ARM: SoC driver updates for v4.8 2016-08-01 18:36:01 -04:00
mach-versatile
mach-vexpress ARM: SoC cleanups for v4.8 2016-08-01 18:21:13 -04:00
mach-vt8500 ARM: SoC cleanups for v4.8 2016-08-01 18:21:13 -04:00
mach-w90x900
mach-zx
mach-zynq
mm dma-mapping: use unsigned long for dma_attrs 2016-08-04 08:50:07 -04:00
net
nwfpe
oprofile
plat-iop
plat-omap
plat-orion
plat-pxa
plat-samsung ARM: SoC platform updates for v4.8 2016-08-01 18:27:08 -04:00
plat-versatile
probes
tools
vdso
vfp
xen dma-mapping: use unsigned long for dma_attrs 2016-08-04 08:50:07 -04:00
Kconfig PCI changes for the v4.8 merge window: 2016-08-02 17:12:29 -04:00
Kconfig-nommu
Kconfig.debug
Makefile ARM: SoC platform updates for v4.8 2016-08-01 18:27:08 -04:00