[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH 1/3] xics: added end-of-interrupt (EOI) handlers
From: |
Alexey Kardashevskiy |
Subject: |
[Qemu-ppc] [PATCH 1/3] xics: added end-of-interrupt (EOI) handlers |
Date: |
Mon, 23 Jul 2012 15:32:45 +1000 |
The patch adds EOI handler to process h_eoi RTAS call correctly
for PCI legacy interrupts.
This functionality is going to be used in VFIO later.
Signed-off-by: Alexey Kardashevskiy <address@hidden>
---
hw/xics.c | 13 +++++++++++++
hw/xics.h | 4 ++++
2 files changed, 17 insertions(+)
diff --git a/hw/xics.c b/hw/xics.c
index 668a0d6..d36d62c 100644
--- a/hw/xics.c
+++ b/hw/xics.c
@@ -170,6 +170,7 @@ struct ics_irq_state {
int sent:1;
int rejected:1;
int masked_pending:1;
+ NotifierList eoi_notifier;
};
struct ics_state {
@@ -309,6 +310,8 @@ static void ics_eoi(struct ics_state *ics, int nr)
if (irq->type == XICS_LSI) {
irq->sent = 0;
}
+
+ notifier_list_notify(&irq->eoi_notifier, NULL);
}
/*
@@ -536,6 +539,7 @@ struct icp_state *xics_system_init(int nr_irqs)
for (i = 0; i < nr_irqs; i++) {
ics->irqs[i].priority = 0xff;
ics->irqs[i].saved_priority = 0xff;
+ notifier_list_init(&ics->irqs[i].eoi_notifier);
}
ics->qirqs = qemu_allocate_irqs(ics_set_irq, ics, nr_irqs);
@@ -552,3 +556,12 @@ struct icp_state *xics_system_init(int nr_irqs)
return icp;
}
+
+void xics_add_eoi_notifier(Notifier *notify, uint32_t srcno)
+{
+ struct ics_state *ics = spapr->icp->ics;
+ struct ics_irq_state *irq = &ics->irqs[srcno - ics->offset];
+
+ notifier_list_add(&irq->eoi_notifier, notify);
+}
+
diff --git a/hw/xics.h b/hw/xics.h
index 2080159..ca75fac 100644
--- a/hw/xics.h
+++ b/hw/xics.h
@@ -27,6 +27,8 @@
#if !defined(__XICS_H__)
#define __XICS_H__
+#include "notify.h"
+
#define XICS_IPI 0x2
struct icp_state;
@@ -41,4 +43,6 @@ qemu_irq xics_assign_irq(struct icp_state *icp, int irq,
struct icp_state *xics_system_init(int nr_irqs);
+void xics_add_eoi_notifier(Notifier *notify, uint32_t srcno);
+
#endif /* __XICS_H__ */
--
1.7.10.4
- Re: [Qemu-ppc] [PATCH 0/2] RFC: powerpc-vfio: adding support, (continued)
- Re: [Qemu-ppc] [PATCH 0/2] RFC: powerpc-vfio: adding support, Alex Williamson, 2012/07/11
- Re: [Qemu-ppc] [PATCH 0/2] RFC: powerpc-vfio: adding support, Alexey Kardashevskiy, 2012/07/12
- Re: [Qemu-ppc] [PATCH 0/2] RFC: powerpc-vfio: adding support, Alex Williamson, 2012/07/12
- Re: [Qemu-ppc] [PATCH 0/2] RFC: powerpc-vfio: adding support, Alexey Kardashevskiy, 2012/07/12
- Re: [Qemu-ppc] [PATCH 0/2] RFC: powerpc-vfio: adding support, Alex Williamson, 2012/07/12
- Re: [Qemu-ppc] [PATCH 0/2] RFC: powerpc-vfio: adding support, Alexey Kardashevskiy, 2012/07/12
- Re: [Qemu-ppc] [PATCH 0/2] RFC: powerpc-vfio: adding support, Alex Williamson, 2012/07/12
- Re: [Qemu-ppc] [PATCH 0/2] RFC: powerpc-vfio: adding support, Alexey Kardashevskiy, 2012/07/12
- Re: [Qemu-ppc] [PATCH 0/2] RFC: powerpc-vfio: adding support, Alexey Kardashevskiy, 2012/07/15
- [Qemu-ppc] [PATCH 0/3] vfio-pci: reworking end-of-interrupt, Alexey Kardashevskiy, 2012/07/23
- [Qemu-ppc] [PATCH 1/3] xics: added end-of-interrupt (EOI) handlers,
Alexey Kardashevskiy <=
- [Qemu-ppc] [PATCH 2/3] ioapic: removed obsolete ioapic_remove_gsi_eoi_notifier, Alexey Kardashevskiy, 2012/07/23
- [Qemu-ppc] [PATCH 3/3] vfio-pci: rework of EOI, Alexey Kardashevskiy, 2012/07/23
[Qemu-ppc] [PATCH] RFC: vfio-powerpc: added VFIO support (v2), Alexey Kardashevskiy, 2012/07/12
Re: [Qemu-ppc] [PATCH] RFC: vfio-powerpc: added VFIO support (v2), Scott Wood, 2012/07/12
Re: [Qemu-ppc] [PATCH] RFC: vfio-powerpc: added VFIO support (v2), Alex Williamson, 2012/07/12