[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 2/3] pseries: added allocator for a block of IRQs
From: |
Alexey Kardashevskiy |
Subject: |
[Qemu-devel] [PATCH 2/3] pseries: added allocator for a block of IRQs |
Date: |
Thu, 14 Jun 2012 14:33:13 +1000 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:12.0) Gecko/20120428 Thunderbird/12.0.1 |
The patch adds a simple helper which allocates a consecutive sequence
of IRQs calling spapr_allocate_irq for each and checks that allocated
IRQs go consequently.
The patch is required for upcoming support of MSI/MSIX on POWER.
Signed-off-by: Alexey Kardashevskiy <address@hidden>
---
hw/spapr.c | 19 +++++++++++++++++++
hw/spapr.h | 1 +
2 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/hw/spapr.c b/hw/spapr.c
index 2e0b4b8..ef6ffcb 100644
--- a/hw/spapr.c
+++ b/hw/spapr.c
@@ -113,6 +113,25 @@ qemu_irq spapr_allocate_irq(uint32_t hint, uint32_t
*irq_num,
return qirq;
}
+/* Allocate block of consequtive IRQs, returns a number of the first */
+int spapr_allocate_irq_block(uint32_t num, enum xics_irq_type type)
+{
+ int i, ret;
+ uint32_t irq = -1;
+
+ for (i = 0; i < num; ++i) {
+ if (!spapr_allocate_irq(0, &irq, type)) {
+ return -1;
+ }
+ if (0 == i) {
+ ret = irq;
+ } else if (ret + i != irq) {
+ return -1;
+ }
+ }
+ return ret;
+}
+
static int spapr_set_associativity(void *fdt, sPAPREnvironment *spapr)
{
int ret = 0, offset;
diff --git a/hw/spapr.h b/hw/spapr.h
index 502393a..408b470 100644
--- a/hw/spapr.h
+++ b/hw/spapr.h
@@ -289,6 +289,7 @@ target_ulong spapr_hypercall(CPUPPCState *env, target_ulong
opcode,
qemu_irq spapr_allocate_irq(uint32_t hint, uint32_t *irq_num,
enum xics_irq_type type);
+int spapr_allocate_irq_block(uint32_t num, enum xics_irq_type type);
static inline qemu_irq spapr_allocate_msi(uint32_t hint, uint32_t *irq_num)
{
--
1.7.7.3
- Re: [Qemu-devel] [PATCH] msi/msix: added public API to set/get MSI message address, and data, (continued)
- Re: [Qemu-devel] [PATCH] msi/msix: added public API to set/get MSI message address, and data, Jan Kiszka, 2012/06/21
- Re: [Qemu-devel] [PATCH] msi/msix: added public API to set/get MSI message address, and data, Alexey Kardashevskiy, 2012/06/21
- Re: [Qemu-devel] [PATCH] msi/msix: added public API to set/get MSI message address, and data, Jan Kiszka, 2012/06/21
- Re: [Qemu-devel] [PATCH] msi/msix: added public API to set/get MSI message address, and data, Alexey Kardashevskiy, 2012/06/21
- Re: [Qemu-devel] [PATCH] msi/msix: added public API to set/get MSI message address, and data, Jan Kiszka, 2012/06/21
- [Qemu-devel] [PATCH] msi/msix: added API to set MSI message address and data, Alexey Kardashevskiy, 2012/06/21
- Re: [Qemu-devel] [PATCH] msi/msix: added API to set MSI message address and data, Jan Kiszka, 2012/06/21
- Re: [Qemu-devel] [PATCH] msi/msix: added API to set MSI message address and data, Alexey Kardashevskiy, 2012/06/21
- [Qemu-devel] [PATCH] msi/msix: added API to set MSI message address and data, Alexey Kardashevskiy, 2012/06/21
- Re: [Qemu-devel] [PATCH] msi/msix: added public API to set/get MSI message address, and data, Alex Williamson, 2012/06/21
[Qemu-devel] [PATCH 2/3] pseries: added allocator for a block of IRQs,
Alexey Kardashevskiy <=
[Qemu-devel] [PATCH 3/3] pseries pci: added MSI/MSIX support, Alexey Kardashevskiy, 2012/06/14
Re: [Qemu-devel] [PATCH 0/3] adding MSI/MSIX for PCI on POWER, Alexey Kardashevskiy, 2012/06/14
Re: [Qemu-devel] [PATCH 0/3] adding MSI/MSIX for PCI on POWER, Alexander Graf, 2012/06/27