From 050061a565c78bbc2017d2930faec602db2828fe Mon Sep 17 00:00:00 2001
From: Jonas Gorski <jogo@openwrt.org>
Date: Thu, 18 Jul 2013 13:08:31 +0000
Subject: [PATCH] kernel: split out lib-raid6

raid_pq.ko is needed by btrfs in 3.10+, so split it out into its own
package. Make it hidden as it does not provide any functionality on its
own.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 37394
---
 package/kernel/linux/modules/block.mk |  6 ++----
 package/kernel/linux/modules/lib.mk   | 16 ++++++++++++++++
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/package/kernel/linux/modules/block.mk b/package/kernel/linux/modules/block.mk
index fe5da0356f..e522276162 100644
--- a/package/kernel/linux/modules/block.mk
+++ b/package/kernel/linux/modules/block.mk
@@ -306,7 +306,7 @@ $(eval $(call KernelPackage,md-raid10))
 
 
 define KernelPackage/md-raid456
-$(call KernelPackage/md/Depends,)
+$(call KernelPackage/md/Depends,+kmod-lib-raid6)
   TITLE:=RAID Level 456 Driver
   KCONFIG:= \
        CONFIG_XOR_BLOCKS \
@@ -316,7 +316,6 @@ $(call KernelPackage/md/Depends,)
        CONFIG_ASYNC_PQ \
        CONFIG_ASYNC_RAID6_RECOV \
        CONFIG_ASYNC_RAID6_TEST=n \
-       CONFIG_MD_RAID6_PQ \
        CONFIG_MD_RAID456 \
        CONFIG_MULTICORE_RAID456=n
   FILES:= \
@@ -327,8 +326,7 @@ $(call KernelPackage/md/Depends,)
 	$(LINUX_DIR)/crypto/async_tx/async_pq.ko \
 	$(LINUX_DIR)/crypto/async_tx/async_raid6_recov.ko \
 	$(LINUX_DIR)/drivers/md/raid456.ko \
-	$(LINUX_DIR)/lib/raid6/raid6_pq.ko
-  AUTOLOAD:=$(call AutoLoad,28, xor async_tx async_memcpy async_xor raid6_pq async_pq async_raid6_recov raid456)
+  AUTOLOAD:=$(call AutoLoad,28, xor async_tx async_memcpy async_xor async_pq async_raid6_recov raid456)
 endef
 
 define KernelPackage/md-raid456/description
diff --git a/package/kernel/linux/modules/lib.mk b/package/kernel/linux/modules/lib.mk
index 0411e93702..095edb1a58 100644
--- a/package/kernel/linux/modules/lib.mk
+++ b/package/kernel/linux/modules/lib.mk
@@ -117,6 +117,22 @@ endef
 $(eval $(call KernelPackage,lib-lzo))
 
 
+define KernelPackage/lib-raid6
+  SUBMENU:=$(LIB_MENU)
+  TITLE:=RAID6 algorithm support
+  HIDDEN:=1
+  KCONFIG:=CONFIG_RAID6_PQ
+  FILES:=$(LINUX_DIR)/lib/raid6/raid6_pq.ko
+  AUTOLOAD:=$(call AutoLoad,20,raid6_pq,1)
+endef
+
+define KernelPackage/lib-raid6/description
+ Kernel module for RAID6 algorithms.
+endef
+
+$(eval $(call KernelPackage,lib-raid6))
+
+
 define KernelPackage/lib-textsearch
 SUBMENU:=$(LIB_MENU)
   TITLE:=Textsearch support
-- 
2.30.2