linux/include
Thomas Gleixner 255ba9587f UPSTREAM: genirq: Handle NOAUTOEN interrupt setup proper
If an interrupt is marked NOAUTOEN then request_irq() installs the action,
but does not enable the interrupt via startup_irq().  The interrupt is
enabled via enable_irq() later from the driver. enable_irq() calls
irq_enable().

That means that for interrupts which have a irq_startup() callback this
callback is never invoked. Neither is irq_domain_activate_irq() invoked for
such interrupts.

If an interrupt depends on irq_startup() or irq_domain_activate_irq() then
the enable via irq_enable() is not enough.

Add a status flag IRQD_IRQ_STARTED_UP and use this to select the proper
mechanism in enable_irq(). Use the flag also to avoid pointless calls into
the low level functions.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Cc: dianders@chromium.org
Cc: jeffy <jeffy.chen@rock-chips.com>
Cc: Brian Norris <briannorris@chromium.org>
Cc: tfiga@chromium.org
Link: http://lkml.kernel.org/r/20170531100212.130986205@linutronix.de

(cherry picked from commit 201d7f47f3)

Conflicts:
	include/linux/irq.h
	[due to missing upstream patches:
	  08d85f3 irqdomain: Avoid activating interrupts more than once
	  1a3d28a UPSTREAM: genirq: Introduce IRQD_AFFINITY_MANAGED flag
	  6297714 UPSTREAM: irq: Privatize irq_common_data::state_use_accessors]

Change-Id: Ie8d492c694171fa81e3df61e8561bec160ad37bb
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2017-12-26 11:12:46 +08:00
..
acpi UPSTREAM: device property: Avoid potential dereferences of invalid pointers 2017-08-30 14:50:28 +08:00
asm-generic Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2017-12-01 11:04:13 +08:00
clocksource
crypto Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2017-04-23 12:02:14 +08:00
drm drm: bridge: dw-hdmi: introduce mpll_cfg_420 2017-12-11 15:27:58 +08:00
dt-bindings clk/rockchip: add cru support for rk618 2017-12-21 10:30:28 +08:00
keys
kvm
linux UPSTREAM: genirq: Handle NOAUTOEN interrupt setup proper 2017-12-26 11:12:46 +08:00
math-emu
media camera: rockchip: camsys_drv: v0.0x22.7 camsys_head: v0.e.0 2017-12-07 15:39:42 +08:00
memory
misc
net BACKPORT: tcp/dccp: drop SYN packets if accept queue is full 2017-12-21 10:42:52 +08:00
pcmcia
ras
rdma RDMA/core: Fix incorrect structure packing for booleans 2017-03-12 06:37:29 +01:00
rxrpc
scsi scsi: libiscsi: add lock around task lists to fix list corruption regression 2017-03-26 12:13:19 +02:00
soc drm/rockchip: Avoid multiple definition 2017-12-20 14:51:39 +08:00
sound Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2017-12-01 11:04:13 +08:00
target target/iscsi: Fix iSCSI task reassignment handling 2017-11-18 11:11:07 +01:00
trace Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2017-12-01 11:04:13 +08:00
uapi Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2017-12-01 11:04:13 +08:00
video
xen fix xen_swiotlb_dma_mmap prototype 2017-10-05 09:41:48 +02:00
Kbuild