aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilippe Mathieu-Daudé <f4bug@amsat.org>2018-03-08 23:39:34 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2018-03-12 16:12:48 +0100
commit72d3d8f052a19abc455ddc88efef75c407ac7c8d (patch)
tree68f668d46d499a7fc87d7b6c4b5400c80d5cbb98
parent6f6695b13638b0a4bfd9f75c022a9a7c55fb0b51 (diff)
hw/isa/superio: Add a keyboard/mouse controller (8042)
Since the PC87312 inherits this abstract model, we remove the I8042 instance in the PREP machine. Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Acked-by: David Gibson <david@gibson.dropbear.id.au> Message-Id: <20180308223946.26784-14-f4bug@amsat.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--hw/isa/isa-superio.c3
-rw-r--r--hw/ppc/prep.c1
-rw-r--r--include/hw/isa/superio.h1
3 files changed, 4 insertions, 1 deletions
diff --git a/hw/isa/isa-superio.c b/hw/isa/isa-superio.c
index 4b5e280b38..041b47bdbf 100644
--- a/hw/isa/isa-superio.c
+++ b/hw/isa/isa-superio.c
@@ -17,6 +17,7 @@
#include "sysemu/blockdev.h"
#include "chardev/char.h"
#include "hw/isa/superio.h"
+#include "hw/input/i8042.h"
#include "hw/char/serial.h"
#include "trace.h"
@@ -143,6 +144,8 @@ static void isa_superio_realize(DeviceState *dev, Error **errp)
k->floppy.get_irq(sio, 0) : -1);
}
+ /* Keyboard, mouse */
+ sio->kbc = isa_create_simple(bus, TYPE_I8042);
}
static void isa_superio_class_init(ObjectClass *oc, void *data)
diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c
index df774bd384..5c78503069 100644
--- a/hw/ppc/prep.c
+++ b/hw/ppc/prep.c
@@ -641,7 +641,6 @@ static void ppc_prep_init(MachineState *machine)
hd[2 * i],
hd[2 * i + 1]);
}
- isa_create_simple(isa_bus, TYPE_I8042);
cpu = POWERPC_CPU(first_cpu);
sysctrl->reset_irq = cpu->env.irq_inputs[PPC6xx_INPUT_HRESET];
diff --git a/include/hw/isa/superio.h b/include/hw/isa/superio.h
index e8007b9eee..2fc33bf3d3 100644
--- a/include/hw/isa/superio.h
+++ b/include/hw/isa/superio.h
@@ -30,6 +30,7 @@ typedef struct ISASuperIODevice {
ISADevice *parallel[MAX_PARALLEL_PORTS];
ISADevice *serial[MAX_SERIAL_PORTS];
ISADevice *floppy;
+ ISADevice *kbc;
} ISASuperIODevice;
typedef struct ISASuperIOFuncs {