Commit-ID: 482e5c8f2ae74b7aa6b75cc7e43db14ef1fcdb0f Gitweb: http://git.kernel.org/tip/482e5c8f2ae74b7aa6b75cc7e43db14ef1fcdb0f Author: Will Deacon <will.deacon@xxxxxxx> AuthorDate: Wed, 1 May 2013 16:50:11 +0100 Committer: Pekka Enberg <penberg@xxxxxxxxxx> CommitDate: Tue, 14 May 2013 14:18:51 +0300 kvm tools: ioport: add arch callback to remap IRQ lines for ioport devices If an architecture other than x86 wants to make use of ioport devices, the interrupt lines will likely need remapping from their fixed values. This patch allows an architecture callback, ioport__map_irq, to map interrupts as appropriate. Signed-off-by: Will Deacon <will.deacon@xxxxxxx> Signed-off-by: Pekka Enberg <penberg@xxxxxxxxxx> --- tools/kvm/arm/ioport.c | 7 +++++++ tools/kvm/hw/serial.c | 1 + tools/kvm/include/kvm/ioport.h | 1 + tools/kvm/powerpc/ioport.c | 4 ++++ tools/kvm/x86/ioport.c | 4 ++++ 5 files changed, 17 insertions(+) diff --git a/tools/kvm/arm/ioport.c b/tools/kvm/arm/ioport.c index 3c03fa0..74ee10e 100644 --- a/tools/kvm/arm/ioport.c +++ b/tools/kvm/arm/ioport.c @@ -1,5 +1,12 @@ #include "kvm/ioport.h" +#include "arm-common/gic.h" + void ioport__setup_arch(struct kvm *kvm) { } + +void ioport__map_irq(u8 *irq) +{ + *irq = gic__alloc_irqnum(); +} diff --git a/tools/kvm/hw/serial.c b/tools/kvm/hw/serial.c index 18bf569..384ee37 100644 --- a/tools/kvm/hw/serial.c +++ b/tools/kvm/hw/serial.c @@ -402,6 +402,7 @@ static int serial8250__device_init(struct kvm *kvm, struct serial8250_device *de { int r; + ioport__map_irq(&dev->irq); r = ioport__register(kvm, dev->iobase, &serial8250_ops, 8, NULL); kvm__irq_line(kvm, dev->irq, 0); diff --git a/tools/kvm/include/kvm/ioport.h b/tools/kvm/include/kvm/ioport.h index 6660acb..1556dd3 100644 --- a/tools/kvm/include/kvm/ioport.h +++ b/tools/kvm/include/kvm/ioport.h @@ -30,6 +30,7 @@ struct ioport_operations { }; void ioport__setup_arch(struct kvm *kvm); +void ioport__map_irq(u8 *irq); int ioport__register(struct kvm *kvm, u16 port, struct ioport_operations *ops, int count, void *param); diff --git a/tools/kvm/powerpc/ioport.c b/tools/kvm/powerpc/ioport.c index 264fb7e..58dc625 100644 --- a/tools/kvm/powerpc/ioport.c +++ b/tools/kvm/powerpc/ioport.c @@ -16,3 +16,7 @@ void ioport__setup_arch(struct kvm *kvm) { /* PPC has no legacy ioports to set up */ } + +void ioport__map_irq(u8 *irq) +{ +} diff --git a/tools/kvm/x86/ioport.c b/tools/kvm/x86/ioport.c index 824ef25..03a1286 100644 --- a/tools/kvm/x86/ioport.c +++ b/tools/kvm/x86/ioport.c @@ -65,6 +65,10 @@ static struct ioport_operations ps2_control_a_ops = { .io_out = dummy_io_out, }; +void ioport__map_irq(u8 *irq) +{ +} + void ioport__setup_arch(struct kvm *kvm) { /* Legacy ioport setup */ -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html