From 018807ded328ac5df3ccff74872ca2576733dced Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@nbd.name>
Date: Thu, 12 May 2016 17:35:46 +0200
Subject: [PATCH] x86/xen_domu: enable xen drivers in the kernel config instead
 of packaging them as modules

Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
 package/kernel/linux/modules/virtual.mk  | 123 -----------------------
 target/linux/x86/xen_domu/config-default |  25 +++--
 2 files changed, 17 insertions(+), 131 deletions(-)
 delete mode 100644 package/kernel/linux/modules/virtual.mk

diff --git a/package/kernel/linux/modules/virtual.mk b/package/kernel/linux/modules/virtual.mk
deleted file mode 100644
index e18c376d3e..0000000000
--- a/package/kernel/linux/modules/virtual.mk
+++ /dev/null
@@ -1,123 +0,0 @@
-#
-# Copyright (C) 2010 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-VIRTUAL_MENU:=Virtualization Support
-
-define KernelPackage/xen-privcmd
-  SUBMENU:=$(VIRTUAL_MENU)
-  TITLE:=Xen private commands
-  DEPENDS:=@TARGET_x86_xen_domu
-  KCONFIG:=CONFIG_XEN_PRIVCMD
-  FILES:=$(LINUX_DIR)/drivers/xen/xen-privcmd.ko
-  AUTOLOAD:=$(call AutoLoad,04,xen-privcmd)
-endef
-
-define KernelPackage/xen-privcmd/description
- Kernel module for Xen private commands
-endef
-
-$(eval $(call KernelPackage,xen-privcmd))
-
-
-define KernelPackage/xen-fs
-  SUBMENU:=$(VIRTUAL_MENU)
-  TITLE:=Xen filesystem
-  DEPENDS:=@TARGET_x86_xen_domu +kmod-xen-privcmd
-  KCONFIG:= \
-  	CONFIG_XENFS \
-  	CONFIG_XEN_COMPAT_XENFS=y
-  FILES:=$(LINUX_DIR)/drivers/xen/xenfs/xenfs.ko
-  AUTOLOAD:=$(call AutoLoad,05,xenfs)
-endef
-
-define KernelPackage/xen-fs/description
- Kernel module for the Xen filesystem
-endef
-
-$(eval $(call KernelPackage,xen-fs))
-
-
-define KernelPackage/xen-evtchn
-  SUBMENU:=$(VIRTUAL_MENU)
-  TITLE:=Xen event channels
-  DEPENDS:=@TARGET_x86_xen_domu
-  KCONFIG:=CONFIG_XEN_DEV_EVTCHN
-  FILES:=$(LINUX_DIR)/drivers/xen/xen-evtchn.ko
-  AUTOLOAD:=$(call AutoLoad,06,xen-evtchn)
-endef
-
-define KernelPackage/xen-evtchn/description
- Kernel module for the /dev/xen/evtchn device
-endef
-
-$(eval $(call KernelPackage,xen-evtchn))
-
-define KernelPackage/xen-fbdev
-  SUBMENU:=$(VIRTUAL_MENU)
-  TITLE:=Xen virtual frame buffer
-  DEPENDS:=@TARGET_x86_xen_domu +kmod-fb
-  KCONFIG:= \
-  	CONFIG_XEN_FBDEV_FRONTEND \
-  	CONFIG_FB_DEFERRED_IO=y \
-  	CONFIG_FB_SYS_COPYAREA \
-  	CONFIG_FB_SYS_FILLRECT \
-  	CONFIG_FB_SYS_FOPS \
-  	CONFIG_FB_SYS_IMAGEBLIT \
-  	CONFIG_FIRMWARE_EDID=n
-  FILES:= \
-  	$(LINUX_DIR)/drivers/video/fbdev/xen-fbfront.ko \
-  	$(LINUX_DIR)/drivers/video/fbdev/core/syscopyarea.ko \
-  	$(LINUX_DIR)/drivers/video/fbdev/core/sysfillrect.ko \
-  	$(LINUX_DIR)/drivers/video/fbdev/core/fb_sys_fops.ko \
-  	$(LINUX_DIR)/drivers/video/fbdev/core/sysimgblt.ko
-  AUTOLOAD:=$(call AutoLoad,07, \
-  	fb \
-  	syscopyarea \
-  	sysfillrect \
-  	fb_sys_fops \
-  	sysimgblt \
-  	xen-fbfront \
-  )
-endef
-
-define KernelPackage/xen-fbdev/description
- Kernel module for the Xen virtual frame buffer
-endef
-
-$(eval $(call KernelPackage,xen-fbdev))
-
-
-define KernelPackage/xen-netdev
-  SUBMENU:=$(VIRTUAL_MENU)
-  TITLE:=Xen network device frontend
-  DEPENDS:=@TARGET_x86_xen_domu
-  KCONFIG:=CONFIG_XEN_NETDEV_FRONTEND
-  FILES:=$(LINUX_DIR)/drivers/net/xen-netfront.ko
-  AUTOLOAD:=$(call AutoLoad,09,xen-netfront)
-endef
-
-define KernelPackage/xen-netdev/description
- Kernel module for the Xen network device frontend
-endef
-
-$(eval $(call KernelPackage,xen-netdev))
-
-
-define KernelPackage/xen-pcidev
-  SUBMENU:=$(VIRTUAL_MENU)
-  TITLE:=Xen PCI device frontend
-  DEPENDS:=@TARGET_x86_xen_domu
-  KCONFIG:=CONFIG_XEN_PCIDEV_FRONTEND
-  FILES:=$(LINUX_DIR)/drivers/pci/xen-pcifront.ko
-  AUTOLOAD:=$(call AutoLoad,10,xen-pcifront)
-endef
-
-define KernelPackage/xen-pcidev/description
- Kernel module for the Xen network device frontend
-endef
-
-$(eval $(call KernelPackage,xen-pcidev))
diff --git a/target/linux/x86/xen_domu/config-default b/target/linux/x86/xen_domu/config-default
index b4db35dec2..aeb1e2a635 100644
--- a/target/linux/x86/xen_domu/config-default
+++ b/target/linux/x86/xen_domu/config-default
@@ -5,6 +5,14 @@ CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
 # CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set
 CONFIG_CPU_RMAP=y
 # CONFIG_DEBUG_HOTPLUG_CPU0 is not set
+CONFIG_FB=y
+CONFIG_FB_CMDLINE=y
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_SYS_COPYAREA=y
+CONFIG_FB_SYS_FILLRECT=y
+CONFIG_FB_SYS_FOPS=y
+CONFIG_FB_SYS_IMAGEBLIT=y
+# CONFIG_FB_VESA is not set
 CONFIG_FREEZER=y
 CONFIG_GENERIC_PENDING_IRQ=y
 CONFIG_HAVE_ARCH_HUGE_VMAP=y
@@ -48,7 +56,6 @@ CONFIG_RFS_ACCEL=y
 CONFIG_RPS=y
 CONFIG_RWSEM_SPIN_ON_OWNER=y
 CONFIG_SCHED_MC=y
-CONFIG_SLUB_CPU_PARTIAL=y
 CONFIG_SMP=y
 CONFIG_SWIOTLB=y
 CONFIG_SWIOTLB_XEN=y
@@ -68,19 +75,21 @@ CONFIG_X86_PAE=y
 CONFIG_X86_TSC=y
 CONFIG_X86_USE_PPRO_CHECKSUM=y
 CONFIG_XEN=y
-# CONFIG_XENFS is not set
+CONFIG_XENFS=y
 CONFIG_XEN_AUTO_XLATE=y
 CONFIG_XEN_BALLOON=y
 CONFIG_XEN_BLKDEV_FRONTEND=y
+CONFIG_XEN_COMPAT_XENFS=y
 CONFIG_XEN_DEBUG_FS=y
-# CONFIG_XEN_DEV_EVTCHN is not set
-CONFIG_XEN_GNTDEV=m
-CONFIG_XEN_GRANT_DEV_ALLOC=m
+CONFIG_XEN_DEV_EVTCHN=y
+CONFIG_XEN_FBDEV_FRONTEND=y
+CONFIG_XEN_GNTDEV=y
+CONFIG_XEN_GRANT_DEV_ALLOC=y
 CONFIG_XEN_HAVE_PVMMU=y
 CONFIG_XEN_HAVE_VPMU=y
-# CONFIG_XEN_NETDEV_FRONTEND is not set
-# CONFIG_XEN_PCIDEV_FRONTEND is not set
-CONFIG_XEN_PRIVCMD=m
+CONFIG_XEN_NETDEV_FRONTEND=y
+CONFIG_XEN_PCIDEV_FRONTEND=y
+CONFIG_XEN_PRIVCMD=y
 CONFIG_XEN_PVHVM=y
 CONFIG_XEN_SAVE_RESTORE=y
 CONFIG_XEN_SCRUB_PAGES=y
-- 
2.34.1