[PATCH v2 2/5] kvmtool: replace GIC specific IRQ type #defines

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



We had GIC specific defines for the IRQ type identifiers in kvmtool.
But In fact the specification of being a level or edge interrupt
is quite generic, with the GIC binding using the generic Linux
defines.
So lets replace the GIC specific names in favour of the general
defines used in Linux.

Signed-off-by: Andre Przywara <andre.przywara@xxxxxxx>
---
 tools/kvm/arm/fdt.c                    |    2 +-
 tools/kvm/arm/include/arm-common/gic.h |    5 -----
 tools/kvm/arm/pci.c                    |    2 +-
 tools/kvm/arm/timer.c                  |    8 ++++----
 tools/kvm/include/kvm/fdt.h            |    9 +++++++++
 5 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/tools/kvm/arm/fdt.c b/tools/kvm/arm/fdt.c
index 4a33846..24f030f 100644
--- a/tools/kvm/arm/fdt.c
+++ b/tools/kvm/arm/fdt.c
@@ -79,7 +79,7 @@ static void generate_irq_prop(void *fdt, u8 irq)
 	u32 irq_prop[] = {
 		cpu_to_fdt32(GIC_FDT_IRQ_TYPE_SPI),
 		cpu_to_fdt32(irq - GIC_SPI_IRQ_BASE),
-		cpu_to_fdt32(GIC_FDT_IRQ_FLAGS_EDGE_LO_HI),
+		cpu_to_fdt32(IRQ_TYPE_EDGE_RISING),
 	};
 
 	_FDT(fdt_property(fdt, "interrupts", irq_prop, sizeof(irq_prop)));
diff --git a/tools/kvm/arm/include/arm-common/gic.h b/tools/kvm/arm/include/arm-common/gic.h
index 850edc7..5a36f2c 100644
--- a/tools/kvm/arm/include/arm-common/gic.h
+++ b/tools/kvm/arm/include/arm-common/gic.h
@@ -10,11 +10,6 @@
 #define GIC_FDT_IRQ_TYPE_SPI		0
 #define GIC_FDT_IRQ_TYPE_PPI		1
 
-#define GIC_FDT_IRQ_FLAGS_EDGE_LO_HI	1
-#define GIC_FDT_IRQ_FLAGS_EDGE_HI_LO	2
-#define GIC_FDT_IRQ_FLAGS_LEVEL_HI	4
-#define GIC_FDT_IRQ_FLAGS_LEVEL_LO	8
-
 #define GIC_FDT_IRQ_PPI_CPU_SHIFT	8
 #define GIC_FDT_IRQ_PPI_CPU_MASK	(0xff << GIC_FDT_IRQ_PPI_CPU_SHIFT)
 
diff --git a/tools/kvm/arm/pci.c b/tools/kvm/arm/pci.c
index 9f4dabc..99a8130 100644
--- a/tools/kvm/arm/pci.c
+++ b/tools/kvm/arm/pci.c
@@ -87,7 +87,7 @@ void pci__generate_fdt_nodes(void *fdt, u32 gic_phandle)
 			.gic_irq = {
 				.type	= cpu_to_fdt32(GIC_FDT_IRQ_TYPE_SPI),
 				.num	= cpu_to_fdt32(irq - GIC_SPI_IRQ_BASE),
-				.flags	= cpu_to_fdt32(GIC_FDT_IRQ_FLAGS_EDGE_LO_HI),
+				.flags	= cpu_to_fdt32(IRQ_TYPE_EDGE_RISING),
 			},
 		};
 
diff --git a/tools/kvm/arm/timer.c b/tools/kvm/arm/timer.c
index 209251e..29991da 100644
--- a/tools/kvm/arm/timer.c
+++ b/tools/kvm/arm/timer.c
@@ -15,19 +15,19 @@ void timer__generate_fdt_nodes(void *fdt, struct kvm *kvm, int *irqs)
 	u32 irq_prop[] = {
 		cpu_to_fdt32(GIC_FDT_IRQ_TYPE_PPI),
 		cpu_to_fdt32(irqs[0]),
-		cpu_to_fdt32(cpu_mask | GIC_FDT_IRQ_FLAGS_EDGE_LO_HI),
+		cpu_to_fdt32(cpu_mask | IRQ_TYPE_EDGE_RISING),
 
 		cpu_to_fdt32(GIC_FDT_IRQ_TYPE_PPI),
 		cpu_to_fdt32(irqs[1]),
-		cpu_to_fdt32(cpu_mask | GIC_FDT_IRQ_FLAGS_EDGE_LO_HI),
+		cpu_to_fdt32(cpu_mask | IRQ_TYPE_EDGE_RISING),
 
 		cpu_to_fdt32(GIC_FDT_IRQ_TYPE_PPI),
 		cpu_to_fdt32(irqs[2]),
-		cpu_to_fdt32(cpu_mask | GIC_FDT_IRQ_FLAGS_EDGE_LO_HI),
+		cpu_to_fdt32(cpu_mask | IRQ_TYPE_EDGE_RISING),
 
 		cpu_to_fdt32(GIC_FDT_IRQ_TYPE_PPI),
 		cpu_to_fdt32(irqs[3]),
-		cpu_to_fdt32(cpu_mask | GIC_FDT_IRQ_FLAGS_EDGE_LO_HI),
+		cpu_to_fdt32(cpu_mask | IRQ_TYPE_EDGE_RISING),
 	};
 
 	_FDT(fdt_begin_node(fdt, "timer"));
diff --git a/tools/kvm/include/kvm/fdt.h b/tools/kvm/include/kvm/fdt.h
index 19f95ac..dee9a71 100644
--- a/tools/kvm/include/kvm/fdt.h
+++ b/tools/kvm/include/kvm/fdt.h
@@ -7,6 +7,15 @@
 
 #define FDT_MAX_SIZE	0x10000
 
+/* Those definitions are generic FDT values for specifying IRQ
+ * types and are used in the Linux kernel internally as well as in
+ * the dts files and their documentation.
+ */
+#define IRQ_TYPE_EDGE_RISING	1
+#define IRQ_TYPE_EDGE_FALLING	2
+#define IRQ_TYPE_LEVEL_HIGH	4
+#define IRQ_TYPE_LEVEL_LOW	8
+
 /* Helper for the various bits of code that generate FDT nodes */
 #define _FDT(exp)							\
 	do {								\
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux