Skip to contentSkip to conversation

support for IRQ priority drop deactivation

PATCH In review Mario Smarduch 1 participant 1 message Jun 13, 2013

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/2 support for IRQ priority drop deactivation

Updated Priority Drop/Deactivation patch -
- moved bitmap to per gic data
- moved initialization of gic irqchip eoi handler to gic_init_bases
- cleaned up the code per suggestions.
- added documentation

---
 arch/arm/kvm/Kconfig            |    8 ++
 drivers/irqchip/irq-gic.c       |  204 ++++++++++++++++++++++++++++++++++++++-
 include/linux/irqchip/arm-gic.h |    6 ++
 3 files changed, 213 insertions(+), 5 deletions(-)
arch/arm/kvm/Kconfig +8 -0
index 370e1a8..ae69e9a 100644
@@ -59,6 +59,14 @@ config KVM_ARM_VGIC
 	---help---
 	  Adds support for a hardware assisted, in-kernel GIC emulation.
 
+config KVM_ARM_INT_PRIO_DROP
+        bool "KVM support for Interrupt pass-through"
+        depends on KVM_ARM_VGIC && OF
+        default n
+        ---help---
+	  Seperates interrupt priority drop and deactivation to enable device
+	  pass-through to Guests.
+
 config KVM_ARM_TIMER
 	bool "KVM support for Architected Timers"
 	depends on KVM_ARM_VGIC && ARM_ARCH_TIMER
drivers/irqchip/irq-gic.c +199 -5

260 lines not on this page · raw message

include/linux/irqchip/arm-gic.h +6 -0
index 3e203eb..5a906c9 100644
@@ -17,6 +17,7 @@
 #define GIC_CPU_EOI			0x10
 #define GIC_CPU_RUNNINGPRI		0x14
 #define GIC_CPU_HIGHPRI			0x18
+#define GIC_CPU_DIR                     0x1000
 
 #define GIC_DIST_CTRL			0x000
 #define GIC_DIST_CTR			0x004
@@ -73,6 +74,11 @@ static inline void gic_init(unsigned int nr, int start,
 	gic_init_bases(nr, start, dist, cpu, 0, NULL);
 }
 
+/* Functions to manage interrupt pass-through via priority drop/deactivation */
+void gic_spi_set_priodrop(int);
+void gic_spi_clr_priodrop(int);
+bool gic_spi_get_priodrop(int);
+
 #endif /* __ASSEMBLY */
 
 #endif
Signature · 1 line
1.7.9.5