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


Reply via email to