aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorPhilippe Mathieu-Daudé <philmd@linaro.org>2024-05-10 12:18:00 +0200
committerPhilippe Mathieu-Daudé <philmd@linaro.org>2024-06-04 11:53:43 +0200
commit6ece1df96629de8e2381f06b876ceeb5fade758a (patch)
tree1f11fd214e5ad7cafbf22d0acba7f727d9fc4dc8 /hw
parentd76795ea3dd412e7f4e293672170e3292ef0f7a5 (diff)
downloadqemu-6ece1df96629de8e2381f06b876ceeb5fade758a.zip
qemu-6ece1df96629de8e2381f06b876ceeb5fade758a.tar.gz
qemu-6ece1df96629de8e2381f06b876ceeb5fade758a.tar.bz2
hw/xen: Register framebuffer backend via xen_backend_init()
Align the framebuffer backend with the other legacy ones, register it via xen_backend_init() when '-vga xenfb' is used. It is safe because MODULE_INIT_XEN_BACKEND is called in xen_bus_realize(), long after CLI processing initialized the vga_interface_type variable. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Paul Durrant <paul@xen.org> Message-Id: <20240510104908.76908-8-philmd@linaro.org>
Diffstat (limited to 'hw')
-rw-r--r--hw/display/xenfb.c9
-rw-r--r--hw/xenpv/xen_machine_pv.c2
2 files changed, 7 insertions, 4 deletions
diff --git a/hw/display/xenfb.c b/hw/display/xenfb.c
index b6d370b..ff442ce 100644
--- a/hw/display/xenfb.c
+++ b/hw/display/xenfb.c
@@ -29,6 +29,7 @@
#include "ui/input.h"
#include "ui/console.h"
+#include "sysemu/sysemu.h"
#include "hw/xen/xen-legacy-backend.h"
#include "hw/xen/interface/io/fbif.h"
@@ -996,8 +997,12 @@ static const GraphicHwOps xenfb_ops = {
.ui_info = xenfb_ui_info,
};
-static void xen_vkbd_register_backend(void)
+static void xen_ui_register_backend(void)
{
xen_be_register("vkbd", &xen_kbdmouse_ops);
+
+ if (vga_interface_type == VGA_XENFB) {
+ xen_be_register("vfb", &xen_framebuffer_ops);
+ }
}
-xen_backend_init(xen_vkbd_register_backend);
+xen_backend_init(xen_ui_register_backend);
diff --git a/hw/xenpv/xen_machine_pv.c b/hw/xenpv/xen_machine_pv.c
index b500ce0..24395f4 100644
--- a/hw/xenpv/xen_machine_pv.c
+++ b/hw/xenpv/xen_machine_pv.c
@@ -50,8 +50,6 @@ static void xen_init_pv(MachineState *machine)
break;
}
- xen_be_register("vfb", &xen_framebuffer_ops);
-
/* configure framebuffer */
if (vga_interface_type == VGA_XENFB) {
xen_config_dev_vfb(0, "vnc");