linux/include
Christoffer Dall fe8a7fe10d arm/arm64: KVM: vgic: Improve handling of GICD_I{CS}PENDRn
Writes to GICD_ISPENDRn and GICD_ICPENDRn are currently not handled
correctly for level-triggered interrupts.  The spec states that for
level-triggered interrupts, writes to the GICD_ISPENDRn activate the
output of a flip-flop which is in turn or'ed with the actual input
interrupt signal.  Correspondingly, writes to GICD_ICPENDRn simply
deactivates the output of that flip-flop, but does not (of course) affect
the external input signal.  Reads from GICC_IAR will also deactivate the
flip-flop output.

This requires us to track the state of the level-input separately from
the state in the flip-flop.  We therefore introduce two new variables on
the distributor struct to track these two states.  Astute readers may
notice that this is introducing more state than required (because an OR
of the two states gives you the pending state), but the remaining vgic
code uses the pending bitmap for optimized operations to figure out, at
the end of the day, if an interrupt is pending or not on the distributor
side.  Refactoring the code to consider the two state variables all the
places where we currently access the precomputed pending value, did not
look pretty.

Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
(cherry picked from commit faa1b46c3e)
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
2014-10-02 17:19:20 +02:00
..
acpi ACPI: Try harder to resolve _ADR collisions for bridges 2013-08-29 09:47:29 -07:00
asm-generic This is the 3.10.13 stable release 2014-10-02 17:10:08 +02:00
clocksource clocksource: arch_timer: use virtual counters 2014-05-14 12:17:21 +01:00
crypto
drm Merge branch 'drm-radeon-sun-hainan' of git://people.freedesktop.org/~airlied/linux 2013-05-21 08:50:57 -07:00
dt-bindings
keys
kvm arm/arm64: KVM: vgic: Improve handling of GICD_I{CS}PENDRn 2014-10-02 17:19:20 +02:00
linux KVM: VFIO: register kvm_device_ops dynamically 2014-10-02 17:19:18 +02:00
math-emu
media media: v4l2: added missing mutex.h include to v4l2-ctrls.h 2013-09-26 17:18:26 -07:00
memory
misc
net net_sched: restore "linklayer atm" handling 2013-09-14 06:54:55 -07:00
pcmcia
ras
rdma
rxrpc
scsi Merge branch 'postmerge' into for-linus 2013-05-10 07:54:01 -07:00
sound ASoC: dapm: Treat DAI widgets like AIF widgets for power 2013-06-07 15:54:50 +01:00
target iscsi-target: Fix iscsit_sequence_cmd reject handling for iser 2013-08-04 16:51:17 +08:00
trace KVM: Move more code under CONFIG_HAVE_KVM_IRQFD 2014-10-02 17:19:10 +02:00
uapi KVM: device: add simple registration mechanism for kvm_device_ops 2014-10-02 17:19:18 +02:00
video Merge branch 'fbdev-3.10-fixes' of git://gitorious.org/linux-omap-dss2/linux into linux-fbdev/for-3.10-fixes 2013-05-29 17:00:34 +08:00
xen xenbus: delay xenbus frontend resume if xenstored is not running 2013-05-29 09:04:19 -04:00
Kbuild