summary refs log tree commit diff stats
path: root/hw/spapr_vty.c
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2011-12-12 18:24:28 +0000
committerAlexander Graf <agraf@suse.de>2012-01-03 15:49:11 +0100
commit1fc02533e73ad66f756f07efdf80fa9bef5afbc8 (patch)
tree4b82e136708cf7facb574811e8d617ef67f4d016 /hw/spapr_vty.c
parent157feeadbaec09fe4dca539a24f6f6d327d6eeb6 (diff)
downloadfocaccia-qemu-1fc02533e73ad66f756f07efdf80fa9bef5afbc8.tar.gz
focaccia-qemu-1fc02533e73ad66f756f07efdf80fa9bef5afbc8.zip
pseries: Remove hcalls callback
For forgotten historical reasons, PAPR hypercalls for specific virtual IO
devices (oh which there are quite a number) are registered via a callback
in the VIOsPAPRDeviceInfo structure.

This is kind of ugly, so this patch instead registers hypercalls from
device_init() functions for each device type.  This works just as well,
and is cleaner.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'hw/spapr_vty.c')
-rw-r--r--hw/spapr_vty.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/hw/spapr_vty.c b/hw/spapr_vty.c
index f23cc36231..e2173142d8 100644
--- a/hw/spapr_vty.c
+++ b/hw/spapr_vty.c
@@ -135,18 +135,11 @@ void spapr_vty_create(VIOsPAPRBus *bus, uint32_t reg, CharDriverState *chardev)
     qdev_init_nofail(dev);
 }
 
-static void vty_hcalls(VIOsPAPRBus *bus)
-{
-    spapr_register_hypercall(H_PUT_TERM_CHAR, h_put_term_char);
-    spapr_register_hypercall(H_GET_TERM_CHAR, h_get_term_char);
-}
-
 static VIOsPAPRDeviceInfo spapr_vty = {
     .init = spapr_vty_init,
     .dt_name = "vty",
     .dt_type = "serial",
     .dt_compatible = "hvterm1",
-    .hcalls = vty_hcalls,
     .qdev.name = "spapr-vty",
     .qdev.size = sizeof(VIOsPAPRVTYDevice),
     .qdev.props = (Property[]) {
@@ -182,5 +175,7 @@ static VIOsPAPRDevice *vty_lookup(sPAPREnvironment *spapr, target_ulong reg)
 static void spapr_vty_register(void)
 {
     spapr_vio_bus_register_withprop(&spapr_vty);
+    spapr_register_hypercall(H_PUT_TERM_CHAR, h_put_term_char);
+    spapr_register_hypercall(H_GET_TERM_CHAR, h_get_term_char);
 }
 device_init(spapr_vty_register);