aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2016-01-19 21:09:11 +0000
committerFelix Fietkau <nbd@openwrt.org>2016-01-19 21:09:11 +0000
commit20ba5a01cfa46a3c56dc26b57f2f922afba61a4b (patch)
tree6406ac2368eded08fa0ec54d5ea7a74a4124f6e5
parent000295f8baf25bed023c651bf48409c5ac4b7724 (diff)
downloadupstream-20ba5a01cfa46a3c56dc26b57f2f922afba61a4b.tar.gz
upstream-20ba5a01cfa46a3c56dc26b57f2f922afba61a4b.tar.bz2
upstream-20ba5a01cfa46a3c56dc26b57f2f922afba61a4b.zip
kernel: modularize dma shared buffer code to eliminate kernel bloat
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 48371
-rw-r--r--package/kernel/linux/modules/other.mk10
-rw-r--r--package/kernel/linux/modules/video.mk1
-rw-r--r--target/linux/generic/patches-3.18/904-debloat_dma_buf.patch35
-rw-r--r--target/linux/generic/patches-4.1/904-debloat_dma_buf.patch35
-rw-r--r--target/linux/generic/patches-4.3/904-debloat_dma_buf.patch35
-rw-r--r--target/linux/generic/patches-4.4/904-debloat_dma_buf.patch35
6 files changed, 151 insertions, 0 deletions
diff --git a/package/kernel/linux/modules/other.mk b/package/kernel/linux/modules/other.mk
index 62fdc3cd69..b244fbe538 100644
--- a/package/kernel/linux/modules/other.mk
+++ b/package/kernel/linux/modules/other.mk
@@ -130,6 +130,16 @@ endef
$(eval $(call KernelPackage,bluetooth-hci-h4p))
+define KernelPackage/dma-buf
+ TITLE:=DMA shared buffer support
+ HIDDEN:=1
+ KCONFIG:=CONFIG_DMA_SHARED_BUFFER
+ FILES:=$(LINUX_DIR)/drivers/dma-buf/dma-shared-buffer.ko
+ AUTOLOAD:=$(call AutoLoad,20,dma-shared-buffer)
+endef
+$(eval $(call KernelPackage,dma-buf))
+
+
define KernelPackage/eeprom-93cx6
SUBMENU:=$(OTHER_MENU)
TITLE:=EEPROM 93CX6 support
diff --git a/package/kernel/linux/modules/video.mk b/package/kernel/linux/modules/video.mk
index 0fcacb2d89..4226adc33a 100644
--- a/package/kernel/linux/modules/video.mk
+++ b/package/kernel/linux/modules/video.mk
@@ -121,6 +121,7 @@ endef
define KernelPackage/video-videobuf2
TITLE:=videobuf2 lib
+ DEPENDS:=+kmod-dma-buf
KCONFIG:= \
CONFIG_VIDEOBUF2_CORE \
CONFIG_VIDEOBUF2_MEMOPS \
diff --git a/target/linux/generic/patches-3.18/904-debloat_dma_buf.patch b/target/linux/generic/patches-3.18/904-debloat_dma_buf.patch
new file mode 100644
index 0000000000..dc6a3b93dc
--- /dev/null
+++ b/target/linux/generic/patches-3.18/904-debloat_dma_buf.patch
@@ -0,0 +1,35 @@
+--- a/drivers/base/Kconfig
++++ b/drivers/base/Kconfig
+@@ -229,7 +229,7 @@ config SOC_BUS
+ source "drivers/base/regmap/Kconfig"
+
+ config DMA_SHARED_BUFFER
+- bool
++ tristate
+ default n
+ select ANON_INODES
+ help
+--- a/drivers/dma-buf/Makefile
++++ b/drivers/dma-buf/Makefile
+@@ -1 +1,2 @@
+-obj-y := dma-buf.o fence.o reservation.o seqno-fence.o
++obj-$(CONFIG_DMA_SHARED_BUFFER) := dma-shared-buffer.o
++dma-shared-buffer-objs := dma-buf.o fence.o reservation.o seqno-fence.o
+--- a/drivers/dma-buf/dma-buf.c
++++ b/drivers/dma-buf/dma-buf.c
+@@ -904,4 +904,4 @@ static void __exit dma_buf_deinit(void)
+ {
+ dma_buf_uninit_debugfs();
+ }
+-__exitcall(dma_buf_deinit);
++module_exit(dma_buf_deinit);
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -1801,6 +1801,7 @@ int wake_up_state(struct task_struct *p,
+ {
+ return try_to_wake_up(p, state, 0);
+ }
++EXPORT_SYMBOL_GPL(wake_up_state);
+
+ /*
+ * This function clears the sched_dl_entity static params.
diff --git a/target/linux/generic/patches-4.1/904-debloat_dma_buf.patch b/target/linux/generic/patches-4.1/904-debloat_dma_buf.patch
new file mode 100644
index 0000000000..b14e1d2e9d
--- /dev/null
+++ b/target/linux/generic/patches-4.1/904-debloat_dma_buf.patch
@@ -0,0 +1,35 @@
+--- a/drivers/base/Kconfig
++++ b/drivers/base/Kconfig
+@@ -229,7 +229,7 @@ config SOC_BUS
+ source "drivers/base/regmap/Kconfig"
+
+ config DMA_SHARED_BUFFER
+- bool
++ tristate
+ default n
+ select ANON_INODES
+ help
+--- a/drivers/dma-buf/Makefile
++++ b/drivers/dma-buf/Makefile
+@@ -1 +1,2 @@
+-obj-y := dma-buf.o fence.o reservation.o seqno-fence.o
++obj-$(CONFIG_DMA_SHARED_BUFFER) := dma-shared-buffer.o
++dma-shared-buffer-objs := dma-buf.o fence.o reservation.o seqno-fence.o
+--- a/drivers/dma-buf/dma-buf.c
++++ b/drivers/dma-buf/dma-buf.c
+@@ -901,4 +901,4 @@ static void __exit dma_buf_deinit(void)
+ {
+ dma_buf_uninit_debugfs();
+ }
+-__exitcall(dma_buf_deinit);
++module_exit(dma_buf_deinit);
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -1768,6 +1768,7 @@ int wake_up_state(struct task_struct *p,
+ {
+ return try_to_wake_up(p, state, 0);
+ }
++EXPORT_SYMBOL_GPL(wake_up_state);
+
+ /*
+ * This function clears the sched_dl_entity static params.
diff --git a/target/linux/generic/patches-4.3/904-debloat_dma_buf.patch b/target/linux/generic/patches-4.3/904-debloat_dma_buf.patch
new file mode 100644
index 0000000000..a47c7a8ad2
--- /dev/null
+++ b/target/linux/generic/patches-4.3/904-debloat_dma_buf.patch
@@ -0,0 +1,35 @@
+--- a/drivers/base/Kconfig
++++ b/drivers/base/Kconfig
+@@ -229,7 +229,7 @@ config SOC_BUS
+ source "drivers/base/regmap/Kconfig"
+
+ config DMA_SHARED_BUFFER
+- bool
++ tristate
+ default n
+ select ANON_INODES
+ help
+--- a/drivers/dma-buf/Makefile
++++ b/drivers/dma-buf/Makefile
+@@ -1 +1,2 @@
+-obj-y := dma-buf.o fence.o reservation.o seqno-fence.o
++obj-$(CONFIG_DMA_SHARED_BUFFER) := dma-shared-buffer.o
++dma-shared-buffer-objs := dma-buf.o fence.o reservation.o seqno-fence.o
+--- a/drivers/dma-buf/dma-buf.c
++++ b/drivers/dma-buf/dma-buf.c
+@@ -914,4 +914,4 @@ static void __exit dma_buf_deinit(void)
+ {
+ dma_buf_uninit_debugfs();
+ }
+-__exitcall(dma_buf_deinit);
++module_exit(dma_buf_deinit);
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -2040,6 +2040,7 @@ int wake_up_state(struct task_struct *p,
+ {
+ return try_to_wake_up(p, state, 0);
+ }
++EXPORT_SYMBOL_GPL(wake_up_state);
+
+ /*
+ * This function clears the sched_dl_entity static params.
diff --git a/target/linux/generic/patches-4.4/904-debloat_dma_buf.patch b/target/linux/generic/patches-4.4/904-debloat_dma_buf.patch
new file mode 100644
index 0000000000..e7b7f72442
--- /dev/null
+++ b/target/linux/generic/patches-4.4/904-debloat_dma_buf.patch
@@ -0,0 +1,35 @@
+--- a/drivers/base/Kconfig
++++ b/drivers/base/Kconfig
+@@ -229,7 +229,7 @@ config SOC_BUS
+ source "drivers/base/regmap/Kconfig"
+
+ config DMA_SHARED_BUFFER
+- bool
++ tristate
+ default n
+ select ANON_INODES
+ help
+--- a/drivers/dma-buf/Makefile
++++ b/drivers/dma-buf/Makefile
+@@ -1 +1,2 @@
+-obj-y := dma-buf.o fence.o reservation.o seqno-fence.o
++obj-$(CONFIG_DMA_SHARED_BUFFER) := dma-shared-buffer.o
++dma-shared-buffer-objs := dma-buf.o fence.o reservation.o seqno-fence.o
+--- a/drivers/dma-buf/dma-buf.c
++++ b/drivers/dma-buf/dma-buf.c
+@@ -914,4 +914,4 @@ static void __exit dma_buf_deinit(void)
+ {
+ dma_buf_uninit_debugfs();
+ }
+-__exitcall(dma_buf_deinit);
++module_exit(dma_buf_deinit);
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -2072,6 +2072,7 @@ int wake_up_state(struct task_struct *p,
+ {
+ return try_to_wake_up(p, state, 0);
+ }
++EXPORT_SYMBOL_GPL(wake_up_state);
+
+ /*
+ * This function clears the sched_dl_entity static params.