From: Oleksandr Andrushchenko <oleksandr_andrushche...@epam.com> For some use cases when Xen framebuffer/input backend is not a part of Qemu it is required to disable it, because of conflicting access to input/display devices. Introduce additional configuration option for explicit input/display control.
Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushche...@epam.com> --- configure | 18 ++++++++++++++++++ hw/display/Makefile.objs | 2 +- hw/xen/xen_backend.c | 2 ++ hw/xenpv/xen_machine_pv.c | 4 ++++ 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 476210b1b93f..b805cb908f03 100755 --- a/configure +++ b/configure @@ -220,6 +220,7 @@ xen="" xen_ctrl_version="" xen_pv_domain_build="no" xen_pci_passthrough="" +xen_fb_backend="" linux_aio="" cap_ng="" attr="" @@ -909,6 +910,10 @@ for opt do ;; --enable-xen-pv-domain-build) xen_pv_domain_build="yes" ;; + --disable-xen-fb-backend) xen_fb_backend="no" + ;; + --enable-xen-fb-backend) xen_fb_backend="yes" + ;; --disable-brlapi) brlapi="no" ;; --enable-brlapi) brlapi="yes" @@ -1368,6 +1373,7 @@ disabled with --disable-FEATURE, default is enabled if available: virtfs VirtFS xen xen backend driver support xen-pci-passthrough + xen-fb-backend framebuffer/input backend support brlapi BrlAPI (Braile) curl curl connectivity fdt fdt device tree @@ -2213,6 +2219,15 @@ if test "$xen_pv_domain_build" = "yes" && "which requires Xen support." fi +if test "$xen_fb_backend" != "no"; then + if test "$xen" = "yes"; then + xen_fb_backend=yes + else + error_exit "User requested feature Xen framebufer backend support" \ + " but this feature requires Xen support." + fi +fi + ########################################## # Sparse probe if test "$sparse" != "no" ; then @@ -5444,6 +5459,9 @@ if test "$xen" = "yes" ; then if test "$xen_pv_domain_build" = "yes" ; then echo "CONFIG_XEN_PV_DOMAIN_BUILD=y" >> $config_host_mak fi + if test "$xen_fb_backend" = "yes" ; then + echo "CONFIG_XEN_FB_BACKEND=y" >> $config_host_mak + fi fi if test "$linux_aio" = "yes" ; then echo "CONFIG_LINUX_AIO=y" >> $config_host_mak diff --git a/hw/display/Makefile.objs b/hw/display/Makefile.objs index 063889beaf4a..f5ec97ed4f48 100644 --- a/hw/display/Makefile.objs +++ b/hw/display/Makefile.objs @@ -5,7 +5,7 @@ common-obj-$(CONFIG_JAZZ_LED) += jazz_led.o common-obj-$(CONFIG_PL110) += pl110.o common-obj-$(CONFIG_SSD0303) += ssd0303.o common-obj-$(CONFIG_SSD0323) += ssd0323.o -common-obj-$(CONFIG_XEN_BACKEND) += xenfb.o +common-obj-$(CONFIG_XEN_FB_BACKEND) += xenfb.o common-obj-$(CONFIG_VGA_PCI) += vga-pci.o common-obj-$(CONFIG_VGA_ISA) += vga-isa.o diff --git a/hw/xen/xen_backend.c b/hw/xen/xen_backend.c index d1190041ae12..5146cbba6ca5 100644 --- a/hw/xen/xen_backend.c +++ b/hw/xen/xen_backend.c @@ -582,7 +582,9 @@ void xen_be_register_common(void) xen_set_dynamic_sysbus(); xen_be_register("console", &xen_console_ops); +#ifdef CONFIG_XEN_FB_BACKEND xen_be_register("vkbd", &xen_kbdmouse_ops); +#endif xen_be_register("qdisk", &xen_blkdev_ops); #ifdef CONFIG_USB_LIBUSB xen_be_register("qusb", &xen_usb_ops); diff --git a/hw/xenpv/xen_machine_pv.c b/hw/xenpv/xen_machine_pv.c index 79aef4ecc37b..b731344c3f0a 100644 --- a/hw/xenpv/xen_machine_pv.c +++ b/hw/xenpv/xen_machine_pv.c @@ -68,7 +68,9 @@ static void xen_init_pv(MachineState *machine) } xen_be_register_common(); +#ifdef CONFIG_XEN_FB_BACKEND xen_be_register("vfb", &xen_framebuffer_ops); +#endif xen_be_register("qnic", &xen_netdev_ops); /* configure framebuffer */ @@ -95,8 +97,10 @@ static void xen_init_pv(MachineState *machine) /* config cleanup hook */ atexit(xen_config_cleanup); +#ifdef CONFIG_XEN_FB_BACKEND /* setup framebuffer */ xen_init_display(xen_domid); +#endif } static void xenpv_machine_init(MachineClass *mc) -- 2.7.4