ASR_BASE
Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/package/kernel/linux/Makefile b/package/kernel/linux/Makefile
new file mode 100644
index 0000000..db44667
--- /dev/null
+++ b/package/kernel/linux/Makefile
@@ -0,0 +1,71 @@
+#
+# Copyright (C) 2006-2010 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/kernel.mk
+
+PKG_NAME:=kernel
+PKG_FLAGS:=hold
+
+PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/packages
+SUBTARGETS = $(sort $(filter-out feeds,$(notdir $(wildcard $(TOPDIR)/target/linux/* $(TOPDIR)/target/linux/feeds/*))))
+SUBTARGET_MODULES = $(foreach t,$(SUBTARGETS),$(firstword $(wildcard $(TOPDIR)/target/linux/feeds/$(t)/modules.mk $(TOPDIR)/target/linux/$(t)/modules.mk)))
+SCAN_DEPS=modules/*.mk $(SUBTARGET_MODULES) $(TOPDIR)/include/netfilter.mk
+
+PKG_LICENSE:=GPL-2.0-only
+PKG_LICENSE_FILES:=COPYING
+
+export SHELL:=/bin/sh
+.ONESHELL:
+.SHELLFLAGS = -ec
+
+include $(INCLUDE_DIR)/package.mk
+
+ifeq ($(DUMP),)
+ STAMP_BUILT:=$(STAMP_BUILT)_$(shell $(SCRIPT_DIR)/kconfig.pl $(LINUX_DIR)/.config | $(MKHASH) md5)
+ -include $(LINUX_DIR)/.config
+endif
+
+define Build/Prepare
+ mkdir -p $(PKG_BUILD_DIR)
+endef
+
+define Build/Configure
+endef
+
+define Build/Quilt
+endef
+
+define Build/Compile
+endef
+
+define KernelPackage/depends
+endef
+
+CONFIG_PACKAGE_kernel=y
+define Package/kernel
+ SECTION:=sys
+ CATEGORY:=Kernel
+ DEFAULT:=y
+ TITLE:=Virtual kernel package
+ VERSION:=$(LINUX_VERSION)~$(LINUX_VERMAGIC)-r$(LINUX_RELEASE)
+ URL:=http://www.kernel.org/
+ PKG_FLAGS:=nonshared
+endef
+
+define Package/kernel/install
+ # nothing to do
+endef
+
+define Package/kernel/extra_provides
+ sed -e 's,.*/,,' $(LINUX_DIR)/modules.builtin;
+endef
+
+$(eval $(if $(DUMP),,$(call BuildPackage,kernel)))
+
+include $(sort $(wildcard ./modules/*.mk))
+-include $(SUBTARGET_MODULES)
diff --git a/package/kernel/linux/files/hotplug-sched-teql.sh b/package/kernel/linux/files/hotplug-sched-teql.sh
new file mode 100644
index 0000000..2dc4ed4
--- /dev/null
+++ b/package/kernel/linux/files/hotplug-sched-teql.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+. /lib/functions.sh
+
+if [ "$ACTION" != "ifup" ]; then
+ exit
+fi
+
+config_load network
+
+config_get teql $INTERFACE teql
+
+if [ "$teql" != "" ]; then
+ logger Adding device $DEVICE to TEQL master $teql
+ modprobe sch_teql
+ tc qdisc add dev $DEVICE root $teql
+
+ # The kernel doesn't let us bring it up until it has at least one
+ # slave. So bring it up now, if it isn't already.
+ if ! cat /sys/class/net/$teql/carrier &>/dev/null; then
+ ifup $teql &
+ fi
+fi
diff --git a/package/kernel/linux/files/sysctl-br-netfilter.conf b/package/kernel/linux/files/sysctl-br-netfilter.conf
new file mode 100644
index 0000000..c28f579
--- /dev/null
+++ b/package/kernel/linux/files/sysctl-br-netfilter.conf
@@ -0,0 +1,7 @@
+# Do not edit, changes to this file will be lost on upgrades
+# /etc/sysctl.conf can be used to customize sysctl settings
+
+# disable bridge firewalling by default
+net.bridge.bridge-nf-call-arptables=0
+net.bridge.bridge-nf-call-ip6tables=1
+net.bridge.bridge-nf-call-iptables=1
diff --git a/package/kernel/linux/files/sysctl-nf-conntrack.conf b/package/kernel/linux/files/sysctl-nf-conntrack.conf
new file mode 100644
index 0000000..37baf5f
--- /dev/null
+++ b/package/kernel/linux/files/sysctl-nf-conntrack.conf
@@ -0,0 +1,9 @@
+# Do not edit, changes to this file will be lost on upgrades
+# /etc/sysctl.conf can be used to customize sysctl settings
+
+net.netfilter.nf_conntrack_acct=1
+net.netfilter.nf_conntrack_checksum=0
+net.netfilter.nf_conntrack_max=16384
+net.netfilter.nf_conntrack_tcp_timeout_established=7440
+net.netfilter.nf_conntrack_udp_timeout=60
+net.netfilter.nf_conntrack_udp_timeout_stream=180
diff --git a/package/kernel/linux/files/sysctl-tcp-bbr.conf b/package/kernel/linux/files/sysctl-tcp-bbr.conf
new file mode 100644
index 0000000..3a7dba2
--- /dev/null
+++ b/package/kernel/linux/files/sysctl-tcp-bbr.conf
@@ -0,0 +1,4 @@
+# Do not edit, changes to this file will be lost on upgrades
+# /etc/sysctl.conf can be used to customize sysctl settings
+
+net.ipv4.tcp_congestion_control=bbr
diff --git a/package/kernel/linux/modules/001-depends.mk b/package/kernel/linux/modules/001-depends.mk
new file mode 100644
index 0000000..806c3dc
--- /dev/null
+++ b/package/kernel/linux/modules/001-depends.mk
@@ -0,0 +1,14 @@
+#
+# Copyright (C) 2010-2011 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define AddDepends/nls
+ DEPENDS+= +kmod-nls-base $(foreach cp,$(1),+kmod-nls-$(cp))
+endef
+
+define AddDepends/rfkill
+ DEPENDS+= +USE_RFKILL:kmod-rfkill $(1)
+endef
diff --git a/package/kernel/linux/modules/block.mk b/package/kernel/linux/modules/block.mk
new file mode 100644
index 0000000..3d3a5b0
--- /dev/null
+++ b/package/kernel/linux/modules/block.mk
@@ -0,0 +1,611 @@
+#
+# Copyright (C) 2006-2012 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+BLOCK_MENU:=Block Devices
+
+define KernelPackage/aoe
+ SUBMENU:=$(BLOCK_MENU)
+ TITLE:=ATA over Ethernet support
+ KCONFIG:=CONFIG_ATA_OVER_ETH
+ FILES:=$(LINUX_DIR)/drivers/block/aoe/aoe.ko
+ AUTOLOAD:=$(call AutoLoad,30,aoe)
+endef
+
+define KernelPackage/aoe/description
+ Kernel support for ATA over Ethernet
+endef
+
+$(eval $(call KernelPackage,aoe))
+
+
+define KernelPackage/ata-core
+ SUBMENU:=$(BLOCK_MENU)
+ TITLE:=Serial and Parallel ATA support
+ DEPENDS:=@PCI_SUPPORT||TARGET_sunxi +kmod-scsi-core
+ KCONFIG:=CONFIG_ATA
+ FILES:=$(LINUX_DIR)/drivers/ata/libata.ko
+ifneq ($(wildcard $(LINUX_DIR)/drivers/ata/libahci.ko),)
+ FILES+=$(LINUX_DIR)/drivers/ata/libahci.ko
+endif
+endef
+
+$(eval $(call KernelPackage,ata-core))
+
+
+define AddDepends/ata
+ SUBMENU:=$(BLOCK_MENU)
+ DEPENDS+=+kmod-ata-core $(1)
+endef
+
+
+define KernelPackage/ata-ahci
+ TITLE:=AHCI Serial ATA support
+ KCONFIG:=CONFIG_SATA_AHCI
+ FILES:= \
+ $(LINUX_DIR)/drivers/ata/ahci.ko
+ AUTOLOAD:=$(call AutoLoad,41,libahci ahci,1)
+ $(call AddDepends/ata)
+endef
+
+define KernelPackage/ata-ahci/description
+ Support for AHCI Serial ATA controllers
+endef
+
+$(eval $(call KernelPackage,ata-ahci))
+
+
+define KernelPackage/ata-ahci-platform
+ TITLE:=AHCI Serial ATA Platform support
+ KCONFIG:=CONFIG_SATA_AHCI_PLATFORM
+ FILES:= \
+ $(LINUX_DIR)/drivers/ata/ahci_platform.ko \
+ $(LINUX_DIR)/drivers/ata/libahci_platform.ko
+ AUTOLOAD:=$(call AutoLoad,40,libahci libahci_platform ahci_platform,1)
+ $(call AddDepends/ata,@TARGET_ipq806x||TARGET_layerscape||TARGET_sunxi)
+endef
+
+define KernelPackage/ata-ahci-platform/description
+ Platform support for AHCI Serial ATA controllers
+endef
+
+$(eval $(call KernelPackage,ata-ahci-platform))
+
+
+define KernelPackage/ata-artop
+ TITLE:=ARTOP 6210/6260 PATA support
+ KCONFIG:=CONFIG_PATA_ARTOP
+ FILES:=$(LINUX_DIR)/drivers/ata/pata_artop.ko
+ AUTOLOAD:=$(call AutoLoad,41,pata_artop,1)
+ $(call AddDepends/ata)
+endef
+
+define KernelPackage/ata-artop/description
+ PATA support for ARTOP 6210/6260 host controllers
+endef
+
+$(eval $(call KernelPackage,ata-artop))
+
+define KernelPackage/ata-ahci-dwc
+ TITLE:=Synopsys DWC AHCI SATA
+ KCONFIG:= \
+ CONFIG_AHCI_DWC \
+ CONFIG_SATA_HOST=y
+ FILES:=$(LINUX_DIR)/drivers/ata/ahci_dwc.ko
+ DEPENDS:=+kmod-ata-ahci-platform
+ AUTOLOAD:=$(call AutoLoad,41,ahci_dwc,1)
+ $(call AddDepends/ata,@TARGET_rockchip)
+endef
+
+$(eval $(call KernelPackage,ata-ahci-dwc))
+
+define KernelPackage/ata-nvidia-sata
+ TITLE:=Nvidia Serial ATA support
+ KCONFIG:=CONFIG_SATA_NV
+ FILES:=$(LINUX_DIR)/drivers/ata/sata_nv.ko
+ AUTOLOAD:=$(call AutoLoad,41,sata_nv,1)
+ $(call AddDepends/ata)
+endef
+
+$(eval $(call KernelPackage,ata-nvidia-sata))
+
+
+define KernelPackage/ata-pdc202xx-old
+ TITLE:=Older Promise PATA controller support
+ KCONFIG:= \
+ CONFIG_ATA_SFF=y \
+ CONFIG_PATA_PDC_OLD
+ FILES:=$(LINUX_DIR)/drivers/ata/pata_pdc202xx_old.ko
+ AUTOLOAD:=$(call AutoLoad,41,pata_pdc202xx_old,1)
+ $(call AddDepends/ata)
+endef
+
+define KernelPackage/ata-pdc202xx-old/description
+ This option enables support for the Promise 20246, 20262, 20263,
+ 20265 and 20267 adapters
+endef
+
+$(eval $(call KernelPackage,ata-pdc202xx-old))
+
+
+define KernelPackage/ata-piix
+ TITLE:=Intel PIIX PATA/SATA support
+ KCONFIG:=CONFIG_ATA_PIIX
+ FILES:=$(LINUX_DIR)/drivers/ata/ata_piix.ko
+ AUTOLOAD:=$(call AutoLoad,41,ata_piix,1)
+ $(call AddDepends/ata)
+endef
+
+define KernelPackage/ata-piix/description
+ SATA support for Intel ICH5/6/7/8 series host controllers and
+ PATA support for Intel ESB/ICH/PIIX3/PIIX4 series host controllers
+endef
+
+$(eval $(call KernelPackage,ata-piix))
+
+
+define KernelPackage/ata-sil
+ TITLE:=Silicon Image SATA support
+ KCONFIG:=CONFIG_SATA_SIL
+ FILES:=$(LINUX_DIR)/drivers/ata/sata_sil.ko
+ AUTOLOAD:=$(call AutoLoad,41,sata_sil,1)
+ $(call AddDepends/ata)
+endef
+
+define KernelPackage/ata-sil/description
+ Support for Silicon Image Serial ATA controllers
+endef
+
+$(eval $(call KernelPackage,ata-sil))
+
+
+define KernelPackage/ata-sil24
+ TITLE:=Silicon Image 3124/3132 SATA support
+ KCONFIG:=CONFIG_SATA_SIL24
+ FILES:=$(LINUX_DIR)/drivers/ata/sata_sil24.ko
+ AUTOLOAD:=$(call AutoLoad,41,sata_sil24,1)
+ $(call AddDepends/ata)
+endef
+
+define KernelPackage/ata-sil24/description
+ Support for Silicon Image 3124/3132 Serial ATA controllers
+endef
+
+$(eval $(call KernelPackage,ata-sil24))
+
+
+define KernelPackage/ata-via-sata
+ TITLE:=VIA SATA support
+ KCONFIG:=CONFIG_SATA_VIA
+ FILES:=$(LINUX_DIR)/drivers/ata/sata_via.ko
+ AUTOLOAD:=$(call AutoLoad,41,sata_via,1)
+ $(call AddDepends/ata)
+endef
+
+define KernelPackage/ata-via-sata/description
+ This option enables support for VIA Serial ATA
+endef
+
+$(eval $(call KernelPackage,ata-via-sata))
+
+
+define KernelPackage/block2mtd
+ SUBMENU:=$(BLOCK_MENU)
+ TITLE:=Block device MTD emulation
+ KCONFIG:=CONFIG_MTD_BLOCK2MTD
+ FILES:=$(LINUX_DIR)/drivers/mtd/devices/block2mtd.ko
+endef
+
+$(eval $(call KernelPackage,block2mtd))
+
+
+define KernelPackage/dax
+ SUBMENU:=$(BLOCK_MENU)
+ TITLE:=DAX: direct access to differentiated memory
+ KCONFIG:=CONFIG_DAX
+ FILES:=$(LINUX_DIR)/drivers/dax/dax.ko
+endef
+
+$(eval $(call KernelPackage,dax))
+
+
+define KernelPackage/dm
+ SUBMENU:=$(BLOCK_MENU)
+ TITLE:=Device Mapper
+ DEPENDS:=+kmod-crypto-manager +kmod-dax +KERNEL_KEYS:kmod-keys-encrypted
+ # All the "=n" are unnecessary, they're only there
+ # to stop the config from asking the question.
+ # MIRROR is M because I've needed it for pvmove.
+ KCONFIG:= \
+ CONFIG_BLK_DEV_MD=n \
+ CONFIG_DM_DEBUG=n \
+ CONFIG_DM_UEVENT=n \
+ CONFIG_DM_DELAY=n \
+ CONFIG_DM_LOG_WRITES=n \
+ CONFIG_DM_MQ_DEFAULT=n \
+ CONFIG_DM_MULTIPATH=n \
+ CONFIG_DM_ZERO=n \
+ CONFIG_DM_SNAPSHOT=n \
+ CONFIG_DM_LOG_USERSPACE=n \
+ CONFIG_MD=y \
+ CONFIG_BLK_DEV_DM \
+ CONFIG_DM_CRYPT \
+ CONFIG_DM_MIRROR
+ FILES:= \
+ $(LINUX_DIR)/drivers/md/dm-mod.ko \
+ $(LINUX_DIR)/drivers/md/dm-crypt.ko \
+ $(LINUX_DIR)/drivers/md/dm-log.ko \
+ $(LINUX_DIR)/drivers/md/dm-mirror.ko \
+ $(LINUX_DIR)/drivers/md/dm-region-hash.ko
+ AUTOLOAD:=$(call AutoLoad,30,dm-mod dm-log dm-region-hash dm-mirror dm-crypt,1)
+endef
+
+define KernelPackage/dm/description
+ Kernel module necessary for LVM2 support
+endef
+
+$(eval $(call KernelPackage,dm))
+
+define KernelPackage/dm-raid
+ SUBMENU:=$(BLOCK_MENU)
+ TITLE:=LVM2 raid support
+ DEPENDS:=+kmod-dm +kmod-md-mod \
+ +kmod-md-raid0 +kmod-md-raid1 +kmod-md-raid10 +kmod-md-raid456
+ KCONFIG:= \
+ CONFIG_DM_RAID
+ FILES:=$(LINUX_DIR)/drivers/md/dm-raid.ko
+ AUTOLOAD:=$(call AutoLoad,31,dm-raid)
+endef
+
+define KernelPackage/dm-raid/description
+ Kernel module necessary for LVM2 raid support
+endef
+
+$(eval $(call KernelPackage,dm-raid))
+
+
+define KernelPackage/iscsi-initiator
+ SUBMENU:=$(BLOCK_MENU)
+ TITLE:=iSCSI Initiator over TCP/IP
+ DEPENDS:=+kmod-scsi-core +kmod-crypto-hash
+ KCONFIG:= \
+ CONFIG_INET \
+ CONFIG_SCSI_LOWLEVEL=y \
+ CONFIG_ISCSI_TCP \
+ CONFIG_SCSI_ISCSI_ATTRS
+ FILES:= \
+ $(LINUX_DIR)/drivers/scsi/iscsi_tcp.ko \
+ $(LINUX_DIR)/drivers/scsi/libiscsi.ko \
+ $(LINUX_DIR)/drivers/scsi/libiscsi_tcp.ko \
+ $(LINUX_DIR)/drivers/scsi/scsi_transport_iscsi.ko
+ AUTOLOAD:=$(call AutoProbe,libiscsi libiscsi_tcp scsi_transport_iscsi iscsi_tcp)
+endef
+
+define KernelPackage/iscsi-initiator/description
+The iSCSI Driver provides a host with the ability to access storage through an
+IP network. The driver uses the iSCSI protocol to transport SCSI requests and
+responses over a TCP/IP network between the host (the "initiator") and "targets".
+endef
+
+$(eval $(call KernelPackage,iscsi-initiator))
+
+
+define KernelPackage/md-mod
+ SUBMENU:=$(BLOCK_MENU)
+ TITLE:=MD RAID
+ KCONFIG:= \
+ CONFIG_MD=y \
+ CONFIG_BLK_DEV_MD=m \
+ CONFIG_MD_AUTODETECT=y \
+ CONFIG_MD_FAULTY=n
+ FILES:=$(LINUX_DIR)/drivers/md/md-mod.ko
+ AUTOLOAD:=$(call AutoLoad,27,md-mod)
+endef
+
+define KernelPackage/md-mod/description
+ Kernel RAID md module (md-mod.ko).
+ You will need to select at least one RAID level module below.
+endef
+
+$(eval $(call KernelPackage,md-mod))
+
+
+define KernelPackage/md/Depends
+ SUBMENU:=$(BLOCK_MENU)
+ DEPENDS:=kmod-md-mod $(1)
+endef
+
+
+define KernelPackage/md-linear
+$(call KernelPackage/md/Depends,)
+ TITLE:=RAID Linear Module
+ KCONFIG:=CONFIG_MD_LINEAR
+ FILES:=$(LINUX_DIR)/drivers/md/linear.ko
+ AUTOLOAD:=$(call AutoLoad,28,linear)
+endef
+
+define KernelPackage/md-linear/description
+ RAID "Linear" or "Append" driver module (linear.ko)
+endef
+
+$(eval $(call KernelPackage,md-linear))
+
+
+define KernelPackage/md-raid0
+$(call KernelPackage/md/Depends,)
+ TITLE:=RAID0 Module
+ KCONFIG:=CONFIG_MD_RAID0
+ FILES:=$(LINUX_DIR)/drivers/md/raid0.ko
+ AUTOLOAD:=$(call AutoLoad,28,raid0)
+endef
+
+define KernelPackage/md-raid0/description
+ RAID Level 0 (Striping) driver module (raid0.ko)
+endef
+
+$(eval $(call KernelPackage,md-raid0))
+
+
+define KernelPackage/md-raid1
+$(call KernelPackage/md/Depends,)
+ TITLE:=RAID1 Module
+ KCONFIG:=CONFIG_MD_RAID1
+ FILES:=$(LINUX_DIR)/drivers/md/raid1.ko
+ AUTOLOAD:=$(call AutoLoad,28,raid1)
+endef
+
+define KernelPackage/md-raid1/description
+ RAID Level 1 (Mirroring) driver (raid1.ko)
+endef
+
+$(eval $(call KernelPackage,md-raid1))
+
+
+define KernelPackage/md-raid10
+$(call KernelPackage/md/Depends,)
+ TITLE:=RAID10 Module
+ KCONFIG:=CONFIG_MD_RAID10
+ FILES:=$(LINUX_DIR)/drivers/md/raid10.ko
+ AUTOLOAD:=$(call AutoLoad,28,raid10)
+endef
+
+define KernelPackage/md-raid10/description
+ RAID Level 10 (Mirroring+Striping) driver module (raid10.ko)
+endef
+
+$(eval $(call KernelPackage,md-raid10))
+
+
+define KernelPackage/md-raid456
+$(call KernelPackage/md/Depends,+kmod-lib-raid6 +kmod-lib-xor +kmod-lib-crc32c)
+ TITLE:=RAID Level 456 Driver
+ KCONFIG:= \
+ CONFIG_ASYNC_CORE \
+ CONFIG_ASYNC_MEMCPY \
+ CONFIG_ASYNC_XOR \
+ CONFIG_ASYNC_PQ \
+ CONFIG_ASYNC_RAID6_RECOV \
+ CONFIG_ASYNC_RAID6_TEST=n \
+ CONFIG_MD_RAID456 \
+ CONFIG_MULTICORE_RAID456=n
+ FILES:= \
+ $(LINUX_DIR)/crypto/async_tx/async_tx.ko \
+ $(LINUX_DIR)/crypto/async_tx/async_memcpy.ko \
+ $(LINUX_DIR)/crypto/async_tx/async_xor.ko \
+ $(LINUX_DIR)/crypto/async_tx/async_pq.ko \
+ $(LINUX_DIR)/crypto/async_tx/async_raid6_recov.ko \
+ $(LINUX_DIR)/drivers/md/raid456.ko
+ AUTOLOAD:=$(call AutoLoad,28, async_tx async_memcpy async_xor async_pq async_raid6_recov raid456)
+endef
+
+define KernelPackage/md-raid456/description
+ RAID Level 4,5,6 kernel module (raid456.ko)
+
+ Includes the following modules required by
+ raid456.ko:
+ xor.ko
+ async_tx.ko
+ async_xor.ko
+ async_memcpy.ko
+ async_pq.ko
+ async_raid5_recov.ko
+ raid6_pq.ko
+endef
+
+$(eval $(call KernelPackage,md-raid456))
+
+
+define KernelPackage/md-multipath
+$(call KernelPackage/md/Depends,)
+ TITLE:=MD Multipath Module
+ KCONFIG:=CONFIG_MD_MULTIPATH
+ FILES:=$(LINUX_DIR)/drivers/md/multipath.ko
+ AUTOLOAD:=$(call AutoLoad,29,multipath)
+endef
+
+define KernelPackage/md-multipath/description
+ Multipath driver module (multipath.ko)
+endef
+
+$(eval $(call KernelPackage,md-multipath))
+
+
+define KernelPackage/libsas
+ SUBMENU:=$(BLOCK_MENU)
+ DEPENDS:=@TARGET_x86
+ TITLE:=SAS Domain Transport Attributes
+ KCONFIG:=CONFIG_SCSI_SAS_LIBSAS \
+ CONFIG_SCSI_SAS_ATTRS \
+ CONFIG_SCSI_SAS_ATA=y \
+ CONFIG_SCSI_SAS_HOST_SMP=y \
+ CONFIG_SCSI_SAS_LIBSAS_DEBUG=y
+ FILES:= \
+ $(LINUX_DIR)/drivers/scsi/scsi_transport_sas.ko \
+ $(LINUX_DIR)/drivers/scsi/libsas/libsas.ko
+ AUTOLOAD:=$(call AutoLoad,29,scsi_transport_sas libsas,1)
+endef
+
+define KernelPackage/libsas/description
+ SAS Domain Transport Attributes support
+endef
+
+$(eval $(call KernelPackage,libsas,1))
+
+
+define KernelPackage/loop
+ SUBMENU:=$(BLOCK_MENU)
+ TITLE:=Loopback device support
+ KCONFIG:= \
+ CONFIG_BLK_DEV_LOOP \
+ CONFIG_BLK_DEV_CRYPTOLOOP=n
+ FILES:=$(LINUX_DIR)/drivers/block/loop.ko
+ AUTOLOAD:=$(call AutoLoad,30,loop,1)
+endef
+
+define KernelPackage/loop/description
+ Kernel module for loopback device support
+endef
+
+$(eval $(call KernelPackage,loop))
+
+
+define KernelPackage/mvsas
+ SUBMENU:=$(BLOCK_MENU)
+ TITLE:=Marvell 88SE6440 SAS/SATA driver
+ DEPENDS:=@TARGET_x86 +kmod-libsas
+ KCONFIG:= \
+ CONFIG_SCSI_MVSAS \
+ CONFIG_SCSI_MVSAS_TASKLET=n
+ FILES:=$(LINUX_DIR)/drivers/scsi/mvsas/mvsas.ko
+ AUTOLOAD:=$(call AutoLoad,40,mvsas,1)
+endef
+
+define KernelPackage/mvsas/description
+ Kernel support for the Marvell SAS SCSI adapters
+endef
+
+$(eval $(call KernelPackage,mvsas))
+
+
+define KernelPackage/nbd
+ SUBMENU:=$(BLOCK_MENU)
+ TITLE:=Network block device support
+ KCONFIG:=CONFIG_BLK_DEV_NBD
+ FILES:=$(LINUX_DIR)/drivers/block/nbd.ko
+ AUTOLOAD:=$(call AutoLoad,30,nbd)
+endef
+
+define KernelPackage/nbd/description
+ Kernel module for network block device support
+endef
+
+$(eval $(call KernelPackage,nbd))
+
+
+define KernelPackage/nvme
+ SUBMENU:=$(BLOCK_MENU)
+ TITLE:=NVM Express block device
+ DEPENDS:=@PCI_SUPPORT +kmod-hwmon-core
+ KCONFIG:= \
+ CONFIG_NVME_CORE \
+ CONFIG_BLK_DEV_NVME \
+ CONFIG_NVME_MULTIPATH=n \
+ CONFIG_NVME_HWMON=y
+ FILES:= \
+ $(LINUX_DIR)/drivers/nvme/host/nvme-core.ko \
+ $(LINUX_DIR)/drivers/nvme/host/nvme.ko
+ AUTOLOAD:=$(call AutoLoad,30,nvme-core nvme,1)
+endef
+
+define KernelPackage/nvme/description
+ Kernel module for NVM Express solid state drives directly
+ connected to the PCI or PCI Express bus.
+endef
+
+$(eval $(call KernelPackage,nvme))
+
+
+define KernelPackage/scsi-core
+ SUBMENU:=$(BLOCK_MENU)
+ TITLE:=SCSI device support
+ KCONFIG:= \
+ CONFIG_SCSI \
+ CONFIG_SCSI_COMMON \
+ CONFIG_BLK_DEV_SD
+ FILES:= \
+ $(LINUX_DIR)/drivers/scsi/scsi_mod.ko \
+ $(LINUX_DIR)/drivers/scsi/scsi_common.ko@ge5.15 \
+ $(LINUX_DIR)/drivers/scsi/sd_mod.ko
+ AUTOLOAD:=$(call AutoLoad,40,scsi_mod scsi_common@ge5.15 sd_mod,1)
+endef
+
+$(eval $(call KernelPackage,scsi-core))
+
+
+define KernelPackage/scsi-generic
+ SUBMENU:=$(BLOCK_MENU)
+ TITLE:=Kernel support for SCSI generic
+ DEPENDS:=+kmod-scsi-core
+ KCONFIG:= \
+ CONFIG_CHR_DEV_SG
+ FILES:= \
+ $(LINUX_DIR)/drivers/scsi/sg.ko
+ AUTOLOAD:=$(call AutoLoad,65,sg)
+endef
+
+$(eval $(call KernelPackage,scsi-generic))
+
+
+define KernelPackage/cdrom
+ TITLE:=Kernel library module for CD / DVD drives
+ KCONFIG:=CONFIG_CDROM
+ HIDDEN:=1
+ FILES:=$(LINUX_DIR)/drivers/cdrom/cdrom.ko
+endef
+
+$(eval $(call KernelPackage,cdrom))
+
+
+define KernelPackage/scsi-cdrom
+ SUBMENU:=$(BLOCK_MENU)
+ TITLE:=Kernel support for CD / DVD drives
+ DEPENDS:=+kmod-scsi-core +kmod-cdrom
+ KCONFIG:= \
+ CONFIG_BLK_DEV_SR \
+ CONFIG_BLK_DEV_SR_VENDOR=n
+ FILES:=$(LINUX_DIR)/drivers/scsi/sr_mod.ko
+ AUTOLOAD:=$(call AutoLoad,45,sr_mod)
+endef
+
+$(eval $(call KernelPackage,scsi-cdrom))
+
+
+define KernelPackage/scsi-tape
+ SUBMENU:=$(BLOCK_MENU)
+ TITLE:=Kernel support for scsi tape drives
+ DEPENDS:=+kmod-scsi-core
+ KCONFIG:= \
+ CONFIG_CHR_DEV_ST
+ FILES:= \
+ $(LINUX_DIR)/drivers/scsi/st.ko
+ AUTOLOAD:=$(call AutoLoad,45,st)
+endef
+
+$(eval $(call KernelPackage,scsi-tape))
+
+define KernelPackage/iosched-bfq
+ SUBMENU:=$(BLOCK_MENU)
+ TITLE:=Kernel support for BFQ I/O scheduler
+ KCONFIG:= \
+ CONFIG_IOSCHED_BFQ \
+ CONFIG_BFQ_GROUP_IOSCHED=y \
+ CONFIG_BFQ_CGROUP_DEBUG=n
+ FILES:= \
+ $(LINUX_DIR)/block/bfq.ko
+ AUTOLOAD:=$(call AutoLoad,10,bfq)
+endef
+
+$(eval $(call KernelPackage,iosched-bfq))
diff --git a/package/kernel/linux/modules/can.mk b/package/kernel/linux/modules/can.mk
new file mode 100644
index 0000000..49ef7a6
--- /dev/null
+++ b/package/kernel/linux/modules/can.mk
@@ -0,0 +1,332 @@
+#
+# Copyright (C) 2013 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+CAN_MENU:=CAN Support
+
+define KernelPackage/can
+ SUBMENU:=$(CAN_MENU)
+ TITLE:=CAN bus support
+ KCONFIG:=\
+ CONFIG_CAN=m \
+ CONFIG_CAN_DEV \
+ CONFIG_CAN_NETLINK=y \
+ CONFIG_CAN_CALC_BITTIMING=y \
+ CONFIG_CAN_LEDS=y \
+ CONFIG_CAN_AT91=n \
+ CONFIG_CAN_TI_HECC=n \
+ CONFIG_CAN_MCP251X=n \
+ CONFIG_CAN_BFIN=n \
+ CONFIG_CAN_JANZ_ICAN3=n \
+ CONFIG_PCH_CAN=n \
+ CONFIG_CAN_GRCAN=n \
+ CONFIG_CAN_CC770=n \
+ CONFIG_CAN_MSCAN=n \
+ CONFIG_CAN_SJA1000=n \
+ CONFIG_CAN_SOFTING=n \
+ CONFIG_NET_EMATCH_CANID=n \
+ CONFIG_CAN_DEBUG_DEVICES=n
+ FILES:=$(LINUX_DIR)/drivers/net/can/dev/can-dev.ko \
+ $(LINUX_DIR)/net/can/can.ko
+ AUTOLOAD:=$(call AutoProbe,can can-dev)
+endef
+
+define KernelPackage/can/description
+ Kernel module for CAN bus support.
+endef
+
+$(eval $(call KernelPackage,can))
+
+
+define AddDepends/can
+ SUBMENU:=$(CAN_MENU)
+ DEPENDS+=kmod-can $(1)
+endef
+
+
+define KernelPackage/can-bcm
+ TITLE:=Broadcast Manager CAN Protcol
+ KCONFIG:=CONFIG_CAN_BCM
+ FILES:=$(LINUX_DIR)/net/can/can-bcm.ko
+ AUTOLOAD:=$(call AutoProbe,can-bcm)
+ $(call AddDepends/can)
+endef
+
+define KernelPackage/can-bcm/description
+ The Broadcast Manager offers content filtering, timeout monitoring,
+ sending of RTR frames, and cyclic CAN messages without permanent user
+ interaction.
+endef
+
+$(eval $(call KernelPackage,can-bcm))
+
+
+define KernelPackage/can-c-can
+ TITLE:=BOSCH C_CAN/D_CAN drivers
+ KCONFIG:=CONFIG_CAN_C_CAN
+ FILES:=$(LINUX_DIR)/drivers/net/can/c_can/c_can.ko
+ AUTOLOAD:=$(call AutoProbe,c_can)
+ $(call AddDepends/can)
+endef
+
+define KernelPackage/can-c-can/description
+ This driver adds generic support for the C_CAN/D_CAN chips.
+endef
+
+$(eval $(call KernelPackage,can-c-can))
+
+
+define KernelPackage/can-c-can-pci
+ TITLE:=PCI Bus based BOSCH C_CAN/D_CAN driver
+ KCONFIG:=CONFIG_CAN_C_CAN_PCI
+ DEPENDS:=kmod-can-c-can @PCI_SUPPORT
+ FILES:=$(LINUX_DIR)/drivers/net/can/c_can/c_can_pci.ko
+ AUTOLOAD:=$(call AutoProbe,c_can_pci)
+ $(call AddDepends/can)
+endef
+
+define KernelPackage/can-c-can-pci/description
+ This driver adds support for the C_CAN/D_CAN chips connected
+ to the PCI bus.
+endef
+
+$(eval $(call KernelPackage,can-c-can-pci))
+
+
+define KernelPackage/can-c-can-platform
+ TITLE:=Platform Bus based BOSCH C_CAN/D_CAN driver
+ KCONFIG:=CONFIG_CAN_C_CAN_PLATFORM
+ DEPENDS:=kmod-can-c-can +kmod-regmap-core
+ FILES:=$(LINUX_DIR)/drivers/net/can/c_can/c_can_platform.ko
+ AUTOLOAD:=$(call AutoProbe,c_can_platform)
+ $(call AddDepends/can)
+endef
+
+define KernelPackage/can-c-can-platform/description
+ This driver adds support for the C_CAN/D_CAN chips connected
+ to the "platform bus" (Linux abstraction for directly to the
+ processor attached devices) which can be found on various
+ boards from ST Microelectronics (http://www.st.com) like the
+ SPEAr1310 and SPEAr320 evaluation boards & TI (www.ti.com)
+ boards like am335x, dm814x, dm813x and dm811x.
+endef
+
+$(eval $(call KernelPackage,can-c-can-platform))
+
+
+define KernelPackage/can-flexcan
+ TITLE:=Support for Freescale FLEXCAN based chips
+ KCONFIG:=CONFIG_CAN_FLEXCAN
+ FILES:= \
+ $(LINUX_DIR)/drivers/net/can/flexcan.ko@lt5.17 \
+ $(LINUX_DIR)/drivers/net/can/flexcan/flexcan.ko@ge5.17
+ AUTOLOAD:=$(call AutoProbe,flexcan)
+ $(call AddDepends/can,@TARGET_imx)
+endef
+
+define KernelPackage/can-flexcan/description
+ Freescale FLEXCAN CAN bus controller implementation.
+endef
+
+$(eval $(call KernelPackage,can-flexcan))
+
+
+define KernelPackage/can-gw
+ TITLE:=CAN Gateway/Router
+ KCONFIG:=CONFIG_CAN_GW
+ FILES:=$(LINUX_DIR)/net/can/can-gw.ko
+ AUTOLOAD:=$(call AutoProbe,can-gw)
+ $(call AddDepends/can)
+endef
+
+define KernelPackage/can-gw/description
+ The CAN Gateway/Router is used to route (and modify) CAN frames.
+endef
+
+$(eval $(call KernelPackage,can-gw))
+
+
+define KernelPackage/can-mcp251x
+ TITLE:=MCP251x SPI CAN controller
+ KCONFIG:=\
+ CONFIG_SPI=y \
+ CONFIG_CAN_MCP251X
+ FILES:=$(LINUX_DIR)/drivers/net/can/spi/mcp251x.ko
+ AUTOLOAD:=$(call AutoProbe,mcp251x)
+ $(call AddDepends/can)
+endef
+
+define KernelPackage/can-mcp251x/description
+ Microchip MCP251x SPI CAN controller
+endef
+
+$(eval $(call KernelPackage,can-mcp251x))
+
+
+define KernelPackage/can-raw
+ TITLE:=Raw CAN Protcol
+ KCONFIG:=CONFIG_CAN_RAW
+ FILES:=$(LINUX_DIR)/net/can/can-raw.ko
+ AUTOLOAD:=$(call AutoProbe,can-raw)
+ $(call AddDepends/can)
+endef
+
+define KernelPackage/can-raw/description
+ The raw CAN protocol option offers access to the CAN bus via
+ the BSD socket API.
+endef
+
+$(eval $(call KernelPackage,can-raw))
+
+
+define KernelPackage/can-slcan
+ TITLE:=Serial / USB serial CAN Adaptors (slcan)
+ KCONFIG:=CONFIG_CAN_SLCAN
+ FILES:= \
+ $(LINUX_DIR)/drivers/net/can/slcan.ko@lt6.0 \
+ $(LINUX_DIR)/drivers/net/can/slcan/slcan.ko@ge6.0
+ AUTOLOAD:=$(call AutoProbe,slcan)
+ $(call AddDepends/can)
+endef
+
+define KernelPackage/can-slcan/description
+ CAN driver for several 'low cost' CAN interfaces that are attached
+ via serial lines or via USB-to-serial adapters using the LAWICEL
+ ASCII protocol.
+endef
+
+$(eval $(call KernelPackage,can-slcan))
+
+
+define KernelPackage/can-usb-8dev
+ TITLE:=8 devices USB2CAN interface
+ KCONFIG:=CONFIG_CAN_8DEV_USB
+ FILES:=$(LINUX_DIR)/drivers/net/can/usb/usb_8dev.ko
+ AUTOLOAD:=$(call AutoProbe,usb_8dev)
+ $(call AddDepends/can,+kmod-usb-core)
+endef
+
+define KernelPackage/can-usb-8dev/description
+ This driver supports the USB2CAN interface
+ from 8 devices (http://www.8devices.com).
+endef
+
+$(eval $(call KernelPackage,can-usb-8dev))
+
+
+define KernelPackage/can-usb-ems
+ TITLE:=EMS CPC-USB/ARM7 CAN/USB interface
+ KCONFIG:=CONFIG_CAN_EMS_USB
+ FILES:=$(LINUX_DIR)/drivers/net/can/usb/ems_usb.ko
+ AUTOLOAD:=$(call AutoProbe,ems_usb)
+ $(call AddDepends/can,+kmod-usb-core)
+endef
+
+define KernelPackage/can-usb-ems/description
+ This driver is for the one channel CPC-USB/ARM7 CAN/USB interface
+ from EMS Dr. Thomas Wuensche (http://www.ems-wuensche.de).
+endef
+
+$(eval $(call KernelPackage,can-usb-ems))
+
+
+define KernelPackage/can-usb-esd
+ TITLE:=ESD USB/2 CAN/USB interface
+ KCONFIG:=CONFIG_CAN_ESD_USB2
+ FILES:=$(LINUX_DIR)/drivers/net/can/usb/esd_usb2.ko
+ AUTOLOAD:=$(call AutoProbe,esd_usb2)
+ $(call AddDepends/can,+kmod-usb-core)
+endef
+
+define KernelPackage/can-usb-esd/description
+ This driver supports the CAN-USB/2 interface
+ from esd electronic system design gmbh (http://www.esd.eu).
+endef
+
+$(eval $(call KernelPackage,can-usb-esd))
+
+
+define KernelPackage/can-usb-gs
+ TITLE:=Geschwister Schneider UG interfaces
+ KCONFIG:=CONFIG_CAN_GS_USB
+ FILES:= \
+ $(LINUX_DIR)/drivers/net/can/usb/gs_usb.ko
+ AUTOLOAD:=$(call AutoProbe,gs_usb)
+ $(call AddDepends/can,+kmod-usb-core)
+endef
+
+define KernelPackage/can-usb-gsr/description
+ This driver supports the Geschwister Schneider and
+ bytewerk.org candleLight compatible
+ (https://github.com/candle-usb/candleLight_fw) USB/CAN
+ interfaces.
+endef
+
+$(eval $(call KernelPackage,can-usb-gs))
+
+
+define KernelPackage/can-usb-kvaser
+ TITLE:=Kvaser CAN/USB interface
+ KCONFIG:=CONFIG_CAN_KVASER_USB
+ FILES:= \
+ $(LINUX_DIR)/drivers/net/can/usb/kvaser_usb/kvaser_usb.ko
+ AUTOLOAD:=$(call AutoProbe,kvaser_usb)
+ $(call AddDepends/can,+kmod-usb-core)
+endef
+
+define KernelPackage/can-usb-kvaser/description
+ This driver adds support for Kvaser CAN/USB devices like Kvaser
+ Leaf Light.
+endef
+
+$(eval $(call KernelPackage,can-usb-kvaser))
+
+
+define KernelPackage/can-usb-peak
+ TITLE:=PEAK PCAN-USB/USB Pro interfaces
+ KCONFIG:=CONFIG_CAN_PEAK_USB
+ FILES:=$(LINUX_DIR)/drivers/net/can/usb/peak_usb/peak_usb.ko
+ AUTOLOAD:=$(call AutoProbe,peak_usb)
+ $(call AddDepends/can,+kmod-usb-core)
+endef
+
+define KernelPackage/can-usb-peak/description
+ This driver supports the PCAN-USB and PCAN-USB Pro adapters
+ from PEAK-System Technik (http://www.peak-system.com).
+endef
+
+$(eval $(call KernelPackage,can-usb-peak))
+
+
+define KernelPackage/can-vcan
+ TITLE:=Virtual Local CAN Interface (vcan)
+ KCONFIG:=CONFIG_CAN_VCAN
+ FILES:=$(LINUX_DIR)/drivers/net/can/vcan.ko
+ AUTOLOAD:=$(call AutoProbe,vcan)
+ $(call AddDepends/can)
+endef
+
+define KernelPackage/can-vcan/description
+ Similar to the network loopback devices, vcan offers a
+ virtual local CAN interface.
+endef
+
+$(eval $(call KernelPackage,can-vcan))
+
+define KernelPackage/can-xilinx-can
+ TITLE:=Xilinx CAN IP
+ KCONFIG:=CONFIG_CAN_XILINXCAN
+ FILES:=$(LINUX_DIR)/drivers/net/can/xilinx_can.ko
+ AUTOLOAD:=$(call AutoProbe,xilinx_can)
+ $(call AddDepends/can,@TARGET_zynq)
+endef
+
+define KernelPackage/can-xilinx-can/description
+ Xilinx CAN driver. This driver supports both
+ soft AXI CAN IP and Zynq CANPS IP.
+endef
+
+$(eval $(call KernelPackage,can-xilinx-can))
diff --git a/package/kernel/linux/modules/crypto.mk b/package/kernel/linux/modules/crypto.mk
new file mode 100644
index 0000000..9e4397e
--- /dev/null
+++ b/package/kernel/linux/modules/crypto.mk
@@ -0,0 +1,1181 @@
+#
+# Copyright (C) 2006-2011 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+CRYPTO_MENU:=Cryptographic API modules
+
+CRYPTO_MODULES = \
+ ALGAPI2=crypto_algapi \
+ BLKCIPHER2=crypto_blkcipher
+
+CRYPTO_TARGET = $(BOARD)/$(SUBTARGET)
+
+crypto_confvar=CONFIG_CRYPTO_$(word 1,$(subst =,$(space),$(1)))
+crypto_file=$(LINUX_DIR)/crypto/$(word 2,$(subst =,$(space),$(1))).ko
+crypto_name=$(if $(findstring y,$($(call crypto_confvar,$(1)))),,$(word 2,$(subst =,$(space),$(1))))
+
+define AddDepends/crypto
+ SUBMENU:=$(CRYPTO_MENU)
+ DEPENDS+= $(1)
+endef
+
+
+define KernelPackage/crypto-acompress
+ TITLE:=Asynchronous Compression operations
+ HIDDEN:=1
+ KCONFIG:=CONFIG_CRYPTO_ACOMP2
+ FILES:=$(LINUX_DIR)/crypto/crypto_acompress.ko
+ AUTOLOAD:=$(call AutoLoad,09,crypto_acompress)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-acompress))
+
+
+define KernelPackage/crypto-aead
+ TITLE:=CryptoAPI AEAD support
+ KCONFIG:= \
+ CONFIG_CRYPTO_AEAD \
+ CONFIG_CRYPTO_AEAD2 \
+ CONFIG_CRYPTO_GENIV=y@lt6.6
+ FILES:= \
+ $(LINUX_DIR)/crypto/aead.ko
+ AUTOLOAD:=$(call AutoLoad,09,aead,1)
+ $(call AddDepends/crypto, +kmod-crypto-null)
+endef
+
+$(eval $(call KernelPackage,crypto-aead))
+
+
+define KernelPackage/crypto-arc4
+ TITLE:=ARC4 cipher CryptoAPI module
+ DEPENDS:=+kmod-crypto-user
+ KCONFIG:= \
+ CONFIG_CRYPTO_ARC4 \
+ CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y
+ FILES:= \
+ $(LINUX_DIR)/crypto/arc4.ko \
+ $(LINUX_DIR)/lib/crypto/libarc4.ko
+ AUTOLOAD:=$(call AutoLoad,09,arc4)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-arc4))
+
+
+define KernelPackage/crypto-authenc
+ TITLE:=Combined mode wrapper for IPsec
+ DEPENDS:=+kmod-crypto-manager +kmod-crypto-null
+ KCONFIG:=CONFIG_CRYPTO_AUTHENC
+ FILES:= \
+ $(LINUX_DIR)/crypto/authenc.ko \
+ $(LINUX_DIR)/crypto/authencesn.ko
+ AUTOLOAD:=$(call AutoLoad,09,authenc authencesn)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-authenc))
+
+
+define KernelPackage/crypto-blake2b
+ TITLE:=Support for BLAKE2b cryptographic hash function (RFC 7693)
+ DEPENDS:=+kmod-crypto-hash
+ KCONFIG:=CONFIG_CRYPTO_BLAKE2B
+ FILES:=$(LINUX_DIR)/crypto/blake2b_generic.ko
+ AUTOLOAD:=$(call AutoLoad,09,blake2b_generic)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-blake2b))
+
+
+define KernelPackage/crypto-cbc
+ TITLE:=Cipher Block Chaining CryptoAPI module
+ DEPENDS:=+kmod-crypto-manager
+ KCONFIG:=CONFIG_CRYPTO_CBC
+ FILES:=$(LINUX_DIR)/crypto/cbc.ko
+ AUTOLOAD:=$(call AutoLoad,09,cbc)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-cbc))
+
+
+define KernelPackage/crypto-ccm
+ TITLE:=Support for Counter with CBC MAC (CCM)
+ DEPENDS:=+kmod-crypto-ctr +kmod-crypto-aead
+ KCONFIG:=CONFIG_CRYPTO_CCM
+ FILES:=$(LINUX_DIR)/crypto/ccm.ko
+ AUTOLOAD:=$(call AutoLoad,09,ccm)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-ccm))
+
+
+define KernelPackage/crypto-chacha20poly1305
+ TITLE:=ChaCha20-Poly1305 AEAD support, RFC7539 (used by strongSwan IPsec VPN)
+ DEPENDS:=+kmod-crypto-aead +kmod-crypto-manager
+ KCONFIG:=CONFIG_CRYPTO_CHACHA20POLY1305
+ FILES:=$(LINUX_DIR)/crypto/chacha20poly1305.ko
+ AUTOLOAD:=$(call AutoLoad,09,chacha20poly1305)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-chacha20poly1305))
+
+
+define KernelPackage/crypto-cmac
+ TITLE:=Support for Cipher-based Message Authentication Code (CMAC)
+ DEPENDS:=+kmod-crypto-hash
+ KCONFIG:=CONFIG_CRYPTO_CMAC
+ FILES:=$(LINUX_DIR)/crypto/cmac.ko
+ AUTOLOAD:=$(call AutoLoad,09,cmac)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-cmac))
+
+
+define KernelPackage/crypto-crc32
+ TITLE:=CRC32 CRC module
+ DEPENDS:=+kmod-crypto-hash
+ KCONFIG:=CONFIG_CRYPTO_CRC32
+ HIDDEN:=1
+ FILES:=$(LINUX_DIR)/crypto/crc32_generic.ko
+ AUTOLOAD:=$(call AutoLoad,04,crc32_generic,1)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-crc32))
+
+
+define KernelPackage/crypto-crc32c
+ TITLE:=CRC32c CRC module
+ DEPENDS:=+kmod-crypto-hash
+ KCONFIG:=CONFIG_CRYPTO_CRC32C
+ FILES:=$(LINUX_DIR)/crypto/crc32c_generic.ko
+ AUTOLOAD:=$(call AutoLoad,04,crc32c_generic,1)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-crc32c))
+
+
+define KernelPackage/crypto-ctr
+ TITLE:=Counter Mode CryptoAPI module
+ DEPENDS:=+kmod-crypto-manager +kmod-crypto-seqiv
+ KCONFIG:=CONFIG_CRYPTO_CTR
+ FILES:=$(LINUX_DIR)/crypto/ctr.ko
+ AUTOLOAD:=$(call AutoLoad,09,ctr)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-ctr))
+
+
+define KernelPackage/crypto-cts
+ TITLE:=Cipher Text Stealing CryptoAPI module
+ DEPENDS:=+kmod-crypto-manager
+ KCONFIG:=CONFIG_CRYPTO_CTS
+ FILES:=$(LINUX_DIR)/crypto/cts.ko
+ AUTOLOAD:=$(call AutoLoad,09,cts)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-cts))
+
+
+define KernelPackage/crypto-deflate
+ TITLE:=Deflate compression CryptoAPI module
+ DEPENDS:=+kmod-lib-zlib-inflate +kmod-lib-zlib-deflate +kmod-crypto-acompress
+ KCONFIG:=CONFIG_CRYPTO_DEFLATE
+ FILES:=$(LINUX_DIR)/crypto/deflate.ko
+ AUTOLOAD:=$(call AutoLoad,09,deflate)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-deflate))
+
+
+define KernelPackage/crypto-des
+ TITLE:=DES/3DES cipher CryptoAPI module
+ KCONFIG:=CONFIG_CRYPTO_DES
+ FILES:= \
+ $(LINUX_DIR)/crypto/des_generic.ko \
+ $(LINUX_DIR)/lib/crypto/libdes.ko
+ AUTOLOAD:=$(call AutoLoad,09,des_generic)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-des))
+
+
+define KernelPackage/crypto-ecb
+ TITLE:=Electronic CodeBook CryptoAPI module
+ DEPENDS:=+kmod-crypto-manager
+ KCONFIG:=CONFIG_CRYPTO_ECB
+ FILES:=$(LINUX_DIR)/crypto/ecb.ko
+ AUTOLOAD:=$(call AutoLoad,09,ecb)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-ecb))
+
+
+define KernelPackage/crypto-ecdh
+ TITLE:=ECDH algorithm
+ DEPENDS:=+kmod-crypto-kpp +kmod-crypto-rng
+ KCONFIG:= CONFIG_CRYPTO_ECDH
+ FILES:= \
+ $(LINUX_DIR)/crypto/ecdh_generic.ko \
+ $(LINUX_DIR)/crypto/ecc.ko
+ AUTOLOAD:=$(call AutoLoad,10,ecdh_generic)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-ecdh))
+
+
+define KernelPackage/crypto-echainiv
+ TITLE:=Encrypted Chain IV Generator
+ DEPENDS:=+kmod-crypto-aead +LINUX_6_6:kmod-crypto-geniv
+ KCONFIG:=CONFIG_CRYPTO_ECHAINIV
+ FILES:=$(LINUX_DIR)/crypto/echainiv.ko
+ AUTOLOAD:=$(call AutoLoad,09,echainiv)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-echainiv))
+
+
+define KernelPackage/crypto-essiv
+ TITLE:=ESSIV support for block encryption
+ DEPENDS:=+kmod-crypto-authenc
+ KCONFIG:=CONFIG_CRYPTO_ESSIV
+ FILES:= $(LINUX_DIR)/crypto/essiv.ko
+ AUTOLOAD:=$(call AutoLoad,10,essiv)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-essiv))
+
+
+define KernelPackage/crypto-fcrypt
+ TITLE:=FCRYPT cipher CryptoAPI module
+ KCONFIG:=CONFIG_CRYPTO_FCRYPT
+ FILES:=$(LINUX_DIR)/crypto/fcrypt.ko
+ AUTOLOAD:=$(call AutoLoad,09,fcrypt)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-fcrypt))
+
+
+define KernelPackage/crypto-gcm
+ TITLE:=GCM/GMAC CryptoAPI module
+ DEPENDS:=+kmod-crypto-ctr +kmod-crypto-ghash +kmod-crypto-null
+ KCONFIG:=CONFIG_CRYPTO_GCM
+ FILES:=$(LINUX_DIR)/crypto/gcm.ko
+ AUTOLOAD:=$(call AutoLoad,09,gcm)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-gcm))
+
+
+define KernelPackage/crypto-xcbc
+ TITLE:=XCBC CryptoAPI module
+ DEPENDS:=+kmod-crypto-hash +kmod-crypto-manager
+ KCONFIG:=CONFIG_CRYPTO_XCBC
+ FILES:=$(LINUX_DIR)/crypto/xcbc.ko
+ AUTOLOAD:=$(call AutoLoad,09,xcbc)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-xcbc))
+
+
+define KernelPackage/crypto-gf128
+ TITLE:=GF(2^128) multiplication functions CryptoAPI module
+ KCONFIG:= \
+ CONFIG_CRYPTO_GF128MUL \
+ CONFIG_CRYPTO_LIB_GF128MUL
+ FILES:= \
+ $(LINUX_DIR)/crypto/gf128mul.ko@lt6.2 \
+ $(LINUX_DIR)/lib/crypto/gf128mul.ko@ge6.2
+ AUTOLOAD:=$(call AutoLoad,09,gf128mul)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-gf128))
+
+
+define KernelPackage/crypto-ghash
+ TITLE:=GHASH digest CryptoAPI module
+ DEPENDS:=+kmod-crypto-gf128 +kmod-crypto-hash
+ KCONFIG:= \
+ CONFIG_CRYPTO_GHASH \
+ CONFIG_CRYPTO_GHASH_ARM_CE
+ FILES:=$(LINUX_DIR)/crypto/ghash-generic.ko
+ AUTOLOAD:=$(call AutoLoad,09,ghash-generic)
+ $(call AddDepends/crypto)
+endef
+
+define KernelPackage/crypto-ghash/arm-ce
+ FILES+= $(LINUX_DIR)/arch/arm/crypto/ghash-arm-ce.ko
+ AUTOLOAD+=$(call AutoLoad,09,ghash-arm-ce)
+endef
+
+KernelPackage/crypto-ghash/imx/cortexa7=$(KernelPackage/crypto-ghash/arm-ce)
+KernelPackage/crypto-ghash/imx/cortexa9=$(KernelPackage/crypto-ghash/arm-ce)
+KernelPackage/crypto-ghash/ipq40xx=$(KernelPackage/crypto-ghash/arm-ce)
+KernelPackage/crypto-ghash/mvebu/cortexa9=$(KernelPackage/crypto-ghash/arm-ce)
+
+$(eval $(call KernelPackage,crypto-ghash))
+
+
+define KernelPackage/crypto-hash
+ TITLE:=CryptoAPI hash support
+ KCONFIG:=CONFIG_CRYPTO_HASH
+ FILES:=$(LINUX_DIR)/crypto/crypto_hash.ko
+ AUTOLOAD:=$(call AutoLoad,02,crypto_hash,1)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-hash))
+
+
+define KernelPackage/crypto-hmac
+ TITLE:=HMAC digest CryptoAPI module
+ DEPENDS:=+kmod-crypto-hash +kmod-crypto-manager
+ KCONFIG:=CONFIG_CRYPTO_HMAC
+ FILES:=$(LINUX_DIR)/crypto/hmac.ko
+ AUTOLOAD:=$(call AutoLoad,09,hmac)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-hmac))
+
+
+define KernelPackage/crypto-hw-atmel
+ TITLE:=Microchip / Atmel ECC/SHA/RNG hw accelerator
+ DEPENDS:=+kmod-i2c-core +kmod-crypto-ecdh +kmod-crypto-sha1 \
+ +kmod-crypto-sha256 +kmod-lib-crc16 +kmod-random-core
+ KCONFIG:= \
+ CONFIG_CRYPTO_HW=y \
+ CONFIG_CRYPTO_DEV_ATMEL_I2C \
+ CONFIG_CRYPTO_DEV_ATMEL_ECC \
+ CONFIG_CRYPTO_DEV_ATMEL_SHA204A
+ FILES:= \
+ $(LINUX_DIR)/drivers/crypto/atmel-i2c.ko \
+ $(LINUX_DIR)/drivers/crypto/atmel-ecc.ko \
+ $(LINUX_DIR)/drivers/crypto/atmel-sha204a.ko
+ AUTOLOAD:=$(call AutoLoad,09,atmel-i2c atmel-ecc atmel-sha204a)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-hw-atmel))
+
+
+define KernelPackage/crypto-hw-ccp
+ TITLE:=AMD Cryptographic Coprocessor
+ DEPENDS:= \
+ @TARGET_x86 \
+ +kmod-crypto-authenc \
+ +kmod-crypto-hash \
+ +kmod-crypto-manager \
+ +kmod-crypto-rsa \
+ +kmod-crypto-sha1 \
+ +kmod-crypto-sha256 \
+ +kmod-random-core
+ KCONFIG:= \
+ CONFIG_CRYPTO_HW=y \
+ CONFIG_CRYPTO_DEV_CCP=y \
+ CONFIG_CRYPTO_DEV_CCP_CRYPTO \
+ CONFIG_CRYPTO_DEV_CCP_DD \
+ CONFIG_CRYPTO_DEV_SP_CCP=y
+ FILES:= \
+ $(LINUX_DIR)/drivers/crypto/ccp/ccp.ko \
+ $(LINUX_DIR)/drivers/crypto/ccp/ccp-crypto.ko
+ AUTOLOAD:=$(call AutoLoad,09,ccp ccp-crypto)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-hw-ccp))
+
+
+define KernelPackage/crypto-hw-geode
+ TITLE:=AMD Geode hardware crypto module
+ DEPENDS:=@TARGET_x86_geode +kmod-crypto-manager
+ KCONFIG:= \
+ CONFIG_CRYPTO_HW=y \
+ CONFIG_CRYPTO_DEV_GEODE
+ FILES:=$(LINUX_DIR)/drivers/crypto/geode-aes.ko
+ AUTOLOAD:=$(call AutoLoad,09,geode-aes)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-hw-geode))
+
+
+define KernelPackage/crypto-hw-hifn-795x
+ TITLE:=HIFN 795x crypto accelerator
+ DEPENDS:=@PCI_SUPPORT +kmod-random-core +kmod-crypto-manager
+ KCONFIG:= \
+ CONFIG_CRYPTO_HW=y \
+ CONFIG_CRYPTO_DEV_HIFN_795X \
+ CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
+ FILES:=$(LINUX_DIR)/drivers/crypto/hifn_795x.ko
+ AUTOLOAD:=$(call AutoLoad,09,hifn_795x)
+ $(call AddDepends/crypto,+kmod-crypto-des)
+endef
+
+$(eval $(call KernelPackage,crypto-hw-hifn-795x))
+
+define KernelPackage/crypto-hw-ixp4xx
+ TITLE:=Intel IXP4xx crypto accelerator
+ DEPENDS:=@TARGET_ixp4xx +kmod-random-core +kmod-crypto-manager +kmod-crypto-authenc +kmod-crypto-des
+ KCONFIG:= \
+ CONFIG_CRYPTO_HW=y \
+ CONFIG_CRYPTO_DEV_IXP4XX
+ FILES:=$(LINUX_DIR)/drivers/crypto/ixp4xx_crypto.ko
+ AUTOLOAD:=$(call AutoProbe,ixp4xx_crypto)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-hw-ixp4xx))
+
+
+define KernelPackage/crypto-hw-padlock
+ TITLE:=VIA PadLock ACE with AES/SHA hw crypto module
+ DEPENDS:=+kmod-crypto-manager
+ KCONFIG:= \
+ CONFIG_CRYPTO_HW=y \
+ CONFIG_CRYPTO_DEV_PADLOCK \
+ CONFIG_CRYPTO_DEV_PADLOCK_AES \
+ CONFIG_CRYPTO_DEV_PADLOCK_SHA
+ FILES:= \
+ $(LINUX_DIR)/drivers/crypto/padlock-aes.ko \
+ $(LINUX_DIR)/drivers/crypto/padlock-sha.ko
+ AUTOLOAD:=$(call AutoLoad,09,padlock-aes padlock-sha)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-hw-padlock))
+
+
+define KernelPackage/crypto-hw-safexcel
+ TITLE:= MVEBU SafeXcel Crypto Engine module
+ DEPENDS:=@(TARGET_mvebu_cortexa53||TARGET_mvebu_cortexa72||TARGET_mediatek_filogic||TARGET_mediatek_mt7623) \
+ +eip197-mini-firmware +kmod-crypto-authenc +kmod-crypto-des +kmod-crypto-md5 +kmod-crypto-hmac \
+ +kmod-crypto-sha1 +kmod-crypto-sha256 +kmod-crypto-sha512
+ KCONFIG:= \
+ CONFIG_CRYPTO_HW=y \
+ CONFIG_CRYPTO_DEV_SAFEXCEL
+ FILES:=$(LINUX_DIR)/drivers/crypto/inside-secure/crypto_safexcel.ko
+ AUTOLOAD:=$(call AutoLoad,90,crypto_safexcel)
+ $(call AddDepends/crypto)
+endef
+
+define KernelPackage/crypto-hw-safexcel/description
+MVEBU's EIP97 and EIP197 Cryptographic Engine driver designed by
+Inside Secure. This is found on Marvell Armada 37xx/7k/8k SoCs.
+
+Particular version of these IP (EIP197B and EIP197D) require firmware.
+The mini firmware package provides limited functionality, for most operations
+a full-featured firmware is required. Unfortunately the "full" firmware is not
+freely available and needs signed Non-Disclosure Agreement (NDA) with Marvell.
+For those who have signed NDA the firmware can be obtained at
+https://extranet.marvell.com.
+endef
+
+$(eval $(call KernelPackage,crypto-hw-safexcel))
+
+
+define KernelPackage/crypto-hw-talitos
+ TITLE:=Freescale integrated security engine (SEC) driver
+ DEPENDS:=@(TARGET_mpc85xx||TARGET_layerscape) +kmod-crypto-manager \
+ +kmod-crypto-hash +kmod-random-core +kmod-crypto-authenc +kmod-crypto-des
+ KCONFIG:= \
+ CONFIG_CRYPTO_HW=y \
+ CONFIG_CRYPTO_DEV_TALITOS \
+ CONFIG_CRYPTO_DEV_TALITOS1=y \
+ CONFIG_CRYPTO_DEV_TALITOS2=y
+ FILES:= \
+ $(LINUX_DIR)/drivers/crypto/talitos.ko
+ AUTOLOAD:=$(call AutoLoad,09,talitos)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-hw-talitos))
+
+
+define KernelPackage/crypto-kpp
+ TITLE:=Key-agreement Protocol Primitives
+ KCONFIG:=CONFIG_CRYPTO_KPP
+ FILES:=$(LINUX_DIR)/crypto/kpp.ko
+ AUTOLOAD:=$(call AutoLoad,09,kpp)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-kpp))
+
+define KernelPackage/crypto-lib-chacha20
+ TITLE:=ChaCha library interface
+ KCONFIG:=CONFIG_CRYPTO_LIB_CHACHA
+ HIDDEN:=1
+ FILES:=$(LINUX_DIR)/lib/crypto/libchacha.ko
+ $(call AddDepends/crypto)
+endef
+
+define KernelPackage/crypto-lib-chacha20/x86_64
+ KCONFIG+=CONFIG_CRYPTO_CHACHA20_X86_64
+ FILES+=$(LINUX_DIR)/arch/x86/crypto/chacha-x86_64.ko
+endef
+
+# Note that a non-neon fallback implementation is available on arm32 when
+# NEON is not supported, hence all arm targets can utilize lib-chacha20/arm
+define KernelPackage/crypto-lib-chacha20/arm
+ KCONFIG+=CONFIG_CRYPTO_CHACHA20_NEON
+ FILES:=$(LINUX_DIR)/arch/arm/crypto/chacha-neon.ko
+endef
+
+KernelPackage/crypto-lib-chacha20/armeb=$(KernelPackage/crypto-lib-chacha20/arm)
+
+define KernelPackage/crypto-lib-chacha20/aarch64
+ KCONFIG+=CONFIG_CRYPTO_CHACHA20_NEON
+ FILES+=$(LINUX_DIR)/arch/arm64/crypto/chacha-neon.ko
+endef
+
+define KernelPackage/crypto-lib-chacha20/mips32r2
+ KCONFIG+=CONFIG_CRYPTO_CHACHA_MIPS
+ FILES:=$(LINUX_DIR)/arch/mips/crypto/chacha-mips.ko
+endef
+
+ifeq ($(CONFIG_CPU_MIPS32_R2),y)
+ KernelPackage/crypto-lib-chacha20/$(ARCH)=\
+ $(KernelPackage/crypto-lib-chacha20/mips32r2)
+endif
+
+ifdef KernelPackage/crypto-lib-chacha20/$(ARCH)
+ KernelPackage/crypto-lib-chacha20/$(CRYPTO_TARGET)=\
+ $(KernelPackage/crypto-lib-chacha20/$(ARCH))
+endif
+
+$(eval $(call KernelPackage,crypto-lib-chacha20))
+
+
+define KernelPackage/crypto-lib-chacha20poly1305
+ TITLE:=ChaCha20-Poly1305 AEAD support (8-byte nonce library version)
+ KCONFIG:=CONFIG_CRYPTO_LIB_CHACHA20POLY1305
+ HIDDEN:=1
+ FILES:=$(LINUX_DIR)/lib/crypto/libchacha20poly1305.ko
+ $(call AddDepends/crypto, +kmod-crypto-lib-chacha20 +kmod-crypto-lib-poly1305)
+endef
+
+$(eval $(call KernelPackage,crypto-lib-chacha20poly1305))
+
+
+define KernelPackage/crypto-lib-curve25519
+ TITLE:=Curve25519 scalar multiplication library
+ KCONFIG:=CONFIG_CRYPTO_LIB_CURVE25519
+ HIDDEN:=1
+ FILES:= \
+ $(LINUX_DIR)/lib/crypto/libcurve25519.ko \
+ $(LINUX_DIR)/lib/crypto/libcurve25519-generic.ko
+ $(call AddDepends/crypto,+PACKAGE_kmod-crypto-kpp:kmod-crypto-kpp)
+endef
+
+define KernelPackage/crypto-lib-curve25519/config
+ imply PACKAGE_kmod-crypto-kpp
+endef
+
+define KernelPackage/crypto-lib-curve25519/x86_64
+ KCONFIG+=CONFIG_CRYPTO_CURVE25519_X86
+ FILES+=$(LINUX_DIR)/arch/x86/crypto/curve25519-x86_64.ko
+endef
+
+define KernelPackage/crypto-lib-curve25519/arm-neon
+ KCONFIG+=CONFIG_CRYPTO_CURVE25519_NEON
+ FILES+=$(LINUX_DIR)/arch/arm/crypto/curve25519-neon.ko
+endef
+
+ifeq ($(ARCH)-$(CONFIG_KERNEL_MODE_NEON),arm-y)
+ KernelPackage/crypto-lib-curve25519/$(CRYPTO_TARGET)=\
+ $(KernelPackage/crypto-lib-curve25519/arm-neon)
+endif
+
+ifdef KernelPackage/crypto-lib-curve25519/$(ARCH)
+ KernelPackage/crypto-lib-curve25519/$(CRYPTO_TARGET)=\
+ $(KernelPackage/crypto-lib-curve25519/$(ARCH))
+endif
+
+$(eval $(call KernelPackage,crypto-lib-curve25519))
+
+
+define KernelPackage/crypto-lib-poly1305
+ TITLE:=Poly1305 library interface
+ KCONFIG:=CONFIG_CRYPTO_LIB_POLY1305
+ HIDDEN:=1
+ FILES:=$(LINUX_DIR)/lib/crypto/libpoly1305.ko
+ $(call AddDepends/crypto,+PACKAGE_kmod-crypto-hash:kmod-crypto-hash)
+endef
+
+define KernelPackage/crypto-lib-poly1305/config
+ imply PACKAGE_kmod-crypto-hash
+endef
+
+define KernelPackage/crypto-lib-poly1305/x86_64
+ KCONFIG+=CONFIG_CRYPTO_POLY1305_X86_64
+ FILES+=$(LINUX_DIR)/arch/x86/crypto/poly1305-x86_64.ko
+endef
+
+define KernelPackage/crypto-lib-poly1305/arm
+ KCONFIG+=CONFIG_CRYPTO_POLY1305_ARM
+ FILES:=$(LINUX_DIR)/arch/arm/crypto/poly1305-arm.ko
+endef
+
+KernelPackage/crypto-lib-poly1305/armeb=$(KernelPackage/crypto-lib-poly1305/arm)
+
+define KernelPackage/crypto-lib-poly1305/aarch64
+ KCONFIG+=CONFIG_CRYPTO_POLY1305_NEON
+ FILES:=$(LINUX_DIR)/arch/arm64/crypto/poly1305-neon.ko
+endef
+
+define KernelPackage/crypto-lib-poly1305/mips
+ KCONFIG+=CONFIG_CRYPTO_POLY1305_MIPS
+ FILES:=$(LINUX_DIR)/arch/mips/crypto/poly1305-mips.ko
+endef
+
+KernelPackage/crypto-lib-poly1305/mipsel=$(KernelPackage/crypto-lib-poly1305/mips)
+KernelPackage/crypto-lib-poly1305/mips64=$(KernelPackage/crypto-lib-poly1305/mips)
+KernelPackage/crypto-lib-poly1305/mips64el=$(KernelPackage/crypto-lib-poly1305/mips)
+
+ifdef KernelPackage/crypto-lib-poly1305/$(ARCH)
+ KernelPackage/crypto-lib-poly1305/$(CRYPTO_TARGET)=\
+ $(KernelPackage/crypto-lib-poly1305/$(ARCH))
+endif
+
+$(eval $(call KernelPackage,crypto-lib-poly1305))
+
+
+define KernelPackage/crypto-manager
+ TITLE:=CryptoAPI algorithm manager
+ DEPENDS:=+kmod-crypto-aead +kmod-crypto-hash
+ KCONFIG:= \
+ CONFIG_CRYPTO_MANAGER \
+ CONFIG_CRYPTO_MANAGER2
+ FILES:=$(LINUX_DIR)/crypto/cryptomgr.ko
+ AUTOLOAD:=$(call AutoLoad,09,cryptomgr,1)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-manager))
+
+
+define KernelPackage/crypto-md4
+ TITLE:=MD4 digest CryptoAPI module
+ DEPENDS:=+kmod-crypto-hash
+ KCONFIG:=CONFIG_CRYPTO_MD4
+ FILES:=$(LINUX_DIR)/crypto/md4.ko
+ AUTOLOAD:=$(call AutoLoad,09,md4)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-md4))
+
+
+define KernelPackage/crypto-md5
+ TITLE:=MD5 digest CryptoAPI module
+ DEPENDS:=+kmod-crypto-hash
+ KCONFIG:= \
+ CONFIG_CRYPTO_MD5 \
+ CONFIG_CRYPTO_MD5_OCTEON \
+ CONFIG_CRYPTO_MD5_PPC
+ FILES:=$(LINUX_DIR)/crypto/md5.ko
+ AUTOLOAD:=$(call AutoLoad,09,md5)
+ $(call AddDepends/crypto)
+endef
+
+define KernelPackage/crypto-md5/octeon
+ FILES+=$(LINUX_DIR)/arch/mips/cavium-octeon/crypto/octeon-md5.ko
+ AUTOLOAD+=$(call AutoLoad,09,octeon-md5)
+endef
+
+define KernelPackage/crypto-md5/powerpc
+ FILES+=$(LINUX_DIR)/arch/powerpc/crypto/md5-ppc.ko
+ AUTOLOAD+=$(call AutoLoad,09,md5-ppc)
+endef
+
+ifdef KernelPackage/crypto-md5/$(ARCH)
+ KernelPackage/crypto-md5/$(CRYPTO_TARGET)=\
+ $(KernelPackage/crypto-md5/$(ARCH))
+endif
+
+$(eval $(call KernelPackage,crypto-md5))
+
+
+define KernelPackage/crypto-michael-mic
+ TITLE:=Michael MIC keyed digest CryptoAPI module
+ DEPENDS:=+kmod-crypto-hash
+ KCONFIG:=CONFIG_CRYPTO_MICHAEL_MIC
+ FILES:=$(LINUX_DIR)/crypto/michael_mic.ko
+ AUTOLOAD:=$(call AutoLoad,09,michael_mic)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-michael-mic))
+
+
+define KernelPackage/crypto-misc
+ TITLE:=Other CryptoAPI modules
+ DEPENDS:=+kmod-crypto-xts +kmod-crypto-user
+ KCONFIG:= \
+ CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y \
+ CONFIG_CRYPTO_CAMELLIA_X86_64 \
+ CONFIG_CRYPTO_BLOWFISH_X86_64 \
+ CONFIG_CRYPTO_TWOFISH_X86_64 \
+ CONFIG_CRYPTO_TWOFISH_X86_64_3WAY \
+ CONFIG_CRYPTO_SERPENT_SSE2_X86_64 \
+ CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64 \
+ CONFIG_CRYPTO_CAST5_AVX_X86_64 \
+ CONFIG_CRYPTO_CAST6_AVX_X86_64 \
+ CONFIG_CRYPTO_TWOFISH_AVX_X86_64 \
+ CONFIG_CRYPTO_SERPENT_AVX_X86_64 \
+ CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 \
+ CONFIG_CRYPTO_SERPENT_AVX2_X86_64 \
+ CONFIG_CRYPTO_SERPENT_SSE2_586 \
+ CONFIG_CRYPTO_ANUBIS \
+ CONFIG_CRYPTO_BLOWFISH \
+ CONFIG_CRYPTO_CAMELLIA \
+ CONFIG_CRYPTO_CAST5 \
+ CONFIG_CRYPTO_CAST6 \
+ CONFIG_CRYPTO_FCRYPT \
+ CONFIG_CRYPTO_KHAZAD \
+ CONFIG_CRYPTO_SERPENT \
+ CONFIG_CRYPTO_TEA \
+ CONFIG_CRYPTO_TGR192@lt5.12 \
+ CONFIG_CRYPTO_TWOFISH \
+ CONFIG_CRYPTO_TWOFISH_COMMON \
+ CONFIG_CRYPTO_TWOFISH_586 \
+ CONFIG_CRYPTO_WP512
+ FILES:= \
+ $(LINUX_DIR)/crypto/anubis.ko \
+ $(LINUX_DIR)/crypto/camellia_generic.ko \
+ $(LINUX_DIR)/crypto/cast_common.ko \
+ $(LINUX_DIR)/crypto/cast5_generic.ko \
+ $(LINUX_DIR)/crypto/cast6_generic.ko \
+ $(LINUX_DIR)/crypto/khazad.ko \
+ $(LINUX_DIR)/crypto/tea.ko \
+ $(LINUX_DIR)/crypto/tgr192.ko@lt5.12 \
+ $(LINUX_DIR)/crypto/twofish_common.ko \
+ $(LINUX_DIR)/crypto/wp512.ko \
+ $(LINUX_DIR)/crypto/twofish_generic.ko \
+ $(LINUX_DIR)/crypto/blowfish_common.ko \
+ $(LINUX_DIR)/crypto/blowfish_generic.ko \
+ $(LINUX_DIR)/crypto/serpent_generic.ko
+ AUTOLOAD:=$(call AutoLoad,10,anubis camellia_generic cast_common \
+ cast5_generic cast6_generic khazad tea tgr192@lt5.12 twofish_common \
+ wp512 blowfish_common serpent_generic)
+ ifndef CONFIG_TARGET_x86
+ AUTOLOAD+= $(call AutoLoad,10,twofish_generic blowfish_generic)
+ endif
+ $(call AddDepends/crypto)
+endef
+
+ifndef CONFIG_TARGET_x86_64
+ define KernelPackage/crypto-misc/x86
+ FILES+= \
+ $(LINUX_DIR)/arch/x86/crypto/twofish-i586.ko \
+ $(LINUX_DIR)/arch/x86/crypto/serpent-sse2-i586.ko \
+ $(LINUX_DIR)/arch/x86/crypto/glue_helper.ko@lt5.12 \
+ $(LINUX_DIR)/crypto/cryptd.ko \
+ $(LINUX_DIR)/crypto/crypto_simd.ko
+ AUTOLOAD+= $(call AutoLoad,10,cryptd glue_helper@lt5.12 \
+ serpent-sse2-i586 twofish-i586 blowfish_generic)
+ endef
+endif
+
+define KernelPackage/crypto-misc/x86_64
+ FILES+= \
+ $(LINUX_DIR)/arch/x86/crypto/camellia-x86_64.ko \
+ $(LINUX_DIR)/arch/x86/crypto/blowfish-x86_64.ko \
+ $(LINUX_DIR)/arch/x86/crypto/twofish-x86_64.ko \
+ $(LINUX_DIR)/arch/x86/crypto/twofish-x86_64-3way.ko \
+ $(LINUX_DIR)/arch/x86/crypto/serpent-sse2-x86_64.ko \
+ $(LINUX_DIR)/arch/x86/crypto/camellia-aesni-avx-x86_64.ko \
+ $(LINUX_DIR)/arch/x86/crypto/cast5-avx-x86_64.ko \
+ $(LINUX_DIR)/arch/x86/crypto/cast6-avx-x86_64.ko \
+ $(LINUX_DIR)/arch/x86/crypto/twofish-avx-x86_64.ko \
+ $(LINUX_DIR)/arch/x86/crypto/serpent-avx-x86_64.ko \
+ $(LINUX_DIR)/arch/x86/crypto/camellia-aesni-avx2.ko \
+ $(LINUX_DIR)/arch/x86/crypto/serpent-avx2.ko
+ AUTOLOAD+= $(call AutoLoad,10,camellia-x86_64 \
+ camellia-aesni-avx-x86_64 camellia-aesni-avx2 cast5-avx-x86_64 \
+ cast6-avx-x86_64 twofish-x86_64 twofish-x86_64-3way \
+ twofish-avx-x86_64 blowfish-x86_64 serpent-avx-x86_64 serpent-avx2)
+endef
+
+ifdef KernelPackage/crypto-misc/$(ARCH)
+ KernelPackage/crypto-misc/$(CRYPTO_TARGET)=\
+ $(KernelPackage/crypto-misc/$(ARCH))
+endif
+
+$(eval $(call KernelPackage,crypto-misc))
+
+
+define KernelPackage/crypto-null
+ TITLE:=Null CryptoAPI module
+ KCONFIG:=CONFIG_CRYPTO_NULL
+ FILES:=$(LINUX_DIR)/crypto/crypto_null.ko
+ AUTOLOAD:=$(call AutoLoad,09,crypto_null)
+ $(call AddDepends/crypto, +kmod-crypto-hash)
+endef
+
+$(eval $(call KernelPackage,crypto-null))
+
+
+define KernelPackage/crypto-pcbc
+ TITLE:=Propagating Cipher Block Chaining CryptoAPI module
+ DEPENDS:=+kmod-crypto-manager
+ KCONFIG:=CONFIG_CRYPTO_PCBC
+ FILES:=$(LINUX_DIR)/crypto/pcbc.ko
+ AUTOLOAD:=$(call AutoLoad,09,pcbc)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-pcbc))
+
+
+define KernelPackage/crypto-rsa
+ TITLE:=RSA algorithm
+ DEPENDS:=+kmod-crypto-manager +kmod-asn1-decoder
+ KCONFIG:= CONFIG_CRYPTO_RSA
+ HIDDEN:=1
+ FILES:= \
+ $(LINUX_DIR)/lib/mpi/mpi.ko@lt6.5 \
+ $(LINUX_DIR)/lib/crypto/mpi/mpi.ko@ge6.5 \
+ $(LINUX_DIR)/crypto/akcipher.ko \
+ $(LINUX_DIR)/crypto/rsa_generic.ko
+ AUTOLOAD:=$(call AutoLoad,10,rsa_generic)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-rsa))
+
+
+define KernelPackage/crypto-rmd160
+ TITLE:=RIPEMD160 digest CryptoAPI module
+ DEPENDS:=+kmod-crypto-hash
+ KCONFIG:=CONFIG_CRYPTO_RMD160
+ FILES:=$(LINUX_DIR)/crypto/rmd160.ko
+ AUTOLOAD:=$(call AutoLoad,09,rmd160)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-rmd160))
+
+
+define KernelPackage/crypto-rng
+ TITLE:=CryptoAPI random number generation
+ DEPENDS:=+kmod-crypto-hash +kmod-crypto-hmac \
+ +(LINUX_5_4||LINUX_5_10):kmod-crypto-sha256 \
+ +(LINUX_5_15||LINUX_6_1||LINUX_6_6):kmod-crypto-sha512 \
+ +(LINUX_6_1||LINUX_6_6):kmod-crypto-sha3
+ KCONFIG:= \
+ CONFIG_CRYPTO_DRBG \
+ CONFIG_CRYPTO_DRBG_HMAC=y \
+ CONFIG_CRYPTO_DRBG_HASH=n \
+ CONFIG_CRYPTO_DRBG_MENU \
+ CONFIG_CRYPTO_JITTERENTROPY \
+ CONFIG_CRYPTO_RNG2
+ FILES:= \
+ $(LINUX_DIR)/crypto/drbg.ko \
+ $(LINUX_DIR)/crypto/jitterentropy_rng.ko \
+ $(LINUX_DIR)/crypto/rng.ko
+ AUTOLOAD:=$(call AutoLoad,09,drbg jitterentropy_rng rng)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-rng))
+
+
+define KernelPackage/crypto-geniv
+ TITLE:=CryptoAPI Shared IV generator
+ HIDDEN:=1
+ DEPENDS:=+kmod-crypto-rng +kmod-crypto-aead @LINUX_6_6
+ KCONFIG:=CONFIG_CRYPTO_GENIV
+ FILES:=$(LINUX_DIR)/crypto/geniv.ko
+ AUTOLOAD:=$(call AutoLoad,09,geniv)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-geniv))
+
+
+define KernelPackage/crypto-seqiv
+ TITLE:=CryptoAPI Sequence Number IV Generator
+ DEPENDS:=+kmod-crypto-aead +kmod-crypto-rng +LINUX_6_6:kmod-crypto-geniv
+ KCONFIG:=CONFIG_CRYPTO_SEQIV
+ FILES:=$(LINUX_DIR)/crypto/seqiv.ko
+ AUTOLOAD:=$(call AutoLoad,09,seqiv)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-seqiv))
+
+
+define KernelPackage/crypto-sha1
+ TITLE:=SHA1 digest CryptoAPI module
+ DEPENDS:=+kmod-crypto-hash
+ KCONFIG:= \
+ CONFIG_CRYPTO_SHA1 \
+ CONFIG_CRYPTO_SHA1_ARM \
+ CONFIG_CRYPTO_SHA1_ARM_NEON \
+ CONFIG_CRYPTO_SHA1_ARM64_CE \
+ CONFIG_CRYPTO_SHA1_OCTEON \
+ CONFIG_CRYPTO_SHA1_PPC_SPE \
+ CONFIG_CRYPTO_SHA1_SSSE3
+ FILES:=$(LINUX_DIR)/crypto/sha1_generic.ko
+ AUTOLOAD:=$(call AutoLoad,09,sha1_generic)
+ $(call AddDepends/crypto)
+endef
+
+define KernelPackage/crypto-sha1/arm
+ FILES+=$(LINUX_DIR)/arch/arm/crypto/sha1-arm.ko
+ AUTOLOAD+=$(call AutoLoad,09,sha1-arm)
+endef
+
+define KernelPackage/crypto-sha1/arm-neon
+ $(call KernelPackage/crypto-sha1/arm)
+ FILES+=$(LINUX_DIR)/arch/arm/crypto/sha1-arm-neon.ko
+ AUTOLOAD+=$(call AutoLoad,09,sha1-arm-neon)
+endef
+
+define KernelPackage/crypto-sha1/aarch64-ce
+ FILES+=$(LINUX_DIR)/arch/arm64/crypto/sha1-ce.ko
+ AUTOLOAD+=$(call AutoLoad,09,sha1-ce)
+endef
+
+KernelPackage/crypto-sha1/imx/cortexa7=$(KernelPackage/crypto-sha1/arm-neon)
+KernelPackage/crypto-sha1/imx/cortexa9=$(KernelPackage/crypto-sha1/arm-neon)
+KernelPackage/crypto-sha1/ipq40xx=$(KernelPackage/crypto-sha1/arm-neon)
+KernelPackage/crypto-sha1/mediatek/filogic=$(KernelPackage/crypto-sha1/aarch64-ce)
+KernelPackage/crypto-sha1/mediatek/mt7622=$(KernelPackage/crypto-sha1/aarch64-ce)
+KernelPackage/crypto-sha1/mvebu/cortexa9=$(KernelPackage/crypto-sha1/arm-neon)
+KernelPackage/crypto-sha1/mvebu/cortexa53=$(KernelPackage/crypto-sha1/aarch64-ce)
+KernelPackage/crypto-sha1/mvebu/cortexa72=$(KernelPackage/crypto-sha1/aarch64-ce)
+KernelPackage/crypto-sha1/qualcommax=$(KernelPackage/crypto-sha1/aarch64-ce)
+KernelPackage/crypto-sha1/rockchip/armv8=$(KernelPackage/crypto-sha1/aarch64-ce)
+
+define KernelPackage/crypto-sha1/octeon
+ FILES+=$(LINUX_DIR)/arch/mips/cavium-octeon/crypto/octeon-sha1.ko
+ AUTOLOAD+=$(call AutoLoad,09,octeon-sha1)
+endef
+
+KernelPackage/crypto-sha1/tegra=$(KernelPackage/crypto-sha1/arm)
+
+define KernelPackage/crypto-sha1/mpc85xx
+ FILES+=$(LINUX_DIR)/arch/powerpc/crypto/sha1-ppc-spe.ko
+ AUTOLOAD+=$(call AutoLoad,09,sha1-ppc-spe)
+endef
+
+ifndef CONFIG_TARGET_uml
+define KernelPackage/crypto-sha1/x86_64
+ FILES+=$(LINUX_DIR)/arch/x86/crypto/sha1-ssse3.ko
+ AUTOLOAD+=$(call AutoLoad,09,sha1-ssse3)
+endef
+endif
+
+ifdef KernelPackage/crypto-sha1/$(ARCH)
+ KernelPackage/crypto-sha1/$(CRYPTO_TARGET)=\
+ $(KernelPackage/crypto-sha1/$(ARCH))
+endif
+
+$(eval $(call KernelPackage,crypto-sha1))
+
+
+define KernelPackage/crypto-sha3
+ TITLE:=SHA3 digest CryptoAPI module
+ DEPENDS:=+kmod-crypto-hash
+ KCONFIG:= CONFIG_CRYPTO_SHA3
+ FILES:=$(LINUX_DIR)/crypto/sha3_generic.ko
+ AUTOLOAD:=$(call AutoLoad,09,sha3_generic)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-sha3))
+
+
+define KernelPackage/crypto-sha256
+ TITLE:=SHA224 SHA256 digest CryptoAPI module
+ DEPENDS:=+kmod-crypto-hash
+ KCONFIG:= \
+ CONFIG_CRYPTO_SHA256 \
+ CONFIG_CRYPTO_SHA256_OCTEON \
+ CONFIG_CRYPTO_SHA256_PPC_SPE \
+ CONFIG_CRYPTO_SHA256_ARM64 \
+ CONFIG_CRYPTO_SHA2_ARM64_CE \
+ CONFIG_CRYPTO_SHA256_SSSE3
+ FILES:= \
+ $(LINUX_DIR)/crypto/sha256_generic.ko \
+ $(LINUX_DIR)/lib/crypto/libsha256.ko
+ AUTOLOAD:=$(call AutoLoad,09,sha256_generic)
+ $(call AddDepends/crypto)
+endef
+
+define KernelPackage/crypto-sha256/aarch64
+ FILES+=$(LINUX_DIR)/arch/arm64/crypto/sha256-arm64.ko
+ AUTOLOAD+=$(call AutoLoad,09,sha256-arm64)
+endef
+
+define KernelPackage/crypto-sha256/aarch64-ce
+ $(call KernelPackage/crypto-sha256/aarch64)
+ FILES+=$(LINUX_DIR)/arch/arm64/crypto/sha2-ce.ko
+ AUTOLOAD+=$(call AutoLoad,09,sha2-ce)
+endef
+
+define KernelPackage/crypto-sha256/octeon
+ FILES+=$(LINUX_DIR)/arch/mips/cavium-octeon/crypto/octeon-sha256.ko
+ AUTOLOAD+=$(call AutoLoad,09,octeon-sha256)
+endef
+
+define KernelPackage/crypto-sha256/mpc85xx
+ FILES+=$(LINUX_DIR)/arch/powerpc/crypto/sha256-ppc-spe.ko
+ AUTOLOAD+=$(call AutoLoad,09,sha256-ppc-spe)
+endef
+
+ifndef CONFIG_TARGET_uml
+define KernelPackage/crypto-sha256/x86_64
+ FILES+=$(LINUX_DIR)/arch/x86/crypto/sha256-ssse3.ko
+ AUTOLOAD+=$(call AutoLoad,09,sha256-ssse3)
+endef
+endif
+
+KernelPackage/crypto-sha256/mediatek/filogic=$(KernelPackage/crypto-sha256/aarch64-ce)
+KernelPackage/crypto-sha256/mediatek/mt7622=$(KernelPackage/crypto-sha256/aarch64-ce)
+KernelPackage/crypto-sha256/mvebu/cortexa53=$(KernelPackage/crypto-sha256/aarch64-ce)
+KernelPackage/crypto-sha256/mvebu/cortexa72=$(KernelPackage/crypto-sha256/aarch64-ce)
+KernelPackage/crypto-sha256/qualcommax=$(KernelPackage/crypto-sha256/aarch64-ce)
+KernelPackage/crypto-sha256/rockchip/armv8=$(KernelPackage/crypto-sha256/aarch64-ce)
+
+ifdef KernelPackage/crypto-sha256/$(ARCH)
+ KernelPackage/crypto-sha256/$(CRYPTO_TARGET)=\
+ $(KernelPackage/crypto-sha256/$(ARCH))
+endif
+
+$(eval $(call KernelPackage,crypto-sha256))
+
+
+define KernelPackage/crypto-sha512
+ TITLE:=SHA512 digest CryptoAPI module
+ DEPENDS:=+kmod-crypto-hash
+ KCONFIG:= \
+ CONFIG_CRYPTO_SHA512 \
+ CONFIG_CRYPTO_SHA512_ARM \
+ CONFIG_CRYPTO_SHA512_ARM64 \
+ CONFIG_CRYPTO_SHA512_OCTEON \
+ CONFIG_CRYPTO_SHA512_SSSE3
+ FILES:=$(LINUX_DIR)/crypto/sha512_generic.ko
+ AUTOLOAD:=$(call AutoLoad,09,sha512_generic)
+ $(call AddDepends/crypto)
+endef
+
+define KernelPackage/crypto-sha512/arm
+ FILES+=$(LINUX_DIR)/arch/arm/crypto/sha512-arm.ko
+ AUTOLOAD+=$(call AutoLoad,09,sha512-arm)
+endef
+
+define KernelPackage/crypto-sha512/aarch64
+ FILES+=$(LINUX_DIR)/arch/arm64/crypto/sha512-arm64.ko
+ AUTOLOAD+=$(call AutoLoad,09,sha512-arm64)
+endef
+
+KernelPackage/crypto-sha512/imx/cortexa7=$(KernelPackage/crypto-sha512/arm)
+KernelPackage/crypto-sha512/imx/cortexa9=$(KernelPackage/crypto-sha512/arm)
+KernelPackage/crypto-sha512/ipq40xx=$(KernelPackage/crypto-sha512/arm)
+KernelPackage/crypto-sha512/mvebu/cortexa9=$(KernelPackage/crypto-sha512/arm)
+
+define KernelPackage/crypto-sha512/octeon
+ FILES+=$(LINUX_DIR)/arch/mips/cavium-octeon/crypto/octeon-sha512.ko
+ AUTOLOAD+=$(call AutoLoad,09,octeon-sha512)
+endef
+
+KernelPackage/crypto-sha512/tegra=$(KernelPackage/crypto-sha512/arm)
+
+ifndef CONFIG_TARGET_uml
+define KernelPackage/crypto-sha512/x86_64
+ FILES+=$(LINUX_DIR)/arch/x86/crypto/sha512-ssse3.ko
+ AUTOLOAD+=$(call AutoLoad,09,sha512-ssse3)
+endef
+endif
+
+ifdef KernelPackage/crypto-sha512/$(ARCH)
+ KernelPackage/crypto-sha512/$(CRYPTO_TARGET)=\
+ $(KernelPackage/crypto-sha512/$(ARCH))
+endif
+
+$(eval $(call KernelPackage,crypto-sha512))
+
+
+define KernelPackage/crypto-test
+ TITLE:=Test CryptoAPI module
+ KCONFIG:=CONFIG_CRYPTO_TEST
+ FILES:=$(LINUX_DIR)/crypto/tcrypt.ko
+ $(call AddDepends/crypto,+kmod-crypto-manager)
+endef
+
+$(eval $(call KernelPackage,crypto-test))
+
+
+define KernelPackage/crypto-user
+ TITLE:=CryptoAPI userspace interface
+ DEPENDS:=+kmod-crypto-hash +kmod-crypto-manager +LINUX_6_6:kmod-crypto-rng
+ KCONFIG:= \
+ CONFIG_CRYPTO_USER \
+ CONFIG_CRYPTO_USER_API \
+ CONFIG_CRYPTO_USER_API_AEAD \
+ CONFIG_CRYPTO_USER_API_HASH \
+ CONFIG_CRYPTO_USER_API_RNG \
+ CONFIG_CRYPTO_USER_API_SKCIPHER
+ FILES:= \
+ $(LINUX_DIR)/crypto/af_alg.ko \
+ $(LINUX_DIR)/crypto/algif_aead.ko \
+ $(LINUX_DIR)/crypto/algif_hash.ko \
+ $(LINUX_DIR)/crypto/algif_rng.ko \
+ $(LINUX_DIR)/crypto/algif_skcipher.ko \
+ $(LINUX_DIR)/crypto/crypto_user.ko
+ AUTOLOAD:=$(call AutoLoad,09,af_alg algif_aead algif_hash algif_rng algif_skcipher crypto_user)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-user))
+
+
+define KernelPackage/crypto-xts
+ TITLE:=XTS cipher CryptoAPI module
+ DEPENDS:=+kmod-crypto-gf128 +kmod-crypto-manager
+ KCONFIG:=CONFIG_CRYPTO_XTS
+ FILES:=$(LINUX_DIR)/crypto/xts.ko
+ AUTOLOAD:=$(call AutoLoad,09,xts)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-xts))
+
+
+define KernelPackage/crypto-xxhash
+ TITLE:=xxHash non-cryptographic hash algorithm
+ DEPENDS:=+kmod-crypto-hash +kmod-lib-xxhash
+ KCONFIG:=CONFIG_CRYPTO_XXHASH
+ FILES:=$(LINUX_DIR)/crypto/xxhash_generic.ko
+ AUTOLOAD:=$(call AutoLoad,09,xxhash_generic)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-xxhash))
+
diff --git a/package/kernel/linux/modules/firewire.mk b/package/kernel/linux/modules/firewire.mk
new file mode 100644
index 0000000..1e2d942
--- /dev/null
+++ b/package/kernel/linux/modules/firewire.mk
@@ -0,0 +1,76 @@
+#
+# Copyright (C) 2008-2011 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+FIREWIRE_MENU:=FireWire support
+
+define KernelPackage/firewire
+ SUBMENU:=$(FIREWIRE_MENU)
+ TITLE:=Support for FireWire (new stack)
+ DEPENDS:=@PCI_SUPPORT +kmod-lib-crc-itu-t
+ KCONFIG:=CONFIG_FIREWIRE
+ FILES:=$(LINUX_DIR)/drivers/firewire/firewire-core.ko
+endef
+
+define KernelPackage/firewire/description
+ Kernel support for FireWire (new stack)
+endef
+
+$(eval $(call KernelPackage,firewire))
+
+
+define KernelPackage/firewire-net
+ SUBMENU:=$(FIREWIRE_MENU)
+ TITLE:=Support for IP networking over FireWire
+ DEPENDS:=kmod-firewire
+ KCONFIG:=CONFIG_FIREWIRE_NET
+ FILES:=$(LINUX_DIR)/drivers/firewire/firewire-net.ko
+ AUTOLOAD:=$(call AutoProbe,firewire-net)
+endef
+
+define KernelPackage/firewire-net/description
+ Kernel support for IPv4 over FireWire
+endef
+
+$(eval $(call KernelPackage,firewire-net))
+
+
+define KernelPackage/firewire-ohci
+ SUBMENU:=$(FIREWIRE_MENU)
+ TITLE:=Support for OHCI-1394 controllers
+ DEPENDS:=kmod-firewire
+ KCONFIG:= \
+ CONFIG_FIREWIRE_OHCI \
+ CONFIG_FIREWIRE_OHCI_DEBUG=n \
+ CONFIG_FIREWIRE_OHCI_REMOTE_DMA=n
+ FILES:=$(LINUX_DIR)/drivers/firewire/firewire-ohci.ko
+ AUTOLOAD:=$(call AutoProbe,firewire-ohci)
+endef
+
+
+define KernelPackage/firewire-ohci/description
+ Kernel support for FireWire OHCI-1394 controllers
+endef
+
+$(eval $(call KernelPackage,firewire-ohci))
+
+
+define KernelPackage/firewire-sbp2
+ SUBMENU:=$(FIREWIRE_MENU)
+ TITLE:=Support for SBP-2 devices over FireWire
+ DEPENDS:=kmod-firewire +kmod-scsi-core
+ KCONFIG:=CONFIG_FIREWIRE_SBP2
+ FILES:=$(LINUX_DIR)/drivers/firewire/firewire-sbp2.ko
+ AUTOLOAD:=$(call AutoProbe,firewire-sbp2)
+endef
+
+define KernelPackage/firewire-sbp2/description
+ Kernel support for SBP-2 devices over FireWire
+endef
+
+$(eval $(call KernelPackage,firewire-sbp2))
+
+
diff --git a/package/kernel/linux/modules/fs.mk b/package/kernel/linux/modules/fs.mk
new file mode 100644
index 0000000..5d6c162
--- /dev/null
+++ b/package/kernel/linux/modules/fs.mk
@@ -0,0 +1,692 @@
+#
+# Copyright (C) 2006-2011 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+FS_MENU:=Filesystems
+
+define KernelPackage/fs-9p
+ SUBMENU:=$(FS_MENU)
+ TITLE:=Plan 9 Resource Sharing Support
+ DEPENDS:=+kmod-9pnet +LINUX_6_1:kmod-fs-netfs +LINUX_6_6:kmod-fs-netfs
+ KCONFIG:=\
+ CONFIG_9P_FS \
+ CONFIG_9P_FS_POSIX_ACL=n \
+ CONFIG_9P_FS_SECURITY=n \
+ CONFIG_9P_FSCACHE=n
+ FILES:=$(LINUX_DIR)/fs/9p/9p.ko
+ AUTOLOAD:=$(call AutoLoad,30,9p)
+endef
+
+define KernelPackage/fs-9p/description
+ Kernel module for Plan 9 Resource Sharing Support support
+endef
+
+$(eval $(call KernelPackage,fs-9p))
+
+
+define KernelPackage/fs-afs
+ SUBMENU:=$(FS_MENU)
+ TITLE:=Andrew FileSystem client
+ DEFAULT:=n
+ DEPENDS:=+kmod-rxrpc +kmod-dnsresolver +kmod-fs-fscache
+ KCONFIG:=\
+ CONFIG_AFS_FS=m \
+ CONFIG_AFS_DEBUG=n \
+ CONFIG_AFS_FSCACHE=y
+ FILES:=$(LINUX_DIR)/fs/afs/kafs.ko
+ AUTOLOAD:=$(call AutoLoad,30,kafs)
+endef
+
+define KernelPackage/fs-afs/description
+ Kernel module for Andrew FileSystem client support
+endef
+
+$(eval $(call KernelPackage,fs-afs))
+
+define KernelPackage/fs-autofs4
+ SUBMENU:=$(FS_MENU)
+ TITLE:=AUTOFS4 filesystem support
+ KCONFIG:= \
+ CONFIG_AUTOFS4_FS \
+ CONFIG_AUTOFS_FS
+ FILES:= \
+ $(LINUX_DIR)/fs/autofs/autofs4.ko
+ AUTOLOAD:=$(call AutoLoad,30,autofs4)
+endef
+
+define KernelPackage/fs-autofs4/description
+ Kernel module for AutoFS4 support
+endef
+
+$(eval $(call KernelPackage,fs-autofs4))
+
+
+define KernelPackage/fs-btrfs
+ SUBMENU:=$(FS_MENU)
+ TITLE:=BTRFS filesystem support
+ DEPENDS:=+kmod-lib-crc32c +kmod-lib-lzo +kmod-lib-zlib-inflate +kmod-lib-zlib-deflate +kmod-lib-raid6 +kmod-lib-xor +kmod-lib-zstd
+ KCONFIG:=\
+ CONFIG_BTRFS_FS \
+ CONFIG_BTRFS_FS_CHECK_INTEGRITY=n
+ FILES:=\
+ $(LINUX_DIR)/fs/btrfs/btrfs.ko
+ AUTOLOAD:=$(call AutoLoad,30,btrfs,1)
+endef
+
+define KernelPackage/fs-btrfs/description
+ Kernel module for BTRFS support
+endef
+
+$(eval $(call KernelPackage,fs-btrfs))
+
+
+define KernelPackage/fs-smbfs-common
+ SUBMENU:=$(FS_MENU)
+ TITLE:=SMBFS common dependencies support
+ HIDDEN:=1
+ KCONFIG:=\
+ CONFIG_SMBFS_COMMON@lt6.1 \
+ CONFIG_SMBFS@ge6.1
+ DEPENDS:= \
+ +(LINUX_5_4||LINUX_5_10):kmod-crypto-arc4 \
+ +(LINUX_5_4||LINUX_5_10):kmod-crypto-md4 \
+ +LINUX_6_6:kmod-fs-netfs +LINUX_6_6:kmod-nls-ucs2-utils
+ FILES:= \
+ $(LINUX_DIR)/fs/smbfs_common/cifs_arc4.ko@lt6.1 \
+ $(LINUX_DIR)/fs/smbfs_common/cifs_md4.ko@lt6.1 \
+ $(LINUX_DIR)/fs/smb/common/cifs_arc4.ko@ge6.1 \
+ $(LINUX_DIR)/fs/smb/common/cifs_md4.ko@ge6.1
+endef
+
+define KernelPackage/fs-smbfs-common/description
+ Kernel module dependency for CIFS or SMB_SERVER support
+endef
+
+$(eval $(call KernelPackage,fs-smbfs-common))
+
+
+define KernelPackage/fs-cifs
+ SUBMENU:=$(FS_MENU)
+ TITLE:=CIFS support
+ KCONFIG:= \
+ CONFIG_CIFS \
+ CONFIG_CIFS_DFS_UPCALL=n \
+ CONFIG_CIFS_UPCALL=n
+ FILES:= \
+ $(LINUX_DIR)/fs/cifs/cifs.ko@lt6.1 \
+ $(LINUX_DIR)/fs/smb/client/cifs.ko@ge6.1
+ AUTOLOAD:=$(call AutoLoad,30,cifs)
+ $(call AddDepends/nls)
+ DEPENDS+= \
+ +kmod-fs-smbfs-common \
+ +kmod-crypto-md5 \
+ +kmod-crypto-sha256 \
+ +kmod-crypto-sha512 \
+ +kmod-crypto-cmac \
+ +kmod-crypto-hmac \
+ +kmod-crypto-aead \
+ +kmod-crypto-ccm \
+ +kmod-crypto-ecb \
+ +kmod-crypto-des \
+ +(LINUX_5_15||LINUX_6_1||LINUX_6_6):kmod-asn1-decoder \
+ +(LINUX_5_15||LINUX_6_1||LINUX_6_6):kmod-oid-registry \
+ +(LINUX_5_15||LINUX_6_1||LINUX_6_6):kmod-dnsresolver
+endef
+
+define KernelPackage/fs-cifs/description
+ Kernel module for CIFS support
+endef
+
+$(eval $(call KernelPackage,fs-cifs))
+
+
+define KernelPackage/fs-configfs
+ SUBMENU:=$(FS_MENU)
+ TITLE:=Configuration filesystem support
+ KCONFIG:= \
+ CONFIG_CONFIGFS_FS
+ FILES:=$(LINUX_DIR)/fs/configfs/configfs.ko
+ AUTOLOAD:=$(call AutoLoad,30,configfs)
+endef
+
+define KernelPackage/fs-configfs/description
+ Kernel module for configfs support
+endef
+
+$(eval $(call KernelPackage,fs-configfs))
+
+
+define KernelPackage/fs-cramfs
+ SUBMENU:=$(FS_MENU)
+ TITLE:=Compressed RAM/ROM filesystem support
+ DEPENDS:=+kmod-lib-zlib-inflate
+ KCONFIG:= \
+ CONFIG_CRAMFS
+ FILES:=$(LINUX_DIR)/fs/cramfs/cramfs.ko
+ AUTOLOAD:=$(call AutoLoad,30,cramfs)
+endef
+
+define KernelPackage/fs-cramfs/description
+ Kernel module for cramfs support
+endef
+
+$(eval $(call KernelPackage,fs-cramfs))
+
+
+define KernelPackage/fs-efivarfs
+ SUBMENU:=$(FS_MENU)
+ TITLE:=efivar filesystem support
+ KCONFIG:=CONFIG_EFIVAR_FS
+ FILES:=$(LINUX_DIR)/fs/efivarfs/efivarfs.ko
+ DEPENDS:=@(x86_64||x86)
+ AUTOLOAD:=$(call Autoload,90,efivarfs)
+endef
+
+define KernelPackage/fs-efivarfs/description
+ Kernel module to support efivarfs file system mountpoint.
+endef
+
+$(eval $(call KernelPackage,fs-efivarfs))
+
+
+define KernelPackage/fs-exfat
+ SUBMENU:=$(FS_MENU)
+ TITLE:=exFAT filesystem support
+ KCONFIG:= \
+ CONFIG_EXFAT_FS \
+ CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
+ FILES:= \
+ $(LINUX_DIR)/drivers/staging/exfat/exfat.ko@lt5.7 \
+ $(LINUX_DIR)/fs/exfat/exfat.ko@ge5.7
+ AUTOLOAD:=$(call AutoLoad,30,exfat,1)
+ DEPENDS:=+kmod-nls-base
+endef
+
+define KernelPackage/fs-exfat/description
+ Kernel module for exFAT filesystem support
+endef
+
+$(eval $(call KernelPackage,fs-exfat))
+
+
+define KernelPackage/fs-exportfs
+ SUBMENU:=$(FS_MENU)
+ TITLE:=exportfs kernel server support
+ KCONFIG:=CONFIG_EXPORTFS
+ FILES=$(LINUX_DIR)/fs/exportfs/exportfs.ko
+ AUTOLOAD:=$(call AutoLoad,20,exportfs,1)
+endef
+
+define KernelPackage/fs-exportfs/description
+ Kernel module for exportfs. Needed for some other modules.
+endef
+
+$(eval $(call KernelPackage,fs-exportfs))
+
+
+define KernelPackage/fs-ext4
+ SUBMENU:=$(FS_MENU)
+ TITLE:=EXT4 filesystem support
+ DEPENDS := \
+ +kmod-lib-crc16 \
+ +kmod-crypto-hash \
+ +kmod-crypto-crc32c
+ KCONFIG:= \
+ CONFIG_EXT4_FS \
+ CONFIG_EXT4_ENCRYPTION=n \
+ CONFIG_JBD2
+ FILES:= \
+ $(LINUX_DIR)/fs/ext4/ext4.ko \
+ $(LINUX_DIR)/fs/jbd2/jbd2.ko \
+ $(LINUX_DIR)/fs/mbcache.ko
+ AUTOLOAD:=$(call AutoLoad,30,mbcache jbd2 ext4,1)
+endef
+
+define KernelPackage/fs-ext4/description
+ Kernel module for EXT4 filesystem support
+endef
+
+$(eval $(call KernelPackage,fs-ext4))
+
+
+define KernelPackage/fs-f2fs
+ SUBMENU:=$(FS_MENU)
+ TITLE:=F2FS filesystem support
+ DEPENDS:= +kmod-crypto-hash +kmod-crypto-crc32 +kmod-nls-base
+ KCONFIG:=CONFIG_F2FS_FS
+ FILES:=$(LINUX_DIR)/fs/f2fs/f2fs.ko
+ AUTOLOAD:=$(call AutoLoad,30,f2fs,1)
+endef
+
+define KernelPackage/fs-f2fs/description
+ Kernel module for F2FS filesystem support
+endef
+
+$(eval $(call KernelPackage,fs-f2fs))
+
+
+define KernelPackage/fs-fscache
+ SUBMENU:=$(FS_MENU)
+ TITLE:=General filesystem local cache manager
+ DEPENDS:=+kmod-fs-netfs
+ KCONFIG:=\
+ CONFIG_FSCACHE \
+ CONFIG_FSCACHE_STATS=y \
+ CONFIG_FSCACHE_HISTOGRAM=n \
+ CONFIG_FSCACHE_DEBUG=n \
+ CONFIG_FSCACHE_OBJECT_LIST=n \
+ CONFIG_CACHEFILES \
+ CONFIG_CACHEFILES_DEBUG=n \
+ CONFIG_CACHEFILES_HISTOGRAM=n \
+ CONFIG_CACHEFILES_ERROR_INJECTION=n@ge5.17 \
+ CONFIG_CACHEFILES_ONDEMAND=n@ge5.19
+ FILES:= \
+ $(LINUX_DIR)/fs/fscache/fscache.ko \
+ $(LINUX_DIR)/fs/cachefiles/cachefiles.ko
+ AUTOLOAD:=$(call AutoLoad,29,fscache cachefiles)
+endef
+
+$(eval $(call KernelPackage,fs-fscache))
+
+
+define KernelPackage/fs-hfs
+ SUBMENU:=$(FS_MENU)
+ TITLE:=HFS filesystem support
+ DEPENDS:=+kmod-cdrom
+ KCONFIG:=CONFIG_HFS_FS
+ FILES:=$(LINUX_DIR)/fs/hfs/hfs.ko
+ AUTOLOAD:=$(call AutoLoad,30,hfs)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/fs-hfs/description
+ Kernel module for HFS filesystem support
+endef
+
+$(eval $(call KernelPackage,fs-hfs))
+
+
+define KernelPackage/fs-hfsplus
+ SUBMENU:=$(FS_MENU)
+ TITLE:=HFS+ filesystem support
+ DEPENDS:=+kmod-cdrom
+ KCONFIG:=CONFIG_HFSPLUS_FS
+ FILES:=$(LINUX_DIR)/fs/hfsplus/hfsplus.ko
+ AUTOLOAD:=$(call AutoLoad,30,hfsplus)
+ $(call AddDepends/nls,utf8)
+endef
+
+define KernelPackage/fs-hfsplus/description
+ Kernel module for HFS+ filesystem support
+endef
+
+$(eval $(call KernelPackage,fs-hfsplus))
+
+
+define KernelPackage/fs-isofs
+ SUBMENU:=$(FS_MENU)
+ TITLE:=ISO9660 filesystem support
+ DEPENDS:=+kmod-lib-zlib-inflate +kmod-cdrom
+ KCONFIG:=CONFIG_ISO9660_FS CONFIG_JOLIET=y CONFIG_ZISOFS=n
+ FILES:=$(LINUX_DIR)/fs/isofs/isofs.ko
+ AUTOLOAD:=$(call AutoLoad,30,isofs)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/fs-isofs/description
+ Kernel module for ISO9660 filesystem support
+endef
+
+$(eval $(call KernelPackage,fs-isofs))
+
+
+define KernelPackage/fs-jfs
+ SUBMENU:=$(FS_MENU)
+ TITLE:=JFS filesystem support
+ KCONFIG:=CONFIG_JFS_FS
+ FILES:=$(LINUX_DIR)/fs/jfs/jfs.ko
+ AUTOLOAD:=$(call AutoLoad,30,jfs,1)
+ DEPENDS:=+LINUX_6_6:kmod-nls-ucs2-utils
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/fs-jfs/description
+ Kernel module for JFS support
+endef
+
+$(eval $(call KernelPackage,fs-jfs))
+
+define KernelPackage/fs-minix
+ SUBMENU:=$(FS_MENU)
+ TITLE:=Minix filesystem support
+ KCONFIG:=CONFIG_MINIX_FS
+ FILES:=$(LINUX_DIR)/fs/minix/minix.ko
+ AUTOLOAD:=$(call AutoLoad,30,minix)
+endef
+
+define KernelPackage/fs-minix/description
+ Kernel module for Minix filesystem support
+endef
+
+$(eval $(call KernelPackage,fs-minix))
+
+
+define KernelPackage/fs-msdos
+ SUBMENU:=$(FS_MENU)
+ TITLE:=MSDOS filesystem support
+ DEPENDS:=+kmod-fs-vfat
+ KCONFIG:=CONFIG_MSDOS_FS
+ FILES:=$(LINUX_DIR)/fs/fat/msdos.ko
+ AUTOLOAD:=$(call AutoLoad,40,msdos)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/fs-msdos/description
+ Kernel module for MSDOS filesystem support
+endef
+
+$(eval $(call KernelPackage,fs-msdos))
+
+
+define KernelPackage/fs-netfs
+ SUBMENU:=$(FS_MENU)
+ TITLE:=Network Filesystems support
+ DEPENDS:=@(LINUX_5_15||LINUX_6_1||LINUX_6_6)
+ KCONFIG:= CONFIG_NETFS_SUPPORT
+ FILES:=$(LINUX_DIR)/fs/netfs/netfs.ko
+ AUTOLOAD:=$(call AutoLoad,28,netfs)
+endef
+
+$(eval $(call KernelPackage,fs-netfs))
+
+
+define KernelPackage/fs-nfs
+ SUBMENU:=$(FS_MENU)
+ TITLE:=NFS filesystem client support
+ DEPENDS:=+kmod-fs-nfs-common +kmod-dnsresolver
+ KCONFIG:= \
+ CONFIG_NFS_FS \
+ CONFIG_NFS_USE_LEGACY_DNS=n \
+ CONFIG_NFS_USE_NEW_IDMAPPER=n
+ FILES:= \
+ $(LINUX_DIR)/fs/nfs/nfs.ko
+ AUTOLOAD:=$(call AutoLoad,40,nfs)
+endef
+
+define KernelPackage/fs-nfs/description
+ Kernel module for NFS client support
+endef
+
+$(eval $(call KernelPackage,fs-nfs))
+
+
+define KernelPackage/fs-nfs-common
+ SUBMENU:=$(FS_MENU)
+ TITLE:=Common NFS filesystem modules
+ DEPENDS:=+kmod-oid-registry
+ KCONFIG:= \
+ CONFIG_LOCKD \
+ CONFIG_SUNRPC \
+ CONFIG_GRACE_PERIOD \
+ CONFIG_NFS_V4=y \
+ CONFIG_NFS_V4_1=y \
+ CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" \
+ CONFIG_NFS_V4_1_MIGRATION=n \
+ CONFIG_NFS_V4_2=y \
+ CONFIG_NFS_V4_2_READ_PLUS=n
+ FILES:= \
+ $(LINUX_DIR)/fs/lockd/lockd.ko \
+ $(LINUX_DIR)/net/sunrpc/sunrpc.ko \
+ $(LINUX_DIR)/fs/nfs_common/grace.ko
+ AUTOLOAD:=$(call AutoLoad,30,grace sunrpc lockd)
+endef
+
+$(eval $(call KernelPackage,fs-nfs-common))
+
+
+define KernelPackage/fs-nfs-common-rpcsec
+ SUBMENU:=$(FS_MENU)
+ TITLE:=NFS Secure RPC
+ DEPENDS:= \
+ +kmod-fs-nfs-common \
+ +kmod-crypto-des \
+ +kmod-crypto-cbc \
+ +kmod-crypto-cts \
+ +kmod-crypto-md5 \
+ +kmod-crypto-sha1 \
+ +kmod-crypto-hmac \
+ +kmod-crypto-ecb \
+ +kmod-crypto-arc4 \
+ +kmod-oid-registry
+ KCONFIG:= \
+ CONFIG_SUNRPC_GSS \
+ CONFIG_RPCSEC_GSS_KRB5
+ FILES:= \
+ $(LINUX_DIR)/net/sunrpc/auth_gss/auth_rpcgss.ko \
+ $(LINUX_DIR)/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko
+ AUTOLOAD:=$(call AutoLoad,31,auth_rpcgss rpcsec_gss_krb5)
+endef
+
+define KernelPackage/fs-nfs-common-rpcsec/description
+ Kernel modules for NFS Secure RPC
+endef
+
+$(eval $(call KernelPackage,fs-nfs-common-rpcsec))
+
+
+define KernelPackage/fs-nfs-v3
+ SUBMENU:=$(FS_MENU)
+ TITLE:=NFS3 filesystem client support
+ DEPENDS:=+kmod-fs-nfs
+ FILES:= \
+ $(LINUX_DIR)/fs/nfs/nfsv3.ko
+ AUTOLOAD:=$(call AutoLoad,41,nfsv3)
+endef
+
+define KernelPackage/fs-nfs-v3/description
+ Kernel module for NFS v3 client support
+endef
+
+$(eval $(call KernelPackage,fs-nfs-v3))
+
+
+define KernelPackage/fs-nfs-v4
+ SUBMENU:=$(FS_MENU)
+ TITLE:=NFS4 filesystem client support
+ DEPENDS:=+kmod-fs-nfs
+ KCONFIG:= \
+ CONFIG_NFS_V4=y
+ FILES:= \
+ $(LINUX_DIR)/fs/nfs/nfsv4.ko
+ AUTOLOAD:=$(call AutoLoad,41,nfsv4)
+endef
+
+define KernelPackage/fs-nfs-v4/description
+ Kernel module for NFS v4 client support
+endef
+
+$(eval $(call KernelPackage,fs-nfs-v4))
+
+
+define KernelPackage/fs-nfsd
+ SUBMENU:=$(FS_MENU)
+ TITLE:=NFS kernel server support
+ DEPENDS:=+kmod-fs-nfs-common +kmod-fs-exportfs +kmod-fs-nfs-common-rpcsec
+ KCONFIG:= \
+ CONFIG_NFSD \
+ CONFIG_NFSD_V4=y \
+ CONFIG_NFSD_V4_SECURITY_LABEL=n \
+ CONFIG_NFSD_BLOCKLAYOUT=n \
+ CONFIG_NFSD_SCSILAYOUT=n \
+ CONFIG_NFSD_FLEXFILELAYOUT=n \
+ CONFIG_NFSD_FAULT_INJECTION=n \
+ CONFIG_NFSD_V4_2_INTER_SSC=n
+ FILES:=$(LINUX_DIR)/fs/nfsd/nfsd.ko
+ AUTOLOAD:=$(call AutoLoad,40,nfsd)
+endef
+
+define KernelPackage/fs-nfsd/description
+ Kernel module for NFS kernel server support
+endef
+
+$(eval $(call KernelPackage,fs-nfsd))
+
+
+define KernelPackage/fs-ntfs
+ SUBMENU:=$(FS_MENU)
+ TITLE:=NTFS filesystem read-only (old driver) support
+ KCONFIG:=CONFIG_NTFS_FS
+ FILES:=$(LINUX_DIR)/fs/ntfs/ntfs.ko
+ AUTOLOAD:=$(call AutoLoad,30,ntfs)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/fs-ntfs/description
+ Kernel module for limited NTFS filesystem support. Support for writing
+ is extremely limited and disabled as a result.
+endef
+
+$(eval $(call KernelPackage,fs-ntfs))
+
+
+define KernelPackage/fs-ntfs3
+ SUBMENU:=$(FS_MENU)
+ TITLE:=NTFS filesystem read & write (new driver) support
+ KCONFIG:= CONFIG_NTFS3_FS CONFIG_NTFS3_FS_POSIX_ACL=y
+ FILES:=$(LINUX_DIR)/fs/ntfs3/ntfs3.ko
+ $(call AddDepends/nls)
+ AUTOLOAD:=$(call AutoLoad,80,ntfs3)
+endef
+
+define KernelPackage/fs-ntfs3/description
+ Kernel module for fully functional NTFS filesystem support. It allows
+ reading as well as writing.
+
+ It supports NTFS versions up to 3.1.
+endef
+
+$(eval $(call KernelPackage,fs-ntfs3))
+
+
+define KernelPackage/fs-reiserfs
+ SUBMENU:=$(FS_MENU)
+ TITLE:=ReiserFS filesystem support
+ KCONFIG:=CONFIG_REISERFS_FS
+ FILES:=$(LINUX_DIR)/fs/reiserfs/reiserfs.ko
+ AUTOLOAD:=$(call AutoLoad,30,reiserfs,1)
+endef
+
+define KernelPackage/fs-reiserfs/description
+ Kernel module for ReiserFS support
+endef
+
+$(eval $(call KernelPackage,fs-reiserfs))
+
+
+define KernelPackage/fs-squashfs
+ SUBMENU:=$(FS_MENU)
+ TITLE:=SquashFS 4.0 filesystem support
+ KCONFIG:=CONFIG_SQUASHFS \
+ CONFIG_SQUASHFS_XZ=y
+ FILES:=$(LINUX_DIR)/fs/squashfs/squashfs.ko
+ AUTOLOAD:=$(call AutoLoad,30,squashfs,1)
+endef
+
+define KernelPackage/fs-squashfs/description
+ Kernel module for SquashFS 4.0 support
+endef
+
+$(eval $(call KernelPackage,fs-squashfs))
+
+
+define KernelPackage/fs-udf
+ SUBMENU:=$(FS_MENU)
+ TITLE:=UDF filesystem support
+ KCONFIG:=CONFIG_UDF_FS
+ FILES:=$(LINUX_DIR)/fs/udf/udf.ko
+ AUTOLOAD:=$(call AutoLoad,30,udf)
+ DEPENDS:=+kmod-lib-crc-itu-t +kmod-cdrom
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/fs-udf/description
+ Kernel module for UDF filesystem support
+endef
+
+$(eval $(call KernelPackage,fs-udf))
+
+
+define KernelPackage/fs-vfat
+ SUBMENU:=$(FS_MENU)
+ TITLE:=VFAT filesystem support
+ KCONFIG:= \
+ CONFIG_FAT_FS \
+ CONFIG_VFAT_FS
+ FILES:= \
+ $(LINUX_DIR)/fs/fat/fat.ko \
+ $(LINUX_DIR)/fs/fat/vfat.ko
+ AUTOLOAD:=$(call AutoLoad,30,fat vfat,1)
+ $(call AddDepends/nls,cp437 iso8859-1 utf8)
+endef
+
+define KernelPackage/fs-vfat/description
+ Kernel module for VFAT filesystem support
+endef
+
+$(eval $(call KernelPackage,fs-vfat))
+
+
+define KernelPackage/fs-xfs
+ SUBMENU:=$(FS_MENU)
+ TITLE:=XFS filesystem support
+ KCONFIG:=CONFIG_XFS_FS
+ DEPENDS:= +kmod-fs-exportfs +kmod-lib-crc32c
+ FILES:=$(LINUX_DIR)/fs/xfs/xfs.ko
+ AUTOLOAD:=$(call AutoLoad,30,xfs,1)
+endef
+
+define KernelPackage/fs-xfs/description
+ Kernel module for XFS support
+endef
+
+$(eval $(call KernelPackage,fs-xfs))
+
+
+define KernelPackage/fuse
+ SUBMENU:=$(FS_MENU)
+ TITLE:=FUSE (Filesystem in Userspace) support
+ KCONFIG:= CONFIG_FUSE_FS
+ FILES:=$(LINUX_DIR)/fs/fuse/fuse.ko
+ AUTOLOAD:=$(call AutoLoad,80,fuse)
+endef
+
+define KernelPackage/fuse/description
+ Kernel module for userspace filesystem support
+endef
+
+$(eval $(call KernelPackage,fuse))
+
+
+define KernelPackage/pstore
+ SUBMENU:=$(FS_MENU)
+ TITLE:=Pstore file system
+ DEFAULT:=m if ALL_KMODS
+ KCONFIG:= \
+ CONFIG_PSTORE \
+ CONFIG_PSTORE_COMPRESS=y \
+ CONFIG_PSTORE_COMPRESS_DEFAULT="deflate" \
+ CONFIG_PSTORE_DEFLATE_COMPRESS=y \
+ CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y
+ FILES:= $(LINUX_DIR)/fs/pstore/pstore.ko
+ AUTOLOAD:=$(call AutoLoad,30,pstore,1)
+ DEPENDS:=+LINUX_6_6:kmod-lib-zlib-deflate +LINUX_6_6:kmod-lib-zlib-inflate
+endef
+
+define KernelPackage/pstore/description
+ Kernel module for pstore filesystem support
+endef
+
+$(eval $(call KernelPackage,pstore))
diff --git a/package/kernel/linux/modules/gpio.mk b/package/kernel/linux/modules/gpio.mk
new file mode 100644
index 0000000..fc6ab66
--- /dev/null
+++ b/package/kernel/linux/modules/gpio.mk
@@ -0,0 +1,139 @@
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+GPIO_MENU:=GPIO support
+
+define KernelPackage/gpio-amd-fch
+ SUBMENU:=$(GPIO_MENU)
+ DEPENDS:=@GPIO_SUPPORT @TARGET_x86
+ TITLE:=GPIO support for AMD Fusion Controller Hub (G-series SOCs)
+ KCONFIG:=CONFIG_GPIO_AMD_FCH
+ FILES:=$(LINUX_DIR)/drivers/gpio/gpio-amd-fch.ko
+ AUTOLOAD:=$(call AutoLoad,25,gpio-amd-fch,1)
+endef
+
+define KernelPackage/gpio-amd-fch/description
+ This option enables driver for GPIO on AMDs Fusion Controller Hub,
+ as found on G-series SOCs (eg. GX-412TC)
+endef
+
+$(eval $(call KernelPackage,gpio-amd-fch))
+
+
+define KernelPackage/gpio-beeper
+ SUBMENU:=$(GPIO_MENU)
+ TITLE:=GPIO beeper support
+ DEPENDS:=+kmod-input-core
+ KCONFIG:= \
+ CONFIG_INPUT_MISC=y \
+ CONFIG_INPUT_GPIO_BEEPER
+ FILES:= \
+ $(LINUX_DIR)/drivers/input/misc/gpio-beeper.ko
+ AUTOLOAD:=$(call AutoLoad,50,gpio-beeper)
+endef
+
+define KernelPackage/gpio-beeper/description
+ This enables playing beeps through an GPIO-connected buzzer
+endef
+
+$(eval $(call KernelPackage,gpio-beeper))
+
+
+define KernelPackage/gpio-cascade
+ SUBMENU:=$(GPIO_MENU)
+ TITLE:=Generic GPIO cascade
+ KCONFIG:=CONFIG_GPIO_CASCADE
+ DEPENDS:=@GPIO_SUPPORT +kmod-mux-core
+ FILES:=$(LINUX_DIR)/drivers/gpio/gpio-cascade.ko
+ AUTOLOAD:=$(call AutoLoad,29,gpio-cascade,1)
+endef
+
+define KernelPackage/gpio-cascade/description
+ Kernel module for Generic GPIO cascade
+endef
+
+$(eval $(call KernelPackage,gpio-cascade))
+
+
+define KernelPackage/gpio-f7188x
+ SUBMENU:=$(GPIO_MENU)
+ TITLE:=Fintek F718xx/F818xx GPIO Support
+ DEPENDS:=@GPIO_SUPPORT @TARGET_x86
+ KCONFIG:=CONFIG_GPIO_F7188X
+ FILES:=$(LINUX_DIR)/drivers/gpio/gpio-f7188x.ko
+ AUTOLOAD:=$(call AutoProbe,gpio-f7188x)
+endef
+
+define KernelPackage/gpio-f7188x/description
+ Kernel module for the GPIOs found on many Fintek Super-IO chips.
+endef
+
+$(eval $(call KernelPackage,gpio-f7188x))
+
+
+define KernelPackage/gpio-it87
+ SUBMENU:=$(GPIO_MENU)
+ DEPENDS:=@GPIO_SUPPORT @TARGET_x86
+ TITLE:=GPIO support for IT87xx Super I/O chips
+ KCONFIG:=CONFIG_GPIO_IT87
+ FILES:=$(LINUX_DIR)/drivers/gpio/gpio-it87.ko
+ AUTOLOAD:=$(call AutoLoad,25,gpio-it87,1)
+endef
+
+define KernelPackage/gpio-it87/description
+ This driver is tested with ITE IT8728 and IT8732 Super I/O chips, and
+ supports the IT8761E, IT8613, IT8620E, and IT8628E Super I/O chips as
+ well.
+endef
+
+$(eval $(call KernelPackage,gpio-it87))
+
+
+define KernelPackage/gpio-nxp-74hc164
+ SUBMENU:=$(GPIO_MENU)
+ TITLE:=NXP 74HC164 GPIO expander support
+ KCONFIG:=CONFIG_GPIO_74X164
+ FILES:=$(LINUX_DIR)/drivers/gpio/gpio-74x164.ko
+ AUTOLOAD:=$(call AutoProbe,gpio-74x164)
+endef
+
+define KernelPackage/gpio-nxp-74hc164/description
+ Kernel module for NXP 74HC164 GPIO expander
+endef
+
+$(eval $(call KernelPackage,gpio-nxp-74hc164))
+
+
+define KernelPackage/gpio-pca953x
+ SUBMENU:=$(GPIO_MENU)
+ DEPENDS:=@GPIO_SUPPORT +kmod-i2c-core +kmod-regmap-i2c
+ TITLE:=PCA95xx, TCA64xx, and MAX7310 I/O ports
+ KCONFIG:=CONFIG_GPIO_PCA953X \
+ CONFIG_GPIO_PCA953X_IRQ=y
+ FILES:=$(LINUX_DIR)/drivers/gpio/gpio-pca953x.ko
+ AUTOLOAD:=$(call AutoLoad,55,gpio-pca953x)
+endef
+
+define KernelPackage/gpio-pca953x/description
+ Kernel module for MAX731{0,2,3,5}, PCA6107, PCA953{4-9}, PCA955{4-7},
+ PCA957{4,5} and TCA64{08,16} I2C GPIO expanders
+endef
+
+$(eval $(call KernelPackage,gpio-pca953x))
+
+
+define KernelPackage/gpio-pcf857x
+ SUBMENU:=$(GPIO_MENU)
+ DEPENDS:=@GPIO_SUPPORT +kmod-i2c-core
+ TITLE:=PCX857x, PCA967x and MAX732X I2C GPIO expanders
+ KCONFIG:=CONFIG_GPIO_PCF857X
+ FILES:=$(LINUX_DIR)/drivers/gpio/gpio-pcf857x.ko
+ AUTOLOAD:=$(call AutoLoad,55,gpio-pcf857x)
+endef
+
+define KernelPackage/gpio-pcf857x/description
+ Kernel module for PCF857x, PCA{85,96}7x, and MAX732[89] I2C GPIO expanders
+endef
+
+$(eval $(call KernelPackage,gpio-pcf857x))
diff --git a/package/kernel/linux/modules/hwmon.mk b/package/kernel/linux/modules/hwmon.mk
new file mode 100644
index 0000000..e6ab552
--- /dev/null
+++ b/package/kernel/linux/modules/hwmon.mk
@@ -0,0 +1,732 @@
+#
+# Copyright (C) 2006-2014 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+HWMON_MENU:=Hardware Monitoring Support
+
+define KernelPackage/hwmon-core
+ SUBMENU:=$(HWMON_MENU)
+ TITLE:=Hardware monitoring support
+ KCONFIG:= \
+ CONFIG_HWMON \
+ CONFIG_HWMON_DEBUG_CHIP=n
+ FILES:= \
+ $(LINUX_DIR)/drivers/hwmon/hwmon.ko
+endef
+
+define KernelPackage/hwmon-core/description
+ Kernel modules for hardware monitoring
+endef
+
+$(eval $(call KernelPackage,hwmon-core))
+
+
+define AddDepends/hwmon
+ SUBMENU:=$(HWMON_MENU)
+ DEPENDS:=+kmod-hwmon-core $(1)
+endef
+
+define KernelPackage/hwmon-ad7418
+ TITLE:=AD741x monitoring support
+ KCONFIG:=CONFIG_SENSORS_AD7418
+ FILES:=$(LINUX_DIR)/drivers/hwmon/ad7418.ko
+ AUTOLOAD:=$(call AutoLoad,60,ad7418 ad7418)
+ $(call AddDepends/hwmon,+kmod-i2c-core +LINUX_6_6:kmod-regmap-core)
+endef
+
+define KernelPackage/hwmon-ad7418/description
+ Kernel module for Analog Devices AD7416, AD7417 and AD7418 temperature monitor chip
+endef
+
+$(eval $(call KernelPackage,hwmon-ad7418))
+
+define KernelPackage/hwmon-adt7410
+ TITLE:=ADT7410 monitoring support
+ KCONFIG:= \
+ CONFIG_SENSORS_ADT7X10 \
+ CONFIG_SENSORS_ADT7410
+ FILES:= \
+ $(LINUX_DIR)/drivers/hwmon/adt7x10.ko \
+ $(LINUX_DIR)/drivers/hwmon/adt7410.ko
+ AUTOLOAD:=$(call AutoLoad,60,adt7x10 adt7410)
+ $(call AddDepends/hwmon,+kmod-i2c-core +!LINUX_5_15:kmod-regmap-core)
+endef
+
+define KernelPackage/hwmon-adt7410/description
+ Kernel module for ADT7410/7420 I2C thermal monitor chip
+endef
+
+$(eval $(call KernelPackage,hwmon-adt7410))
+
+
+define KernelPackage/hwmon-adt7475
+ TITLE:=ADT7473/7475/7476/7490 monitoring support
+ KCONFIG:=CONFIG_SENSORS_ADT7475
+ FILES:=$(LINUX_DIR)/drivers/hwmon/adt7475.ko
+ AUTOLOAD:=$(call AutoProbe,adt7475)
+ $(call AddDepends/hwmon,+kmod-i2c-core +kmod-hwmon-vid)
+endef
+
+define KernelPackage/hwmon-adt7475/description
+ Kernel module for ADT7473/7475/7476/7490 thermal monitor chip
+endef
+
+$(eval $(call KernelPackage,hwmon-adt7475))
+
+
+define KernelPackage/hwmon-coretemp
+ TITLE:=Intel Core/Core2/Atom temperature sensor
+ KCONFIG:=CONFIG_SENSORS_CORETEMP
+ FILES:=$(LINUX_DIR)/drivers/hwmon/coretemp.ko
+ AUTOLOAD:=$(call AutoProbe,coretemp)
+ $(call AddDepends/hwmon,@TARGET_x86)
+endef
+
+define KernelPackage/hwmon-coretemp/description
+ Kernel module for Intel Core/Core2/Atom temperature monitoring support.
+ Most of the family 6 CPUs are supported.
+ Check Documentation/hwmon/coretemp.rst for details.
+endef
+
+$(eval $(call KernelPackage,hwmon-coretemp))
+
+
+define KernelPackage/hwmon-dme1737
+ TITLE:=SMSC DME1737 and compatible monitoring support
+ KCONFIG:=CONFIG_SENSORS_DME1737
+ FILES:= \
+ $(LINUX_DIR)/drivers/hwmon/dme1737.ko
+ AUTOLOAD:=$(call AutoProbe,dme1737)
+ $(call AddDepends/hwmon,+kmod-i2c-core +kmod-hwmon-vid)
+endef
+
+define KernelPackage/hwmon-dme1737/description
+ SMSC DME1737, SCH3112, SCH3114, SCH3116, SCH5027 monitoring support
+endef
+
+$(eval $(call KernelPackage,hwmon-dme1737))
+
+
+define KernelPackage/hwmon-drivetemp
+ TITLE:=Hard disk drives with temperature sensor
+ KCONFIG:=CONFIG_SENSORS_DRIVETEMP
+ FILES:=$(LINUX_DIR)/drivers/hwmon/drivetemp.ko
+ AUTOLOAD:=$(call AutoLoad,60,drivetemp)
+ $(call AddDepends/hwmon,+kmod-ata-core +kmod-scsi-core)
+endef
+
+define KernelPackage/hwmon-drivetemp/description
+ Kernel module for Hard disk drives with temperature sensor
+endef
+
+$(eval $(call KernelPackage,hwmon-drivetemp))
+
+
+define KernelPackage/hwmon-gsc
+ TITLE:=Gateworks System Controller support
+ KCONFIG:=CONFIG_MFD_GATEWORKS_GSC \
+ CONFIG_SENSORS_GSC
+ FILES:= \
+ $(LINUX_DIR)/drivers/mfd/gateworks-gsc.ko \
+ $(LINUX_DIR)/drivers/hwmon/gsc-hwmon.ko
+ AUTOLOAD:=$(call AutoLoad,20,gsc-hwmon,1)
+ $(call AddDepends/hwmon,@!LINUX_5_4 +kmod-i2c-core)
+endef
+
+define KernelPackage/hwmon-gsc/description
+ Kernel module for Gateworks System Controller with temperature sensor,
+ADCs, and FAN controller
+endef
+
+$(eval $(call KernelPackage,hwmon-gsc))
+
+
+define KernelPackage/hwmon-gpiofan
+ TITLE:=Generic GPIO FAN support
+ KCONFIG:=CONFIG_SENSORS_GPIO_FAN
+ FILES:=$(LINUX_DIR)/drivers/hwmon/gpio-fan.ko
+ AUTOLOAD:=$(call AutoLoad,60,gpio-fan)
+ $(call AddDepends/hwmon,+kmod-i2c-core +PACKAGE_kmod-thermal:kmod-thermal)
+endef
+
+define KernelPackage/hwmon-gpiofan/description
+ Kernel module for GPIO controlled FANs
+endef
+
+$(eval $(call KernelPackage,hwmon-gpiofan))
+
+
+define KernelPackage/hwmon-f71882fg
+ TITLE:=F71882FG compatible monitoring support
+ KCONFIG:=CONFIG_SENSORS_F71882FG
+ FILES:=$(LINUX_DIR)/drivers/hwmon/f71882fg.ko
+ AUTOLOAD:=$(call AutoProbe,f71882fg)
+ $(call AddDepends/hwmon,@TARGET_x86)
+endef
+
+define KernelPackage/hwmon-f71882fg/description
+ Kernel module for hardware monitoring via many Fintek Super-IO chips.
+endef
+
+$(eval $(call KernelPackage,hwmon-f71882fg))
+
+
+define KernelPackage/hwmon-g762
+ TITLE:=G762/G763 fan speed PWM controller support
+ KCONFIG:=CONFIG_SENSORS_G762
+ FILES:=$(LINUX_DIR)/drivers/hwmon/g762.ko
+ AUTOLOAD:=$(call AutoProbe,g762)
+ $(call AddDepends/hwmon,+kmod-i2c-core)
+endef
+
+define KernelPackage/hwmon-g762/description
+ Kernel module for Global Mixed-mode Technology Inc G762 and G763 fan speed PWM controller chips.
+endef
+
+$(eval $(call KernelPackage,hwmon-g762))
+
+
+define KernelPackage/hwmon-ina209
+ TITLE:=INA209 monitoring support
+ KCONFIG:=CONFIG_SENSORS_INA209
+ FILES:=$(LINUX_DIR)/drivers/hwmon/ina209.ko
+ AUTOLOAD:=$(call AutoProbe,ina209)
+ $(call AddDepends/hwmon,+kmod-i2c-core)
+endef
+
+define KernelPackage/hwmon-ina209/description
+ Kernel module for ina209 dc power monitor chips
+endef
+
+$(eval $(call KernelPackage,hwmon-ina209))
+
+
+define KernelPackage/hwmon-ina2xx
+ TITLE:=INA2XX monitoring support
+ KCONFIG:=CONFIG_SENSORS_INA2XX
+ FILES:=$(LINUX_DIR)/drivers/hwmon/ina2xx.ko
+ AUTOLOAD:=$(call AutoProbe,ina2xx)
+ $(call AddDepends/hwmon,+kmod-i2c-core +kmod-regmap-i2c)
+endef
+
+define KernelPackage/hwmon-ina2xx/description
+ Kernel module for ina2xx dc current monitor chips
+endef
+
+$(eval $(call KernelPackage,hwmon-ina2xx))
+
+
+define KernelPackage/hwmon-it87
+ TITLE:=IT87 monitoring support
+ KCONFIG:=CONFIG_SENSORS_IT87
+ FILES:=$(LINUX_DIR)/drivers/hwmon/it87.ko
+ AUTOLOAD:=$(call AutoProbe,it87)
+ $(call AddDepends/hwmon,+kmod-i2c-core +kmod-hwmon-vid +PACKAGE_kmod-thermal:kmod-thermal)
+endef
+
+define KernelPackage/hwmon-it87/description
+ Kernel module for it87 thermal and voltage monitor chip
+endef
+
+$(eval $(call KernelPackage,hwmon-it87))
+
+
+define KernelPackage/hwmon-jc42
+ TITLE:=Jedec JC42.4 compliant temperature sensors support
+ KCONFIG:=CONFIG_SENSORS_JC42
+ FILES:=$(LINUX_DIR)/drivers/hwmon/jc42.ko
+ AUTOLOAD:=$(call AutoProbe,jc42)
+ $(call AddDepends/hwmon,+kmod-i2c-core +kmod-regmap-i2c)
+endef
+
+define KernelPackage/hwmon-jc42/description
+ Kernel module for Jedec JC42.4 compliant temperature sensors
+endef
+
+$(eval $(call KernelPackage,hwmon-jc42))
+
+
+define KernelPackage/hwmon-lm63
+ TITLE:=LM63/64 monitoring support
+ KCONFIG:=CONFIG_SENSORS_LM63
+ FILES:=$(LINUX_DIR)/drivers/hwmon/lm63.ko
+ AUTOLOAD:=$(call AutoProbe,lm63)
+ $(call AddDepends/hwmon,+kmod-i2c-core +kmod-regmap-i2c)
+endef
+
+define KernelPackage/hwmon-lm63/description
+ Kernel module for lm63 and lm64 thermal monitor chip
+endef
+
+$(eval $(call KernelPackage,hwmon-lm63))
+
+
+define KernelPackage/hwmon-lm70
+ TITLE:=LM70 monitoring support
+ KCONFIG:=CONFIG_SENSORS_LM70 \
+ CONFIG_SPI=y \
+ CONFIG_SPI_MASTER=y
+ FILES:=$(LINUX_DIR)/drivers/hwmon/lm70.ko
+ AUTOLOAD:=$(call AutoProbe,lm70)
+ $(call AddDepends/hwmon)
+endef
+
+define KernelPackage/hwmon-lm70/description
+ Kernel module for lm70 and compatible thermal monitor chip
+endef
+
+$(eval $(call KernelPackage,hwmon-lm70))
+
+
+define KernelPackage/hwmon-lm75
+ TITLE:=LM75 monitoring support
+ KCONFIG:=CONFIG_SENSORS_LM75
+ FILES:=$(LINUX_DIR)/drivers/hwmon/lm75.ko
+ AUTOLOAD:=$(call AutoProbe,lm75)
+ $(call AddDepends/hwmon,+kmod-i2c-core +PACKAGE_kmod-thermal:kmod-thermal +kmod-regmap-i2c)
+endef
+
+define KernelPackage/hwmon-lm75/description
+ Kernel module for lm75 thermal monitor chip
+endef
+
+$(eval $(call KernelPackage,hwmon-lm75))
+
+
+define KernelPackage/hwmon-lm77
+ TITLE:=LM77 monitoring support
+ KCONFIG:=CONFIG_SENSORS_LM77
+ FILES:=$(LINUX_DIR)/drivers/hwmon/lm77.ko
+ AUTOLOAD:=$(call AutoProbe,lm77)
+ $(call AddDepends/hwmon,+kmod-i2c-core)
+endef
+
+define KernelPackage/hwmon-lm77/description
+ Kernel module for LM77 thermal monitor chip
+endef
+
+$(eval $(call KernelPackage,hwmon-lm77))
+
+
+define KernelPackage/hwmon-lm85
+ TITLE:=LM85 monitoring support
+ KCONFIG:=CONFIG_SENSORS_LM85
+ FILES:=$(LINUX_DIR)/drivers/hwmon/lm85.ko
+ AUTOLOAD:=$(call AutoProbe,lm85)
+ $(call AddDepends/hwmon,+kmod-i2c-core +kmod-hwmon-vid)
+endef
+
+define KernelPackage/hwmon-lm85/description
+ Kernel module for LM85 thermal monitor chip
+endef
+
+$(eval $(call KernelPackage,hwmon-lm85))
+
+
+define KernelPackage/hwmon-lm90
+ TITLE:=LM90 monitoring support
+ KCONFIG:=CONFIG_SENSORS_LM90
+ FILES:=$(LINUX_DIR)/drivers/hwmon/lm90.ko
+ AUTOLOAD:=$(call AutoProbe,lm90)
+ $(call AddDepends/hwmon,+kmod-i2c-core)
+endef
+
+define KernelPackage/hwmon-lm90/description
+ Kernel module for LM90 thermal monitor chip
+endef
+
+$(eval $(call KernelPackage,hwmon-lm90))
+
+
+define KernelPackage/hwmon-lm92
+ TITLE:=LM92 monitoring support
+ KCONFIG:=CONFIG_SENSORS_LM92
+ FILES:=$(LINUX_DIR)/drivers/hwmon/lm92.ko
+ AUTOLOAD:=$(call AutoProbe,lm92)
+ $(call AddDepends/hwmon,+kmod-i2c-core)
+endef
+
+define KernelPackage/hwmon-lm92/description
+ Kernel module for LM92 thermal monitor chip
+endef
+
+$(eval $(call KernelPackage,hwmon-lm92))
+
+
+define KernelPackage/hwmon-lm95241
+ TITLE:=LM95241 monitoring support
+ KCONFIG:=CONFIG_SENSORS_LM95241
+ FILES:=$(LINUX_DIR)/drivers/hwmon/lm95241.ko
+ AUTOLOAD:=$(call AutoProbe,lm95241)
+ $(call AddDepends/hwmon,+kmod-i2c-core)
+endef
+
+define KernelPackage/hwmon-lm95241/description
+ Kernel module for LM95241 thermal monitor chip
+endef
+
+$(eval $(call KernelPackage,hwmon-lm95241))
+
+
+define KernelPackage/hwmon-ltc4151
+ TITLE:=LTC4151 monitoring support
+ KCONFIG:=CONFIG_SENSORS_LTC4151
+ FILES:=$(LINUX_DIR)/drivers/hwmon/ltc4151.ko
+ AUTOLOAD:=$(call AutoProbe,ltc4151)
+ $(call AddDepends/hwmon,+kmod-i2c-core)
+endef
+
+define KernelPackage/hwmon-ltc4151/description
+ Kernel module for Linear Technology LTC4151 current and voltage monitor chip
+endef
+
+$(eval $(call KernelPackage,hwmon-ltc4151))
+
+
+define KernelPackage/hwmon-max6642
+ TITLE:=MAX6642 monitoring support
+ KCONFIG:=CONFIG_SENSORS_MAX6642
+ FILES:=$(LINUX_DIR)/drivers/hwmon/max6642.ko
+ AUTOLOAD:=$(call AutoLoad,60,max6642 max6642)
+ $(call AddDepends/hwmon,+kmod-i2c-core)
+endef
+
+define KernelPackage/hwmon-max6642/description
+ Kernel module for Maxim MAX6642 temperature monitor
+endef
+
+$(eval $(call KernelPackage,hwmon-max6642))
+
+
+define KernelPackage/hwmon-max6697
+ TITLE:=MAX6697 monitoring support
+ KCONFIG:=CONFIG_SENSORS_MAX6697
+ FILES:=$(LINUX_DIR)/drivers/hwmon/max6697.ko
+ AUTOLOAD:=$(call AutoProbe,max6697)
+ $(call AddDepends/hwmon,+kmod-i2c-core)
+endef
+
+define KernelPackage/hwmon-max6697/description
+ Kernel module for Maxim MAX6697 temperature monitor
+endef
+
+$(eval $(call KernelPackage,hwmon-max6697))
+
+
+define KernelPackage/hwmon-mcp3021
+ TITLE:=MCP3021/3221 monitoring support
+ KCONFIG:=CONFIG_SENSORS_MCP3021
+ FILES:=$(LINUX_DIR)/drivers/hwmon/mcp3021.ko
+ AUTOLOAD:=$(call AutoProbe,mcp3021)
+ $(call AddDepends/hwmon,+kmod-i2c-core)
+endef
+
+define KernelPackage/hwmon-mcp3021/description
+ Kernel module for Linear Technology MCP3021/3221 current and voltage monitor chip
+endef
+
+$(eval $(call KernelPackage,hwmon-mcp3021))
+
+
+define KernelPackage/hwmon-nct6775
+ TITLE:=NCT6106D/6775F/6776F/6779D/6791D/6792D/6793D and compatibles monitoring support
+ KCONFIG:=CONFIG_SENSORS_NCT6775
+ FILES:= \
+ $(LINUX_DIR)/drivers/hwmon/nct6775.ko \
+ $(LINUX_DIR)/drivers/hwmon/nct6775-core.ko
+ AUTOLOAD:=$(call AutoProbe,nct6775)
+ $(call AddDepends/hwmon,@PCI_SUPPORT @TARGET_x86 +kmod-hwmon-vid +kmod-regmap-core)
+endef
+
+define KernelPackage/hwmon-nct6775/description
+ Kernel module for NCT6106D/6775F/6776F/6779D/6791D/6792D/6793D thermal monitor chip
+endef
+
+$(eval $(call KernelPackage,hwmon-nct6775))
+
+
+define KernelPackage/hwmon-nct7802
+ TITLE:=NCT7802Y and compatibles monitoring support
+ KCONFIG:=CONFIG_SENSORS_NCT7802
+ FILES:=$(LINUX_DIR)/drivers/hwmon/nct7802.ko
+ AUTOLOAD:=$(call AutoProbe,nct7802)
+ $(call AddDepends/hwmon,+kmod-regmap-i2c)
+endef
+
+define KernelPackage/hwmon-nct7802/description
+ Kernel module for NCT7802Y thermal monitor chip
+endef
+
+$(eval $(call KernelPackage,hwmon-nct7802))
+
+
+define KernelPackage/hwmon-pc87360
+ TITLE:=PC87360 monitoring support
+ KCONFIG:=CONFIG_SENSORS_PC87360
+ FILES:=$(LINUX_DIR)/drivers/hwmon/pc87360.ko
+ AUTOLOAD:=$(call AutoProbe,pc87360)
+ $(call AddDepends/hwmon,@TARGET_x86 +kmod-hwmon-vid)
+endef
+
+define KernelPackage/hwmon-pc87360/description
+ Kernel modules for PC87360 chips
+endef
+
+$(eval $(call KernelPackage,hwmon-pc87360))
+
+
+define KernelPackage/pmbus-core
+ TITLE:=PMBus support
+ KCONFIG:= CONFIG_PMBUS
+ FILES:=$(LINUX_DIR)/drivers/hwmon/pmbus/pmbus_core.ko
+ $(call AddDepends/hwmon,+kmod-i2c-core)
+endef
+
+define KernelPackage/pmbus-core/description
+ Kernel modules for Power Management Bus
+endef
+
+$(eval $(call KernelPackage,pmbus-core))
+
+
+define KernelPackage/pmbus-zl6100
+ TITLE:=Intersil / Zilker Labs ZL6100 hardware monitoring
+ KCONFIG:=CONFIG_SENSORS_ZL6100
+ FILES:=$(LINUX_DIR)/drivers/hwmon/pmbus/zl6100.ko
+ AUTOLOAD:=$(call AutoProbe,zl6100)
+ $(call AddDepends/hwmon, +kmod-pmbus-core)
+endef
+
+define KernelPackage/pmbus-zl6100/description
+ Kernel module for Intersil / Zilker Labs ZL6100 and
+compatible digital DC-DC controllers
+endef
+
+$(eval $(call KernelPackage,pmbus-zl6100))
+
+
+define KernelPackage/hwmon-pwmfan
+ TITLE:=Generic PWM FAN support
+ KCONFIG:=CONFIG_SENSORS_PWM_FAN
+ FILES:=$(LINUX_DIR)/drivers/hwmon/pwm-fan.ko
+ AUTOLOAD:=$(call AutoLoad,60,pwm-fan)
+ $(call AddDepends/hwmon, +PACKAGE_kmod-thermal:kmod-thermal)
+endef
+
+define KernelPackage/hwmon-pwmfan/description
+ Kernel module for PWM controlled FANs
+endef
+
+$(eval $(call KernelPackage,hwmon-pwmfan))
+
+
+define KernelPackage/hwmon-sch5627
+ TITLE:=SMSC SCH5627 monitoring support
+ KCONFIG:= \
+ CONFIG_SENSORS_SCH5627 \
+ CONFIG_WATCHDOG_CORE=y
+ FILES:= \
+ $(LINUX_DIR)/drivers/hwmon/sch5627.ko \
+ $(LINUX_DIR)/drivers/hwmon/sch56xx-common.ko
+ AUTOLOAD:=$(call AutoProbe,sch5627)
+ $(call AddDepends/hwmon,+kmod-i2c-core)
+endef
+
+define KernelPackage/hwmon-sch5627/description
+ SMSC SCH5627 Super I/O chips include complete hardware monitoring
+endef
+
+$(eval $(call KernelPackage,hwmon-sch5627))
+
+
+define KernelPackage/hwmon-sht21
+ TITLE:=Sensiron SHT21 and compat. monitoring support
+ KCONFIG:=CONFIG_SENSORS_SHT21
+ FILES:=$(LINUX_DIR)/drivers/hwmon/sht21.ko
+ AUTOLOAD:=$(call AutoProbe,sht21)
+ $(call AddDepends/hwmon,+kmod-i2c-core)
+endef
+
+define KernelPackage/hwmon-sht21/description
+ Kernel module for Sensirion SHT21 and SHT25 temperature and humidity sensors chip
+endef
+
+$(eval $(call KernelPackage,hwmon-sht21))
+
+
+define KernelPackage/hwmon-sht3x
+ TITLE:=Sensiron SHT3x and compat. monitoring support
+ KCONFIG:=CONFIG_SENSORS_SHT3x
+ FILES:=$(LINUX_DIR)/drivers/hwmon/sht3x.ko
+ AUTOLOAD:=$(call AutoProbe,sht3x)
+ $(call AddDepends/hwmon,+kmod-i2c-core +kmod-lib-crc8)
+endef
+
+define KernelPackage/hwmon-sht3x/description
+ Kernel module for Sensirion SHT3x temperature and humidity sensors chip
+endef
+
+$(eval $(call KernelPackage,hwmon-sht3x))
+
+
+define KernelPackage/hwmon-tc654
+ TITLE:=TC654 monitoring support
+ KCONFIG:=CONFIG_SENSORS_TC654
+ FILES:=$(LINUX_DIR)/drivers/hwmon/tc654.ko
+ AUTOLOAD:=$(call AutoLoad,60,tc654)
+ $(call AddDepends/hwmon,+kmod-i2c-core)
+endef
+
+define KernelPackage/hwmon-tc654/description
+ Kernel module for Microchip TC654/TC655 and compatibles
+endef
+
+$(eval $(call KernelPackage,hwmon-tc654))
+
+
+define KernelPackage/hwmon-tmp102
+ TITLE:=Texas Instruments TMP102 monitoring support
+ KCONFIG:=CONFIG_SENSORS_TMP102
+ FILES:=$(LINUX_DIR)/drivers/hwmon/tmp102.ko
+ AUTOLOAD:=$(call AutoProbe,tmp102)
+ $(call AddDepends/hwmon,+kmod-i2c-core +PACKAGE_kmod-thermal:kmod-thermal +kmod-regmap-i2c)
+endef
+
+define KernelPackage/hwmon-tmp102/description
+ Kernel module for Texas Instruments TMP102 temperature sensors chip
+endef
+
+$(eval $(call KernelPackage,hwmon-tmp102))
+
+
+define KernelPackage/hwmon-tmp103
+ TITLE:=Texas Instruments TMP103 monitoring support
+ KCONFIG:=CONFIG_SENSORS_TMP103
+ FILES:=$(LINUX_DIR)/drivers/hwmon/tmp103.ko
+ AUTOLOAD:=$(call AutoProbe,tmp103)
+ $(call AddDepends/hwmon,+kmod-i2c-core +kmod-regmap-i2c)
+endef
+
+define KernelPackage/hwmon-tmp103/description
+ Kernel module for Texas Instruments TMP103 temperature sensors chip
+endef
+
+$(eval $(call KernelPackage,hwmon-tmp103))
+
+
+define KernelPackage/hwmon-tmp421
+ TITLE:=TI TMP421 and compatible monitoring support
+ KCONFIG:=CONFIG_SENSORS_TMP421
+ FILES:=$(LINUX_DIR)/drivers/hwmon/tmp421.ko
+ AUTOLOAD:=$(call AutoLoad,60,tmp421)
+ $(call AddDepends/hwmon,+kmod-i2c-core)
+endef
+
+define KernelPackage/hwmon-tmp421/description
+ Kernel module for the Texas Instruments TMP421 and compatible chips.
+endef
+
+$(eval $(call KernelPackage,hwmon-tmp421))
+
+
+define KernelPackage/hwmon-tps23861
+ TITLE:=Texas Instruments TPS23861 PoE PSE
+ KCONFIG:=CONFIG_SENSORS_TPS23861
+ FILES:=$(LINUX_DIR)/drivers/hwmon/tps23861.ko
+ AUTOLOAD:=$(call AutoProbe,tps23861)
+ $(call AddDepends/hwmon,+kmod-i2c-core +kmod-regmap-i2c)
+endef
+
+define KernelPackage/hwmon-tps23861/description
+ Kernel module for the Texas Instruments TPS23861 802.3at PoE PSE chips.
+endef
+
+$(eval $(call KernelPackage,hwmon-tps23861))
+
+define KernelPackage/hwmon-vid
+ TITLE:=VID/VRM/VRD voltage conversion module.
+ KCONFIG:=CONFIG_HWMON_VID
+ FILES:=$(LINUX_DIR)/drivers/hwmon/hwmon-vid.ko
+ AUTOLOAD:=$(call AutoLoad,41,hwmon-vid)
+ $(call AddDepends/hwmon,)
+endef
+
+define KernelPackage/hwmon-vid/description
+ VID/VRM/VRD voltage conversion module for hardware monitoring
+endef
+
+$(eval $(call KernelPackage,hwmon-vid))
+
+
+define KernelPackage/hwmon-w83627ehf
+ TITLE:=Winbond W83627EHF/EHG/DHG/UHG, W83667HG monitoring support
+ KCONFIG:=CONFIG_SENSORS_W83627EHF
+ FILES:=$(LINUX_DIR)/drivers/hwmon/w83627ehf.ko
+ AUTOLOAD:=$(call AutoProbe,w83627ehf)
+ $(call AddDepends/hwmon,@TARGET_x86 +kmod-hwmon-vid)
+endef
+
+define KernelPackage/hwmon-w83627ehf/description
+ Kernel module for Winbond W83627EHF/EHG/DHG/UHG and W83667HG thermal monitor chip
+ Support for NCT6775F and NCT6776F has been removed from this driver in favour of
+ using the nct6775 driver to handle those chips.
+endef
+
+$(eval $(call KernelPackage,hwmon-w83627ehf))
+
+
+define KernelPackage/hwmon-w83627hf
+ TITLE:=Winbond W83627HF monitoring support
+ KCONFIG:=CONFIG_SENSORS_W83627HF
+ FILES:=$(LINUX_DIR)/drivers/hwmon/w83627hf.ko
+ AUTOLOAD:=$(call AutoLoad,50,w83627hf)
+ $(call AddDepends/hwmon,@TARGET_x86 +kmod-hwmon-vid)
+endef
+
+define KernelPackage/hwmon-w83627hf/description
+ Kernel module for the Winbond W83627HF chips.
+endef
+
+$(eval $(call KernelPackage,hwmon-w83627hf))
+
+
+define KernelPackage/hwmon-w83793
+ TITLE:=Winbond W83793G/R monitoring support
+ KCONFIG:=CONFIG_SENSORS_W83793
+ FILES:=$(LINUX_DIR)/drivers/hwmon/w83793.ko
+ AUTOLOAD:=$(call AutoProbe,w83793)
+ $(call AddDepends/hwmon,+kmod-i2c-core +kmod-hwmon-vid)
+endef
+
+define KernelPackage/hwmon-w83793/description
+ Kernel module for the Winbond W83793G and W83793R chips.
+endef
+
+$(eval $(call KernelPackage,hwmon-w83793))
+
+
+define KernelPackage/hwmon-adcxx
+ TITLE:=ADCxx monitoring support
+ KCONFIG:=CONFIG_SENSORS_ADCXX
+ FILES:=$(LINUX_DIR)/drivers/hwmon/adcxx.ko
+ AUTOLOAD:=$(call AutoLoad,60,adcxx)
+ $(call AddDepends/hwmon,)
+endef
+
+define KernelPackage/hwmon-adcxx/description
+ Kernel module for the National Semiconductor
+ ADC<bb><c>S<sss> chip family, where
+ * bb is the resolution in number of bits (8, 10, 12)
+ * c is the number of channels (1, 2, 4, 8)
+ * sss is the maximum conversion speed (021 for 200 kSPS, 051 for 500
+ kSPS and 101 for 1 MSPS)
+
+ Examples : ADC081S101, ADC124S501, ...
+endef
+
+$(eval $(call KernelPackage,hwmon-adcxx))
+
+
diff --git a/package/kernel/linux/modules/i2c.mk b/package/kernel/linux/modules/i2c.mk
new file mode 100644
index 0000000..236c2e0
--- /dev/null
+++ b/package/kernel/linux/modules/i2c.mk
@@ -0,0 +1,320 @@
+#
+# Copyright (C) 2006-2009 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+I2C_MENU:=I2C support
+
+ModuleConfVar=$(word 1,$(subst :,$(space),$(1)))
+ModuleFullPath=$(LINUX_DIR)/$(word 2,$(subst :,$(space),$(1))).ko
+ModuleKconfig=$(foreach mod,$(1),$(call ModuleConfVar,$(mod)))
+ModuleFiles=$(foreach mod,$(1),$(call ModuleFullPath,$(mod)))
+ModuleAuto=$(call AutoLoad,$(1),$(foreach mod,$(2),$(basename $(notdir $(call ModuleFullPath,$(mod))))),$(3))
+
+define i2c_defaults
+ SUBMENU:=$(I2C_MENU)
+ KCONFIG:=$(call ModuleKconfig,$(1))
+ FILES:=$(call ModuleFiles,$(1))
+ AUTOLOAD:=$(call ModuleAuto,$(2),$(1),$(3))
+endef
+
+I2C_CORE_MODULES:= \
+ CONFIG_I2C:drivers/i2c/i2c-core \
+ CONFIG_I2C_CHARDEV:drivers/i2c/i2c-dev
+
+define KernelPackage/i2c-core
+ $(call i2c_defaults,$(I2C_CORE_MODULES),51)
+ TITLE:=I2C support
+endef
+
+define KernelPackage/i2c-core/description
+ Kernel modules for I2C support
+endef
+
+$(eval $(call KernelPackage,i2c-core))
+
+
+I2C_ALGOBIT_MODULES:= \
+ CONFIG_I2C_ALGOBIT:drivers/i2c/algos/i2c-algo-bit
+
+define KernelPackage/i2c-algo-bit
+ $(call i2c_defaults,$(I2C_ALGOBIT_MODULES),55)
+ TITLE:=I2C bit-banging interfaces
+ DEPENDS:=+kmod-i2c-core
+endef
+
+define KernelPackage/i2c-algo-bit/description
+ Kernel modules for I2C bit-banging interfaces
+endef
+
+$(eval $(call KernelPackage,i2c-algo-bit))
+
+
+I2C_ALGOPCA_MODULES:= \
+ CONFIG_I2C_ALGOPCA:drivers/i2c/algos/i2c-algo-pca
+
+define KernelPackage/i2c-algo-pca
+ $(call i2c_defaults,$(I2C_ALGOPCA_MODULES),55)
+ TITLE:=I2C PCA 9564 interfaces
+ DEPENDS:=+kmod-i2c-core
+endef
+
+define KernelPackage/i2c-algo-pca/description
+ Kernel modules for I2C PCA 9564 interfaces
+endef
+
+$(eval $(call KernelPackage,i2c-algo-pca))
+
+
+I2C_ALGOPCF_MODULES:= \
+ CONFIG_I2C_ALGOPCF:drivers/i2c/algos/i2c-algo-pcf
+
+define KernelPackage/i2c-algo-pcf
+ $(call i2c_defaults,$(I2C_ALGOPCF_MODULES),55)
+ TITLE:=I2C PCF 8584 interfaces
+ DEPENDS:=+kmod-i2c-core
+endef
+
+define KernelPackage/i2c-algo-pcf/description
+ Kernel modules for I2C PCF 8584 interfaces
+endef
+
+$(eval $(call KernelPackage,i2c-algo-pcf))
+
+
+I2C_CCGS_UCSI_MODULES:= \
+ CONFIG_I2C_CCGX_UCSI:drivers/i2c/busses/i2c-ccgx-ucsi
+
+define KernelPackage/i2c-ccgs-ucsi
+ $(call i2c_defaults,$(I2C_CCGS_UCSI_MODULES),58)
+ TITLE:=Cypress CCGx Type-C controller
+ DEPENDS:=+kmod-i2c-core +kmod-regmap-core
+ HIDDEN:=y
+endef
+
+
+$(eval $(call KernelPackage,i2c-ccgs-ucsi))
+
+
+I2C_DWCORE_MODULES:= \
+ CONFIG_I2C_DESIGNWARE_CORE:drivers/i2c/busses/i2c-designware-core
+
+define KernelPackage/i2c-designware-core
+ $(call i2c_defaults,$(I2C_DWCORE_MODULES),58)
+ TITLE:=Synopsys DesignWare I2C core
+ DEPENDS:=+kmod-i2c-core +!LINUX_5_4:kmod-regmap-core
+ HIDDEN:=y
+endef
+
+$(eval $(call KernelPackage,i2c-designware-core))
+
+
+I2C_DWPCI_MODULES:= \
+ CONFIG_I2C_DESIGNWARE_PCI:drivers/i2c/busses/i2c-designware-pci
+
+define KernelPackage/i2c-designware-pci
+ $(call i2c_defaults,$(I2C_DWPCI_MODULES),59)
+ TITLE:=Synopsys DesignWare PCI
+ DEPENDS:=@PCI_SUPPORT +kmod-i2c-designware-core +kmod-i2c-ccgs-ucsi
+endef
+
+define KernelPackage/i2c-designware-pci/description
+ Support for Synopsys DesignWare I2C controller. Only master mode is supported.
+endef
+
+$(eval $(call KernelPackage,i2c-designware-pci))
+
+
+I2C_GPIO_MODULES:= \
+ CONFIG_I2C_GPIO:drivers/i2c/busses/i2c-gpio
+
+define KernelPackage/i2c-gpio
+ $(call i2c_defaults,$(I2C_GPIO_MODULES),59)
+ TITLE:=GPIO-based bitbanging I2C
+ DEPENDS:=@GPIO_SUPPORT +kmod-i2c-algo-bit
+endef
+
+define KernelPackage/i2c-gpio/description
+ Kernel modules for a very simple bitbanging I2C driver utilizing the
+ arch-neutral GPIO API to control the SCL and SDA lines.
+endef
+
+$(eval $(call KernelPackage,i2c-gpio))
+
+
+I2C_I801_MODULES:= \
+ CONFIG_I2C_I801:drivers/i2c/busses/i2c-i801
+
+define KernelPackage/i2c-i801
+ $(call i2c_defaults,$(I2C_I801_MODULES),59)
+ TITLE:=Intel I801 and compatible I2C interfaces
+ DEPENDS:=@PCI_SUPPORT @TARGET_x86 +kmod-i2c-core +kmod-i2c-smbus
+endef
+
+define KernelPackage/i2c-i801/description
+ Support for the Intel I801 family of mainboard I2C interfaces,
+ specifically 82801AA, 82801AB, 82801BA, 82801CA/CAM, 82801DB,
+ 82801EB/ER (ICH5/ICH5R), 6300ESB, ICH6, ICH7, ESB2, ICH8, ICH9,
+ EP80579 (Tolapai), ICH10, 5/3400 Series (PCH), 6 Series (PCH),
+ Patsburg (PCH), DH89xxCC (PCH), Panther Point (PCH),
+ Lynx Point (PCH), Lynx Point-LP (PCH), Avoton (SOC),
+ Wellsburg (PCH), Coleto Creek (PCH), Wildcat Point (PCH),
+ Wildcat Point-LP (PCH), BayTrail (SOC), Sunrise Point-H (PCH),
+ Sunrise Point-LP (PCH), DNV (SOC), Broxton (SOC),
+ Lewisburg (PCH).
+endef
+
+$(eval $(call KernelPackage,i2c-i801))
+
+
+I2C_MUX_MODULES:= \
+ CONFIG_I2C_MUX:drivers/i2c/i2c-mux
+
+define KernelPackage/i2c-mux
+ $(call i2c_defaults,$(I2C_MUX_MODULES),51)
+ TITLE:=I2C bus multiplexing support
+ DEPENDS:=+kmod-i2c-core
+endef
+
+define KernelPackage/i2c-mux/description
+ Kernel modules for I2C bus multiplexing support
+endef
+
+$(eval $(call KernelPackage,i2c-mux))
+
+I2C_MUX_GPIO_MODULES:= \
+ CONFIG_I2C_MUX_GPIO:drivers/i2c/muxes/i2c-mux-gpio
+
+define KernelPackage/i2c-mux-gpio
+ $(call i2c_defaults,$(I2C_MUX_GPIO_MODULES),51)
+ TITLE:=GPIO-based I2C mux/switches
+ DEPENDS:=+kmod-i2c-mux
+endef
+
+define KernelPackage/i2c-mux-gpio/description
+ Kernel modules for GENERIC_GPIO I2C bus mux/switching devices
+endef
+
+$(eval $(call KernelPackage,i2c-mux-gpio))
+
+
+I2C_MUX_REG_MODULES:= \
+ CONFIG_I2C_MUX_REG:drivers/i2c/muxes/i2c-mux-reg
+
+define KernelPackage/i2c-mux-reg
+ $(call i2c_defaults,$(I2C_MUX_REG_MODULES),51)
+ TITLE:=Register-based I2C mux/switches
+ DEPENDS:=+kmod-i2c-mux
+endef
+
+define KernelPackage/i2c-mux-reg/description
+ Kernel modules for register-based I2C bus mux/switching devices
+endef
+
+$(eval $(call KernelPackage,i2c-mux-reg))
+
+
+I2C_MUX_PCA9541_MODULES:= \
+ CONFIG_I2C_MUX_PCA9541:drivers/i2c/muxes/i2c-mux-pca9541
+
+define KernelPackage/i2c-mux-pca9541
+ $(call i2c_defaults,$(I2C_MUX_PCA9541_MODULES),51)
+ TITLE:=Philips PCA9541 I2C mux/switches
+ DEPENDS:=+kmod-i2c-mux
+endef
+
+define KernelPackage/i2c-mux-pca9541/description
+ Kernel modules for PCA9541 I2C bus mux/switching devices
+endef
+
+$(eval $(call KernelPackage,i2c-mux-pca9541))
+
+I2C_MUX_PCA954x_MODULES:= \
+ CONFIG_I2C_MUX_PCA954x:drivers/i2c/muxes/i2c-mux-pca954x
+
+define KernelPackage/i2c-mux-pca954x
+ $(call i2c_defaults,$(I2C_MUX_PCA954x_MODULES),51)
+ TITLE:=Philips PCA954x I2C mux/switches
+ DEPENDS:=+kmod-i2c-mux
+endef
+
+define KernelPackage/i2c-mux-pca954x/description
+ Kernel modules for PCA954x I2C bus mux/switching devices
+endef
+
+$(eval $(call KernelPackage,i2c-mux-pca954x))
+
+
+I2C_PIIX4_MODULES:= \
+ CONFIG_I2C_PIIX4:drivers/i2c/busses/i2c-piix4
+
+define KernelPackage/i2c-piix4
+ $(call i2c_defaults,$(I2C_PIIX4_MODULES),59)
+ TITLE:=Intel PIIX4 and compatible I2C interfaces
+ DEPENDS:=@PCI_SUPPORT @TARGET_x86 +kmod-i2c-core
+endef
+
+define KernelPackage/i2c-piix4/description
+ Support for the Intel PIIX4 family of mainboard I2C interfaces,
+ specifically Intel PIIX4, Intel 440MX, ATI IXP200, ATI IXP300,
+ ATI IXP400, ATI SB600, ATI SB700/SP5100, ATI SB800, AMD Hudson-2,
+ AMD ML, AMD CZ, Serverworks OSB4, Serverworks CSB5,
+ Serverworks CSB6, Serverworks HT-1000, Serverworks HT-1100 and
+ SMSC Victory66.
+endef
+
+$(eval $(call KernelPackage,i2c-piix4))
+
+
+I2C_PXA_MODULES:= \
+ CONFIG_I2C_PXA:drivers/i2c/busses/i2c-pxa
+
+define KernelPackage/i2c-pxa
+ $(call i2c_defaults,$(I2C_PXA_MODULES),50)
+ TITLE:=Intel PXA I2C bus driver
+ DEPENDS:=+kmod-i2c-core
+endef
+
+define KernelPackage/i2c-pxa/description
+ Kernel module for Intel PXA2XX I2C adapter
+endef
+
+$(eval $(call KernelPackage,i2c-pxa))
+
+
+I2C_SMBUS_MODULES:= \
+ CONFIG_I2C_SMBUS:drivers/i2c/i2c-smbus
+
+define KernelPackage/i2c-smbus
+ $(call i2c_defaults,$(I2C_SMBUS_MODULES),58)
+ TITLE:=SMBus-specific protocols helper
+ DEPENDS:=+kmod-i2c-core
+endef
+
+define KernelPackage/i2c-smbus/description
+ Support for the SMBus extensions to the I2C specification.
+endef
+
+$(eval $(call KernelPackage,i2c-smbus))
+
+
+
+I2C_TINY_USB_MODULES:= \
+ CONFIG_I2C_TINY_USB:drivers/i2c/busses/i2c-tiny-usb
+
+define KernelPackage/i2c-tiny-usb
+ $(call i2c_defaults,$(I2C_TINY_USB_MODULES),59)
+ TITLE:=I2C Tiny USB adaptor
+ DEPENDS:=@USB_SUPPORT +kmod-i2c-core +kmod-usb-core
+endef
+
+define KernelPackage/i2c-tiny-usb/description
+ Kernel module for the I2C Tiny USB adaptor developed
+ by Till Harbaum (http://www.harbaum.org/till/i2c_tiny_usb)
+endef
+
+$(eval $(call KernelPackage,i2c-tiny-usb))
+
+
diff --git a/package/kernel/linux/modules/iio.mk b/package/kernel/linux/modules/iio.mk
new file mode 100644
index 0000000..c934a6f
--- /dev/null
+++ b/package/kernel/linux/modules/iio.mk
@@ -0,0 +1,582 @@
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+IIO_MENU:=Industrial I/O Modules
+
+
+define KernelPackage/iio-core
+ SUBMENU:=$(IIO_MENU)
+ TITLE:=Industrial IO core
+ KCONFIG:= \
+ CONFIG_IIO \
+ CONFIG_IIO_BUFFER=y \
+ CONFIG_IIO_TRIGGER=y
+ FILES:=$(LINUX_DIR)/drivers/iio/industrialio.ko
+ AUTOLOAD:=$(call AutoLoad,55,industrialio)
+endef
+
+define KernelPackage/iio-core/description
+ The industrial I/O subsystem provides a unified framework for
+ drivers for many different types of embedded sensors using a
+ number of different physical interfaces (i2c, spi, etc)
+endef
+
+$(eval $(call KernelPackage,iio-core))
+
+define AddDepends/iio
+ SUBMENU:=$(IIO_MENU)
+ DEPENDS+=+kmod-iio-core $(1)
+endef
+
+define KernelPackage/iio-kfifo-buf
+ TITLE:=Industrial I/O buffering based on kfifo
+ KCONFIG:=CONFIG_IIO_KFIFO_BUF
+ FILES:=$(LINUX_DIR)/drivers/iio/buffer/kfifo_buf.ko
+ AUTOLOAD:=$(call AutoLoad,55,kfifo_buf)
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-kfifo-buf/description
+ A simple fifo based on kfifo. Note that this currently provides no buffer
+ events so it is up to userspace to work out how often to read from the buffer.
+endef
+
+$(eval $(call KernelPackage,iio-kfifo-buf))
+
+
+define KernelPackage/industrialio-triggered-buffer
+ TITLE:=Provides helper functions for setting up triggered buffers.
+ DEPENDS:=+kmod-iio-kfifo-buf
+ KCONFIG:=CONFIG_IIO_TRIGGERED_BUFFER
+ FILES:=$(LINUX_DIR)/drivers/iio/buffer/industrialio-triggered-buffer.ko
+ AUTOLOAD:=$(call AutoLoad,55,industrialio-triggered-buffer)
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/industrialio-triggered-buffer/description
+ Provides helper functions for setting up triggered buffers.
+endef
+
+$(eval $(call KernelPackage,industrialio-triggered-buffer))
+
+
+define KernelPackage/iio-ad799x
+ DEPENDS:=+kmod-i2c-core +kmod-industrialio-triggered-buffer
+ TITLE:=Analog Devices AD799x ADC driver
+ KCONFIG:= \
+ CONFIG_AD799X_RING_BUFFER=y \
+ CONFIG_AD799X
+ FILES:=$(LINUX_DIR)/drivers/iio/adc/ad799x.ko
+ AUTOLOAD:=$(call AutoLoad,56,ad799x)
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-ad799x/description
+ support for Analog Devices:
+ ad7991, ad7995, ad7999, ad7992, ad7993, ad7994, ad7997, ad7998
+ i2c analog to digital converters (ADC).
+endef
+
+$(eval $(call KernelPackage,iio-ad799x))
+
+define KernelPackage/iio-ads1015
+ DEPENDS:=+kmod-i2c-core +kmod-regmap-i2c +kmod-industrialio-triggered-buffer
+ TITLE:=Texas Instruments ADS1015 ADC driver
+ KCONFIG:= CONFIG_TI_ADS1015
+ FILES:=$(LINUX_DIR)/drivers/iio/adc/ti-ads1015.ko
+ AUTOLOAD:=$(call AutoLoad,56,ti-ads1015)
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-ads1015/description
+ This driver adds support for Texas Instruments ADS1015 and ADS1115 ADCs.
+endef
+
+$(eval $(call KernelPackage,iio-ads1015))
+
+define KernelPackage/iio-hmc5843
+ DEPENDS:=+kmod-i2c-core +kmod-regmap-i2c +kmod-industrialio-triggered-buffer
+ TITLE:=Honeywell HMC58x3 Magnetometer
+ KCONFIG:= CONFIG_SENSORS_HMC5843_I2C
+ FILES:= \
+ $(LINUX_DIR)/drivers/iio/magnetometer/hmc5843_i2c.ko \
+ $(LINUX_DIR)/drivers/iio/magnetometer/hmc5843_core.ko
+ AUTOLOAD:=$(call AutoLoad,56,hmc5843)
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-hmc5843/description
+ Honeywell HMC5843/5883/5883L 3-Axis Magnetometer
+endef
+
+$(eval $(call KernelPackage,iio-hmc5843))
+
+define KernelPackage/iio-bh1750
+ DEPENDS:=+kmod-i2c-core
+ TITLE:=ROHM BH1750 ambient light sensor
+ KCONFIG:= CONFIG_BH1750
+ FILES:=$(LINUX_DIR)/drivers/iio/light/bh1750.ko
+ AUTOLOAD:=$(call AutoLoad,56,bh1750)
+ $(call AddDepends/iio)
+endef
+define KernelPackage/iio-bh1750/description
+ ROHM BH1750 ambient light sensor (i2c bus)
+endef
+$(eval $(call KernelPackage,iio-bh1750))
+
+define KernelPackage/iio-am2315
+ DEPENDS:=+kmod-i2c-core +kmod-industrialio-triggered-buffer
+ TITLE:=Asong AM2315 humidity/temperature sensor
+ KCONFIG:= CONFIG_AM2315
+ FILES:=$(LINUX_DIR)/drivers/iio/humidity/am2315.ko
+ AUTOLOAD:=$(call AutoLoad,56,am2315)
+ $(call AddDepends/iio)
+endef
+define KernelPackage/iio-am2315/description
+ Aosong AM2315 humidity/temperature sensor (I2C bus)
+endef
+$(eval $(call KernelPackage,iio-am2315))
+
+define KernelPackage/iio-mxs-lradc
+ DEPENDS:=@TARGET_mxs +kmod-industrialio-triggered-buffer
+ TITLE:=Freescale i.MX23/i.MX28 LRADC ADC driver
+ KCONFIG:= \
+ CONFIG_MXS_LRADC_ADC
+ FILES:=$(LINUX_DIR)/drivers/iio/adc/mxs-lradc-adc.ko
+ AUTOLOAD:=$(call AutoLoad,56,mxs-lradc-adc)
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-mxs-lradc/description
+ Support for Freescale's i.MX23/i.MX28 SoC internal Low-Resolution ADC
+endef
+
+$(eval $(call KernelPackage,iio-mxs-lradc))
+
+define KernelPackage/iio-dht11
+ DEPENDS:=@GPIO_SUPPORT @USES_DEVICETREE
+ TITLE:=DHT11 (and compatible) humidity and temperature sensors
+ KCONFIG:= \
+ CONFIG_DHT11
+ FILES:=$(LINUX_DIR)/drivers/iio/humidity/dht11.ko
+ AUTOLOAD:=$(call AutoLoad,56,dht11)
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-dht11/description
+ support for DHT11 and DHT22 digitial humidity and temperature sensors
+ attached at GPIO lines. You will need a custom device tree file to
+ specify the GPIO line to use.
+endef
+
+$(eval $(call KernelPackage,iio-dht11))
+
+
+define KernelPackage/iio-bme680
+ TITLE:=BME680 gas/humidity/pressure/temperature sensor
+ DEPENDS:=+kmod-regmap-core
+ KCONFIG:=CONFIG_BME680
+ FILES:=$(LINUX_DIR)/drivers/iio/chemical/bme680_core.ko
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-bme680/description
+ This driver adds support for Bosch Sensortec BME680 sensor with gas,
+ humidity, pressure and temperatue sensing capability.
+endef
+
+$(eval $(call KernelPackage,iio-bme680))
+
+define KernelPackage/iio-bme680-i2c
+ TITLE:=BME680 gas/humidity/pressure/temperature sensor (I2C)
+ DEPENDS:=+kmod-iio-bme680 +kmod-regmap-i2c
+ KCONFIG:=CONFIG_BME680_I2C
+ FILES:=$(LINUX_DIR)/drivers/iio/chemical/bme680_i2c.ko
+ AUTOLOAD:=$(call AutoProbe,bme680-i2c)
+ $(call AddDepends/iio)
+endef
+define KernelPackage/iio-bme680-i2c/description
+ This driver adds support for Bosch Sensortec's BME680 connected via I2C.
+endef
+
+$(eval $(call KernelPackage,iio-bme680-i2c))
+
+define KernelPackage/iio-bme680-spi
+ TITLE:=BME680 gas/humidity/pressure/temperature sensor (SPI)
+ DEPENDS:=+kmod-iio-bme680 +kmod-regmap-spi
+ KCONFIG:=CONFIG_BME680_SPI
+ FILES:=$(LINUX_DIR)/drivers/iio/chemical/bme680_spi.ko
+ AUTOLOAD:=$(call AutoProbe,bme680-spi)
+ $(call AddDepends/iio)
+endef
+define KernelPackage/iio-bme680-spi/description
+ This driver adds support for Bosch Sensortec's BME680 connected via SPI.
+endef
+
+$(eval $(call KernelPackage,iio-bme680-spi))
+
+
+define KernelPackage/iio-bmp280
+ TITLE:=BMP180/BMP280/BME280 pressure/temperatur sensor
+ DEPENDS:=+kmod-regmap-core
+ KCONFIG:=CONFIG_BMP280
+ FILES:=$(LINUX_DIR)/drivers/iio/pressure/bmp280.ko
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-bmp280/description
+ This driver adds support for Bosch Sensortec BMP180 and BMP280 pressure and
+ temperature sensors. Also supports the BME280 with an additional humidity
+ sensor channel.
+endef
+
+$(eval $(call KernelPackage,iio-bmp280))
+
+
+define KernelPackage/iio-bmp280-i2c
+ TITLE:=BMP180/BMP280/BME280 pressure/temperatur sensor (I2C)
+ DEPENDS:=+kmod-iio-bmp280 +kmod-i2c-core +kmod-regmap-i2c
+ KCONFIG:=CONFIG_BMP280_I2C
+ FILES:=$(LINUX_DIR)/drivers/iio/pressure/bmp280-i2c.ko
+ AUTOLOAD:=$(call AutoProbe,bmp280-i2c)
+ $(call AddDepends/iio)
+endef
+define KernelPackage/iio-bmp280-i2c/description
+ This driver adds support for Bosch Sensortec's digital pressure and
+ temperature sensor connected via I2C.
+endef
+
+$(eval $(call KernelPackage,iio-bmp280-i2c))
+
+
+define KernelPackage/iio-bmp280-spi
+ TITLE:=BMP180/BMP280/BME280 pressure/temperatur sensor (SPI)
+ DEPENDS:=+kmod-iio-bmp280 +kmod-spi-bitbang
+ KCONFIG:=CONFIG_BMP280_SPI
+ FILES:=$(LINUX_DIR)/drivers/iio/pressure/bmp280-spi.ko
+ AUTOLOAD:=$(call AutoProbe,bmp280-spi)
+ $(call AddDepends/iio)
+endef
+define KernelPackage/iio-bmp280-spi/description
+ This driver adds support for Bosch Sensortec's digital pressure and
+ temperature sensor connected via SPI.
+endef
+
+$(eval $(call KernelPackage,iio-bmp280-spi))
+
+define KernelPackage/iio-htu21
+ DEPENDS:=+kmod-i2c-core
+ TITLE:=HTU21 humidity & temperature sensor
+ KCONFIG:= \
+ CONFIG_HTU21 \
+ CONFIG_IIO_MS_SENSORS_I2C
+ FILES:= \
+ $(LINUX_DIR)/drivers/iio/humidity/htu21.ko \
+ $(LINUX_DIR)/drivers/iio/common/ms_sensors/ms_sensors_i2c.ko
+ AUTOLOAD:=$(call AutoLoad,56,htu21)
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-htu21/description
+ support for the Measurement Specialties HTU21 humidity and
+ temperature sensor.
+ This driver is also used for MS8607 temperature, pressure & humidity
+ sensor
+endef
+
+$(eval $(call KernelPackage,iio-htu21))
+
+
+define KernelPackage/iio-ccs811
+ DEPENDS:=+kmod-i2c-core +kmod-industrialio-triggered-buffer
+ TITLE:=AMS CCS811 VOC sensor
+ KCONFIG:= \
+ CONFIG_CCS811
+ FILES:= $(LINUX_DIR)/drivers/iio/chemical/ccs811.ko
+ AUTOLOAD:=$(call AutoLoad,56,ccs811)
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-ccs811/description
+ Support for the AMS CCS811 VOC (Volatile Organic Compounds) sensor
+endef
+
+$(eval $(call KernelPackage,iio-ccs811))
+
+
+define KernelPackage/iio-si7020
+ DEPENDS:=+kmod-i2c-core
+ TITLE:=Silicon Labs Si7020 sensor
+ KCONFIG:= CONFIG_SI7020
+ FILES:=$(LINUX_DIR)/drivers/iio/humidity/si7020.ko
+ AUTOLOAD:=$(call AutoLoad,56,si7020)
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-si7020/description
+ Support for Silicon Labs Si7020 family of relative humidity and
+ temperature sensors connected via I2C. Following models are usable:
+ Si7013, Si7020, Si7021, Hoperf TH06.
+endef
+
+$(eval $(call KernelPackage,iio-si7020))
+
+
+define KernelPackage/iio-st_accel
+ TITLE:=STMicroelectronics accelerometer 3-Axis Driver
+ DEPENDS:=+kmod-regmap-core +kmod-industrialio-triggered-buffer
+ KCONFIG:= \
+ CONFIG_IIO_ST_ACCEL_3AXIS \
+ CONFIG_IIO_ST_SENSORS_CORE
+ FILES:= \
+ $(LINUX_DIR)/drivers/iio/accel/st_accel.ko \
+ $(LINUX_DIR)/drivers/iio/common/st_sensors/st_sensors.ko
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-st_accel/description
+ This package adds support for STMicroelectronics accelerometers:
+ LSM303DLH, LSM303DLHC, LIS3DH, LSM330D, LSM330DL, LSM330DLC,
+ LIS331DLH, LSM303DL, LSM303DLM, LSM330, LIS2DH12, H3LIS331DL,
+ LNG2DM, LIS3DE, LIS2DE12
+endef
+
+$(eval $(call KernelPackage,iio-st_accel))
+
+
+define KernelPackage/iio-st_accel-i2c
+ TITLE:=STMicroelectronics accelerometer 3-Axis Driver (I2C)
+ DEPENDS:=+kmod-iio-st_accel +kmod-i2c-core +kmod-regmap-i2c
+ KCONFIG:= CONFIG_IIO_ST_ACCEL_I2C_3AXIS
+ FILES:= \
+ $(LINUX_DIR)/drivers/iio/accel/st_accel_i2c.ko \
+ $(LINUX_DIR)/drivers/iio/common/st_sensors/st_sensors_i2c.ko
+ AUTOLOAD:=$(call AutoLoad,56,st_accel_i2c)
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-st_accel-i2c/description
+ This package adds support for STMicroelectronics I2C based accelerometers
+endef
+
+$(eval $(call KernelPackage,iio-st_accel-i2c))
+
+
+define KernelPackage/iio-st_accel-spi
+ TITLE:=STMicroelectronics accelerometer 3-Axis Driver (SPI)
+ DEPENDS:=+kmod-iio-st_accel +kmod-regmap-spi
+ KCONFIG:= CONFIG_IIO_ST_ACCEL_SPI_3AXIS
+ FILES:= \
+ $(LINUX_DIR)/drivers/iio/accel/st_accel_spi.ko \
+ $(LINUX_DIR)/drivers/iio/common/st_sensors/st_sensors_spi.ko
+ AUTOLOAD:=$(call AutoLoad,56,st_accel_spi)
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-st_accel-spi/description
+ This package adds support for STMicroelectronics SPI based accelerometers
+endef
+
+$(eval $(call KernelPackage,iio-st_accel-spi))
+
+
+define KernelPackage/iio-lsm6dsx
+ DEPENDS:=+kmod-iio-kfifo-buf +kmod-regmap-core +LINUX_6_6:kmod-industrialio-triggered-buffer
+ TITLE:=ST LSM6DSx driver for IMU MEMS sensors
+ KCONFIG:=CONFIG_IIO_ST_LSM6DSX
+ FILES:=$(LINUX_DIR)/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.ko
+ AUTOLOAD:=$(call AutoProbe,st_lsm6dsx)
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-lsm6dsx/description
+ Support for the ST LSM6DSx and related IMU MEMS sensors.
+endef
+
+$(eval $(call KernelPackage,iio-lsm6dsx))
+
+
+define KernelPackage/iio-lsm6dsx-i2c
+ DEPENDS:=+kmod-iio-lsm6dsx +kmod-i2c-core +kmod-regmap-i2c
+ TITLE:=ST LSM6DSx driver for IMU MEMS sensors (I2C)
+ KCONFIG:=CONFIG_IIO_ST_LSM6DSX
+ FILES:=$(LINUX_DIR)/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.ko
+ AUTOLOAD:=$(call AutoProbe,st_lsm6dsx-i2c)
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-lsm6dsx-i2c/description
+ Support for the ST LSM6DSx and related IMU MEMS I2C sensors.
+endef
+
+$(eval $(call KernelPackage,iio-lsm6dsx-i2c))
+
+
+define KernelPackage/iio-lsm6dsx-spi
+ DEPENDS:=+kmod-iio-lsm6dsx +kmod-regmap-spi
+ TITLE:=ST LSM6DSx driver for IMU MEMS sensors (SPI)
+ KCONFIG:=CONFIG_IIO_ST_LSM6DSX
+ FILES:=$(LINUX_DIR)/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.ko
+ AUTOLOAD:=$(call AutoProbe,st_lsm6dsx-spi)
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-lsm6dsx-spi/description
+ Support for the ST LSM6DSx and related IMU MEMS SPI sensors.
+endef
+
+$(eval $(call KernelPackage,iio-lsm6dsx-spi))
+
+
+define KernelPackage/iio-sps30
+ DEPENDS:=+kmod-i2c-core +kmod-industrialio-triggered-buffer +kmod-lib-crc8
+ TITLE:=Sensirion SPS30 particulate matter sensor
+ KCONFIG:= \
+ CONFIG_SPS30 \
+ CONFIG_SPS30_I2C
+ FILES:= \
+ $(LINUX_DIR)/drivers/iio/chemical/sps30.ko \
+ $(LINUX_DIR)/drivers/iio/chemical/sps30_i2c.ko@ge5.14
+ AUTOLOAD:=$(call AutoProbe,sps30 sps30_i2c)
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-sps30/description
+ Support for the Sensirion SPS30 particulate matter sensor.
+endef
+
+$(eval $(call KernelPackage,iio-sps30))
+
+
+define KernelPackage/iio-tsl4531
+ DEPENDS:=+kmod-i2c-core
+ TITLE:=TAOS TSL4531 ambient light sensor
+ KCONFIG:= CONFIG_TSL4531
+ FILES:=$(LINUX_DIR)/drivers/iio/light/tsl4531.ko
+ AUTOLOAD:=$(call AutoLoad,56,tsl4531)
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-tsl4531/description
+ Support for TAOS TSL4531x family of ambient light sensors
+ connected via I2C. Following models are usable:
+ TSL45311, TSL45313, TSL45315, TSL45317.
+endef
+
+$(eval $(call KernelPackage,iio-tsl4531))
+
+
+define KernelPackage/iio-fxas21002c
+ TITLE:=Freescale FXAS21002C 3-axis gyro driver
+ DEPENDS:=+kmod-regmap-core +kmod-industrialio-triggered-buffer
+ KCONFIG:= CONFIG_FXAS21002C
+ FILES:=$(LINUX_DIR)/drivers/iio/gyro/fxas21002c_core.ko
+ AUTOLOAD:=$(call AutoLoad,56,fxas21002c)
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-fxas21002c/description
+ Support for Freescale FXAS21002C 3-axis gyro.
+endef
+
+$(eval $(call KernelPackage,iio-fxas21002c))
+
+
+define KernelPackage/iio-fxas21002c-i2c
+ TITLE:=Freescale FXAS21002C 3-axis gyro driver (I2C)
+ DEPENDS:=+kmod-iio-fxas21002c +kmod-i2c-core +kmod-regmap-i2c
+ KCONFIG:= CONFIG_FXAS21002C_I2C
+ FILES:=$(LINUX_DIR)/drivers/iio/gyro/fxas21002c_i2c.ko
+ AUTOLOAD:=$(call AutoLoad,56,fxas21002c_i2c)
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-fxas21002c-i2c/description
+ Support for Freescale FXAS21002C 3-axis gyro
+ connected via I2C.
+endef
+
+
+$(eval $(call KernelPackage,iio-fxas21002c-i2c))
+
+define KernelPackage/iio-fxas21002c-spi
+ DEPENDS:=+kmod-iio-fxas21002c +kmod-regmap-spi
+ TITLE:=Freescale FXAS21002C 3-axis gyro driver (SPI)
+ KCONFIG:= CONFIG_FXAS21002C_SPI
+ FILES:=$(LINUX_DIR)/drivers/iio/gyro/fxas21002c_spi.ko
+ AUTOLOAD:=$(call AutoLoad,56,fxas21002c_spi)
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-fxas21002c-spi/description
+ Support for Freescale FXAS21002C 3-axis gyro
+ connected via SPI.
+endef
+
+$(eval $(call KernelPackage,iio-fxas21002c-spi))
+
+
+define KernelPackage/iio-fxos8700
+ TITLE:=Freescale FXOS8700 3-axis accelerometer driver
+ DEPENDS:=+kmod-regmap-core
+ KCONFIG:= CONFIG_FXOS8700
+ FILES:=$(LINUX_DIR)/drivers/iio/imu/fxos8700_core.ko
+ AUTOLOAD:=$(call AutoLoad,56,fxos8700)
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-fxos8700/description
+ Support for Freescale FXOS8700 3-axis accelerometer.
+endef
+
+$(eval $(call KernelPackage,iio-fxos8700))
+
+
+define KernelPackage/iio-fxos8700-i2c
+ TITLE:=Freescale FXOS8700 3-axis acceleromter driver (I2C)
+ DEPENDS:=+kmod-iio-fxos8700 +kmod-i2c-core +kmod-regmap-i2c
+ KCONFIG:= CONFIG_FXOS8700_I2C
+ FILES:=$(LINUX_DIR)/drivers/iio/imu/fxos8700_i2c.ko
+ AUTOLOAD:=$(call AutoLoad,56,fxos8700_i2c)
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-fxos8700-i2c/description
+ Support for Freescale FXOS8700 3-axis accelerometer
+ connected via I2C.
+endef
+
+
+$(eval $(call KernelPackage,iio-fxos8700-i2c))
+
+define KernelPackage/iio-fxos8700-spi
+ DEPENDS:=+kmod-iio-fxos8700 +kmod-regmap-spi
+ TITLE:=Freescale FXOS8700 3-axis accelerometer driver (SPI)
+ KCONFIG:= CONFIG_FXOS8700_SPI
+ FILES:=$(LINUX_DIR)/drivers/iio/imu/fxos8700_spi.ko
+ AUTOLOAD:=$(call AutoLoad,56,fxos8700_spi)
+ $(call AddDepends/iio)
+endef
+
+define KernelPackage/iio-fxos8700-spi/description
+ Support for Freescale FXOS8700 3-axis accelerometer
+ connected via SPI.
+endef
+
+$(eval $(call KernelPackage,iio-fxos8700-spi))
+
+define KernelPackage/iio-ti-am335x-adc
+ TITLE:= TI Sitara AM335x ADC driver
+ DEPENDS:=@TARGET_omap
+ KCONFIG:=CONFIG_TI_AM335X_ADC
+ FILES:=$(LINUX_DIR)/drivers/iio/adc/ti_am335x_adc.ko
+ AUTOLOAD:=$(call AutoProbe,ti_am335x_adc)
+ $(call AddDepends/iio,+kmod-iio-kfifo-buf)
+endef
+define KernelPackage/iio-ti-am335x-adc/description
+ Driver for the TI AM335x ADC.
+endef
+
+$(eval $(call KernelPackage,iio-ti-am335x-adc))
diff --git a/package/kernel/linux/modules/input.mk b/package/kernel/linux/modules/input.mk
new file mode 100644
index 0000000..6478172
--- /dev/null
+++ b/package/kernel/linux/modules/input.mk
@@ -0,0 +1,251 @@
+#
+# Copyright (C) 2006-2013 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+INPUT_MODULES_MENU:=Input modules
+
+define KernelPackage/hid
+ SUBMENU:=$(INPUT_MODULES_MENU)
+ TITLE:=HID Devices
+ DEPENDS:=+kmod-input-core +kmod-input-evdev
+ KCONFIG:=CONFIG_HID CONFIG_HID_SUPPORT=y CONFIG_HIDRAW=y CONFIG_HID_BATTERY_STRENGTH=y
+ FILES:=$(LINUX_DIR)/drivers/hid/hid.ko
+ AUTOLOAD:=$(call AutoLoad,61,hid)
+endef
+
+define KernelPackage/hid/description
+ Kernel modules for HID devices
+endef
+
+$(eval $(call KernelPackage,hid))
+
+define KernelPackage/hid-generic
+ SUBMENU:=$(INPUT_MODULES_MENU)
+ TITLE:=Generic HID device support
+ DEPENDS:=+kmod-hid
+ KCONFIG:=CONFIG_HID_GENERIC
+ FILES:=$(LINUX_DIR)/drivers/hid/hid-generic.ko
+ AUTOLOAD:=$(call AutoProbe,hid-generic)
+endef
+
+define KernelPackage/hid/description
+ Kernel modules for generic HID device (e.g. keyboards and mice) support
+endef
+
+$(eval $(call KernelPackage,hid-generic))
+
+define KernelPackage/input-core
+ SUBMENU:=$(INPUT_MODULES_MENU)
+ TITLE:=Input device core
+ KCONFIG:=CONFIG_INPUT
+ FILES:=$(LINUX_DIR)/drivers/input/input-core.ko
+endef
+
+define KernelPackage/input-core/description
+ Kernel modules for support of input device
+endef
+
+$(eval $(call KernelPackage,input-core))
+
+
+define KernelPackage/input-evdev
+ SUBMENU:=$(INPUT_MODULES_MENU)
+ TITLE:=Input event device
+ DEPENDS:=+kmod-input-core
+ KCONFIG:=CONFIG_INPUT_EVDEV
+ FILES:=$(LINUX_DIR)/drivers/input/evdev.ko
+ AUTOLOAD:=$(call AutoLoad,60,evdev)
+endef
+
+define KernelPackage/input-evdev/description
+ Kernel modules for support of input device events
+endef
+
+$(eval $(call KernelPackage,input-evdev))
+
+
+define KernelPackage/input-gpio-keys
+ SUBMENU:=$(INPUT_MODULES_MENU)
+ TITLE:=GPIO key support
+ DEPENDS:= @GPIO_SUPPORT +kmod-input-core
+ KCONFIG:= \
+ CONFIG_KEYBOARD_GPIO \
+ CONFIG_INPUT_KEYBOARD=y
+ FILES:=$(LINUX_DIR)/drivers/input/keyboard/gpio_keys.ko
+ AUTOLOAD:=$(call AutoProbe,gpio_keys,1)
+endef
+
+define KernelPackage/input-gpio-keys/description
+ This driver implements support for buttons connected
+ to GPIO pins of various CPUs (and some other chips).
+
+ See also gpio-button-hotplug which is an alternative, lower overhead
+ implementation that generates uevents instead of kernel input events.
+endef
+
+$(eval $(call KernelPackage,input-gpio-keys))
+
+
+define KernelPackage/input-gpio-keys-polled
+ SUBMENU:=$(INPUT_MODULES_MENU)
+ TITLE:=Polled GPIO key support
+ DEPENDS:=@GPIO_SUPPORT +kmod-input-core \
+ +(LINUX_5_4||LINUX_5_10):kmod-input-polldev
+ KCONFIG:= \
+ CONFIG_KEYBOARD_GPIO_POLLED \
+ CONFIG_INPUT_KEYBOARD=y
+ FILES:=$(LINUX_DIR)/drivers/input/keyboard/gpio_keys_polled.ko
+ AUTOLOAD:=$(call AutoProbe,gpio_keys_polled,1)
+endef
+
+define KernelPackage/input-gpio-keys-polled/description
+ Kernel module for support polled GPIO keys input device
+
+ See also gpio-button-hotplug which is an alternative, lower overhead
+ implementation that generates uevents instead of kernel input events.
+endef
+
+$(eval $(call KernelPackage,input-gpio-keys-polled))
+
+
+define KernelPackage/input-gpio-encoder
+ SUBMENU:=$(INPUT_MODULES_MENU)
+ TITLE:=GPIO rotary encoder
+ DEPENDS:=@GPIO_SUPPORT +kmod-input-core
+ KCONFIG:=CONFIG_INPUT_GPIO_ROTARY_ENCODER
+ FILES:=$(LINUX_DIR)/drivers/input/misc/rotary_encoder.ko
+ AUTOLOAD:=$(call AutoProbe,rotary_encoder)
+endef
+
+define KernelPackage/input-gpio-encoder/description
+ Kernel module to use rotary encoders connected to GPIO pins
+endef
+
+$(eval $(call KernelPackage,input-gpio-encoder))
+
+
+define KernelPackage/input-joydev
+ SUBMENU:=$(INPUT_MODULES_MENU)
+ TITLE:=Joystick device support
+ DEPENDS:=+kmod-input-core
+ KCONFIG:=CONFIG_INPUT_JOYDEV
+ FILES:=$(LINUX_DIR)/drivers/input/joydev.ko
+ AUTOLOAD:=$(call AutoProbe,joydev)
+endef
+
+define KernelPackage/input-joydev/description
+ Kernel module for joystick support
+endef
+
+$(eval $(call KernelPackage,input-joydev))
+
+
+define KernelPackage/input-polldev
+ SUBMENU:=$(INPUT_MODULES_MENU)
+ TITLE:=Polled Input device support
+ DEPENDS:=+kmod-input-core @(LINUX_5_4||LINUX_5_10)
+ KCONFIG:=CONFIG_INPUT_POLLDEV
+ FILES:=$(LINUX_DIR)/drivers/input/input-polldev.ko
+endef
+
+define KernelPackage/input-polldev/description
+ Kernel module for support of polled input devices
+endef
+
+$(eval $(call KernelPackage,input-polldev))
+
+
+define KernelPackage/input-matrixkmap
+ SUBMENU:=$(INPUT_MODULES_MENU)
+ TITLE:=Input matrix devices support
+ DEPENDS:=+kmod-input-core
+ KCONFIG:=CONFIG_INPUT_MATRIXKMAP
+ FILES:=$(LINUX_DIR)/drivers/input/matrix-keymap.ko
+ AUTOLOAD:=$(call AutoProbe,matrix-keymap)
+endef
+
+define KernelPackage/input-matrixkmap/description
+ Kernel module support for input matrix devices
+endef
+
+$(eval $(call KernelPackage,input-matrixkmap))
+
+
+define KernelPackage/input-touchscreen-ads7846
+ SUBMENU:=$(INPUT_MODULES_MENU)
+ TITLE:=ADS7846/TSC2046/AD7873 and AD(S)7843 based touchscreens
+ DEPENDS:=+kmod-hwmon-core +kmod-input-core +kmod-spi-bitbang
+ KCONFIG:= \
+ CONFIG_INPUT_TOUCHSCREEN=y \
+ CONFIG_TOUCHSCREEN_PROPERTIES=y@lt5.13 \
+ CONFIG_TOUCHSCREEN_ADS7846
+ FILES:=$(LINUX_DIR)/drivers/input/touchscreen/ads7846.ko \
+ $(LINUX_DIR)/drivers/input/touchscreen/of_touchscreen.ko@lt5.13
+ AUTOLOAD:=$(call AutoProbe,ads7846)
+endef
+
+define KernelPackage/input-touchscreen-ads7846/description
+ Kernel module for ADS7846/TSC2046/AD7873 and AD(S)7843 based touchscreens
+endef
+
+$(eval $(call KernelPackage,input-touchscreen-ads7846))
+
+
+define KernelPackage/input-touchscreen-edt-ft5x06
+ SUBMENU:=$(INPUT_MODULES_MENU)
+ TITLE:=EDT FT5x06 and Focaltech FT6236 based touchscreens
+ DEPENDS:=+kmod-i2c-core +kmod-input-core +LINUX_6_6:kmod-regmap-i2c
+ KCONFIG:= \
+ CONFIG_INPUT_TOUCHSCREEN=y \
+ CONFIG_TOUCHSCREEN_PROPERTIES=y@lt5.13 \
+ CONFIG_TOUCHSCREEN_EDT_FT5X06
+ FILES:=$(LINUX_DIR)/drivers/input/touchscreen/edt-ft5x06.ko \
+ $(LINUX_DIR)/drivers/input/touchscreen/of_touchscreen.ko@lt5.13
+ AUTOLOAD:=$(call AutoProbe,edt-ft5x06)
+endef
+
+define KernelPackage/input-touchscreen-edt-ft5x06/description
+ Kernel module for EDT FT5206, FT5306, FT5406, FT5506, Evervision FT5726 \
+ and Focaltech FT6236 based touchscreens
+endef
+
+$(eval $(call KernelPackage,input-touchscreen-edt-ft5x06))
+
+
+define KernelPackage/keyboard-imx
+ SUBMENU:=$(INPUT_MODULES_MENU)
+ TITLE:=IMX keypad support
+ DEPENDS:=@(TARGET_mxs||TARGET_imx) +kmod-input-matrixkmap
+ KCONFIG:= \
+ CONFIG_KEYBOARD_IMX \
+ CONFIG_INPUT_KEYBOARD=y
+ FILES:=$(LINUX_DIR)/drivers/input/keyboard/imx_keypad.ko
+ AUTOLOAD:=$(call AutoProbe,imx_keypad)
+endef
+
+define KernelPackage/keyboard-imx/description
+ Enable support for IMX keypad port.
+endef
+
+$(eval $(call KernelPackage,keyboard-imx))
+
+
+define KernelPackage/input-uinput
+ SUBMENU:=$(INPUT_MODULES_MENU)
+ TITLE:=user input module
+ DEPENDS:=+kmod-input-core
+ KCONFIG:= \
+ CONFIG_INPUT_MISC=y \
+ CONFIG_INPUT_UINPUT
+ FILES:=$(LINUX_DIR)/drivers/input/misc/uinput.ko
+ AUTOLOAD:=$(call AutoProbe,uinput)
+endef
+
+define KernelPackage/input-uinput/description
+ user input modules needed for bluez
+endef
+
+$(eval $(call KernelPackage,input-uinput))
diff --git a/package/kernel/linux/modules/leds.mk b/package/kernel/linux/modules/leds.mk
new file mode 100644
index 0000000..f472b97
--- /dev/null
+++ b/package/kernel/linux/modules/leds.mk
@@ -0,0 +1,299 @@
+#
+# Copyright (C) 2006-2011 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+LEDS_MENU:=LED modules
+
+define KernelPackage/leds-gpio
+ SUBMENU:=$(LEDS_MENU)
+ TITLE:=GPIO LED support
+ DEPENDS:= @GPIO_SUPPORT
+ KCONFIG:=CONFIG_LEDS_GPIO
+ FILES:=$(LINUX_DIR)/drivers/leds/leds-gpio.ko
+ AUTOLOAD:=$(call AutoLoad,60,leds-gpio,1)
+endef
+
+define KernelPackage/leds-gpio/description
+ Kernel module for LEDs on GPIO lines
+endef
+
+$(eval $(call KernelPackage,leds-gpio))
+
+LED_TRIGGER_DIR=$(LINUX_DIR)/drivers/leds/trigger
+
+define KernelPackage/ledtrig-activity
+ SUBMENU:=$(LEDS_MENU)
+ TITLE:=LED Activity Trigger
+ KCONFIG:=CONFIG_LEDS_TRIGGER_ACTIVITY
+ FILES:=$(LED_TRIGGER_DIR)/ledtrig-activity.ko
+ AUTOLOAD:=$(call AutoLoad,50,ledtrig-activity)
+endef
+
+define KernelPackage/ledtrig-activity/description
+ Kernel module that allows LEDs to blink based on system load
+endef
+
+$(eval $(call KernelPackage,ledtrig-activity))
+
+define KernelPackage/ledtrig-audio
+ SUBMENU:=$(LEDS_MENU)
+ TITLE:=LED Audio Mute Trigger
+ KCONFIG:=CONFIG_LEDS_TRIGGER_AUDIO
+ FILES:=$(LED_TRIGGER_DIR)/ledtrig-audio.ko
+ AUTOLOAD:=$(call AutoLoad,50,ledtrig-audio)
+endef
+
+define KernelPackage/ledtrig-audio/description
+ Kernel module that allows LEDs to be controlled by audio drivers
+ to follow audio mute and mic-mute changes.
+endef
+
+$(eval $(call KernelPackage,ledtrig-audio))
+
+define KernelPackage/ledtrig-gpio
+ SUBMENU:=$(LEDS_MENU)
+ TITLE:=LED GPIO Trigger
+ KCONFIG:=CONFIG_LEDS_TRIGGER_GPIO
+ FILES:=$(LED_TRIGGER_DIR)/ledtrig-gpio.ko
+ AUTOLOAD:=$(call AutoLoad,50,ledtrig-gpio)
+endef
+
+define KernelPackage/ledtrig-gpio/description
+ Kernel module that allows LEDs to be controlled by gpio events
+endef
+
+$(eval $(call KernelPackage,ledtrig-gpio))
+
+
+define KernelPackage/ledtrig-transient
+ SUBMENU:=$(LEDS_MENU)
+ TITLE:=LED Transient Trigger
+ KCONFIG:=CONFIG_LEDS_TRIGGER_TRANSIENT
+ FILES:=$(LED_TRIGGER_DIR)/ledtrig-transient.ko
+ AUTOLOAD:=$(call AutoLoad,50,ledtrig-transient,1)
+endef
+
+define KernelPackage/ledtrig-transient/description
+ Kernel module that allows LEDs one time activation of a transient state.
+endef
+
+$(eval $(call KernelPackage,ledtrig-transient))
+
+
+define KernelPackage/ledtrig-oneshot
+ SUBMENU:=$(LEDS_MENU)
+ TITLE:=LED One-Shot Trigger
+ KCONFIG:=CONFIG_LEDS_TRIGGER_ONESHOT
+ FILES:=$(LED_TRIGGER_DIR)/ledtrig-oneshot.ko
+ AUTOLOAD:=$(call AutoLoad,50,ledtrig-oneshot)
+endef
+
+define KernelPackage/ledtrig-oneshot/description
+ Kernel module that allows LEDs to be triggered by sporadic events in
+ one-shot pulses
+endef
+
+$(eval $(call KernelPackage,ledtrig-oneshot))
+
+
+define KernelPackage/ledtrig-pattern
+ SUBMENU:=$(LEDS_MENU)
+ TITLE:=LED Pattern Trigger
+ KCONFIG:=CONFIG_LEDS_TRIGGER_PATTERN
+ FILES:=$(LED_TRIGGER_DIR)/ledtrig-pattern.ko
+ AUTOLOAD:=$(call AutoLoad,50,ledtrig-pattern)
+endef
+
+define KernelPackage/ledtrig-pattern/description
+ This allows LEDs to be controlled by a software or hardware pattern
+ which is a series of tuples, of brightness and duration (ms).
+endef
+
+$(eval $(call KernelPackage,ledtrig-pattern))
+
+
+define KernelPackage/ledtrig-tty
+ SUBMENU:=$(LEDS_MENU)
+ TITLE:=LED Trigger for TTY devices
+ DEPENDS:=@(LINUX_5_15||LINUX_6_1||LINUX_6_6)
+ KCONFIG:=CONFIG_LEDS_TRIGGER_TTY
+ FILES:=$(LED_TRIGGER_DIR)/ledtrig-tty.ko
+ AUTOLOAD:=$(call AutoLoad,50,ledtrig-tty)
+endef
+
+define KernelPackage/ledtrig-tty/description
+ This allows LEDs to be controlled by activity on ttys which includes
+ serial devices like '/dev/ttyS0'.
+endef
+
+$(eval $(call KernelPackage,ledtrig-tty))
+
+
+define KernelPackage/leds-apu
+ SUBMENU:=$(LEDS_MENU)
+ TITLE:=PC Engines APU1 LED support
+ DEPENDS:= @GPIO_SUPPORT @TARGET_x86
+ KCONFIG:=CONFIG_LEDS_APU
+ FILES:=$(LINUX_DIR)/drivers/leds/leds-apu.ko
+ AUTOLOAD:=$(call AutoLoad,60,leds-apu,1)
+endef
+
+define KernelPackage/leds-apu/description
+ Driver for the PC Engines APU1 LEDs.
+endef
+
+$(eval $(call KernelPackage,leds-apu))
+
+
+define KernelPackage/leds-mlxcpld
+ SUBMENU:=$(LEDS_MENU)
+ TITLE:=LED support for the Mellanox boards
+ DEPENDS:=@TARGET_x86
+ KCONFIG:=CONFIG_LEDS_MLXCPLD
+ FILES:=$(LINUX_DIR)/drivers/leds/leds-mlxcpld.ko
+ AUTOLOAD:=$(call AutoProbe,leds-mlxcpld)
+endef
+
+define KernelPackage/leds-mlxcpld/description
+ This option enables support for the LEDs on the Mellanox
+ boards.
+endef
+
+$(eval $(call KernelPackage,leds-mlxcpld))
+
+
+define KernelPackage/leds-pca955x
+ SUBMENU:=$(LEDS_MENU)
+ TITLE:=LED driver for PCA955x I2C chips
+ DEPENDS:=@GPIO_SUPPORT +kmod-i2c-core
+ KCONFIG:=CONFIG_LEDS_PCA955X \
+ CONFIG_LEDS_PCA955X_GPIO=y
+ FILES:=$(LINUX_DIR)/drivers/leds/leds-pca955x.ko
+ AUTOLOAD:=$(call AutoLoad,60,leds-pca955x,1)
+endef
+
+define KernelPackage/leds-pca955x/description
+ This option enables support for LEDs connected to PCA955x
+ LED driver chips accessed via the I2C bus. Supported
+ devices include PCA9550, PCA9551, PCA9552, and PCA9553.
+endef
+
+$(eval $(call KernelPackage,leds-pca955x))
+
+
+define KernelPackage/leds-pca963x
+ SUBMENU:=$(LEDS_MENU)
+ TITLE:=PCA963x LED support
+ DEPENDS:=+kmod-i2c-core
+ KCONFIG:=CONFIG_LEDS_PCA963X
+ FILES:=$(LINUX_DIR)/drivers/leds/leds-pca963x.ko
+ AUTOLOAD:=$(call AutoLoad,60,leds-pca963x,1)
+endef
+
+define KernelPackage/leds-pca963x/description
+ Driver for the NXP PCA963x I2C LED controllers.
+endef
+
+$(eval $(call KernelPackage,leds-pca963x))
+
+
+define KernelPackage/leds-pwm
+ SUBMENU:=$(LEDS_MENU)
+ TITLE:=PWM driven LED Support
+ KCONFIG:=CONFIG_LEDS_PWM
+ DEPENDS:= @PWM_SUPPORT
+ FILES:=$(LINUX_DIR)/drivers/leds/leds-pwm.ko
+ AUTOLOAD:=$(call AutoLoad,60,leds-pwm,1)
+endef
+
+define KernelPackage/leds-pwm/description
+ This option enables support for pwm driven LEDs
+endef
+
+$(eval $(call KernelPackage,leds-pwm))
+
+
+define KernelPackage/leds-tlc591xx
+ SUBMENU:=$(LEDS_MENU)
+ TITLE:=LED driver for TLC59108 and TLC59116 controllers
+ DEPENDS:=+kmod-i2c-core +kmod-regmap-i2c
+ KCONFIG:=CONFIG_LEDS_TLC591XX
+ FILES:=$(LINUX_DIR)/drivers/leds/leds-tlc591xx.ko
+ AUTOLOAD:=$(call AutoLoad,60,leds-tlc591xx,1)
+endef
+
+define KernelPackage/leds-tlc591xx/description
+ This option enables support for Texas Instruments TLC59108
+ and TLC59116 LED controllers.
+endef
+
+$(eval $(call KernelPackage,leds-tlc591xx))
+
+
+define KernelPackage/leds-uleds
+ SUBMENU:=$(LEDS_MENU)
+ TITLE:=Userspace LEDs
+ KCONFIG:=CONFIG_LEDS_USER
+ FILES:=$(LINUX_DIR)/drivers/leds/uleds.ko
+ AUTOLOAD:=$(call AutoLoad,60,uleds,1)
+endef
+
+define KernelPackage/leds-uleds/description
+ This option enables support for userspace LEDs.
+endef
+
+$(eval $(call KernelPackage,leds-uleds))
+
+
+define KernelPackage/input-leds
+ SUBMENU:=$(LEDS_MENU)
+ TITLE:=Input device LED support
+ DEPENDS:=+kmod-input-core
+ KCONFIG:=CONFIG_INPUT_LEDS
+ FILES:=$(LINUX_DIR)/drivers/input/input-leds.ko
+ AUTOLOAD:=$(call AutoLoad,50,input-leds,1)
+endef
+
+define KernelPackage/input-leds/description
+ Provides support for LEDs on input devices- for example,
+ keyboard num/caps/scroll lock.
+endef
+
+$(eval $(call KernelPackage,input-leds))
+
+
+define KernelPackage/leds-lp55xx-common
+ SUBMENU:=$(LEDS_MENU)
+ TITLE:=LED common driver for LP5521/LP5523/LP55231/LP5562 controllers
+ DEPENDS:=+kmod-i2c-core
+ KCONFIG:=CONFIG_LEDS_LP55XX_COMMON
+ FILES:=$(LINUX_DIR)/drivers/leds/leds-lp55xx-common.ko
+ AUTOLOAD:=$(call AutoLoad,60,leds-lp55xx-common,1)
+endef
+
+define KernelPackage/leds-lp55xx-common/description
+ This option enables support for Texas Instruments
+ LP5521/LP5523/LP55231/LP5562 common driver.
+endef
+
+$(eval $(call KernelPackage,leds-lp55xx-common))
+
+
+define KernelPackage/leds-lp5562
+ SUBMENU:=$(LEDS_MENU)
+ TITLE:=LED driver for LP5562 controllers
+ DEPENDS:=+kmod-i2c-core +kmod-leds-lp55xx-common
+ KCONFIG:=CONFIG_LEDS_LP5562
+ FILES:=$(LINUX_DIR)/drivers/leds/leds-lp5562.ko
+ AUTOLOAD:=$(call AutoLoad,60,leds-lp5562,1)
+endef
+
+define KernelPackage/leds-lp5562/description
+ This option enables support for Texas Instruments LP5562
+ LED controllers.
+endef
+
+$(eval $(call KernelPackage,leds-lp5562))
diff --git a/package/kernel/linux/modules/lib.mk b/package/kernel/linux/modules/lib.mk
new file mode 100644
index 0000000..ea4f034
--- /dev/null
+++ b/package/kernel/linux/modules/lib.mk
@@ -0,0 +1,382 @@
+#
+# Copyright (C) 2011 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+LIB_MENU:=Libraries
+
+define KernelPackage/lib-crc-ccitt
+ SUBMENU:=$(LIB_MENU)
+ TITLE:=CRC-CCITT support
+ KCONFIG:=CONFIG_CRC_CCITT
+ FILES:=$(LINUX_DIR)/lib/crc-ccitt.ko
+ AUTOLOAD:=$(call AutoProbe,crc-ccitt)
+endef
+
+define KernelPackage/lib-crc-ccitt/description
+ Kernel module for CRC-CCITT support
+endef
+
+$(eval $(call KernelPackage,lib-crc-ccitt))
+
+
+define KernelPackage/lib-crc-itu-t
+ SUBMENU:=$(LIB_MENU)
+ TITLE:=CRC ITU-T V.41 support
+ KCONFIG:=CONFIG_CRC_ITU_T
+ FILES:=$(LINUX_DIR)/lib/crc-itu-t.ko
+ AUTOLOAD:=$(call AutoProbe,crc-itu-t)
+endef
+
+define KernelPackage/lib-crc-itu-t/description
+ Kernel module for CRC ITU-T V.41 support
+endef
+
+$(eval $(call KernelPackage,lib-crc-itu-t))
+
+
+define KernelPackage/lib-crc7
+ SUBMENU:=$(LIB_MENU)
+ TITLE:=CRC7 support
+ KCONFIG:=CONFIG_CRC7
+ FILES:=$(LINUX_DIR)/lib/crc7.ko
+ AUTOLOAD:=$(call AutoProbe,crc7)
+endef
+
+define KernelPackage/lib-crc7/description
+ Kernel module for CRC7 support
+endef
+
+$(eval $(call KernelPackage,lib-crc7))
+
+
+define KernelPackage/lib-crc8
+ SUBMENU:=$(LIB_MENU)
+ TITLE:=CRC8 support
+ KCONFIG:=CONFIG_CRC8
+ FILES:=$(LINUX_DIR)/lib/crc8.ko
+ AUTOLOAD:=$(call AutoProbe,crc8)
+endef
+
+define KernelPackage/lib-crc8/description
+ Kernel module for CRC8 support
+endef
+
+$(eval $(call KernelPackage,lib-crc8))
+
+
+define KernelPackage/lib-crc16
+ SUBMENU:=$(LIB_MENU)
+ TITLE:=CRC16 support
+ KCONFIG:=CONFIG_CRC16
+ FILES:=$(LINUX_DIR)/lib/crc16.ko
+ AUTOLOAD:=$(call AutoLoad,20,crc16,1)
+endef
+
+define KernelPackage/lib-crc16/description
+ Kernel module for CRC16 support
+endef
+
+$(eval $(call KernelPackage,lib-crc16))
+
+
+define KernelPackage/lib-crc32c
+ SUBMENU:=$(LIB_MENU)
+ TITLE:=CRC32 support
+ KCONFIG:=CONFIG_LIBCRC32C
+ DEPENDS:=+kmod-crypto-crc32c
+ FILES:=$(LINUX_DIR)/lib/libcrc32c.ko
+ AUTOLOAD:=$(call AutoProbe,libcrc32c)
+endef
+
+define KernelPackage/lib-crc32c/description
+ Kernel module for CRC32 support
+endef
+
+$(eval $(call KernelPackage,lib-crc32c))
+
+
+define KernelPackage/lib-lzo
+ SUBMENU:=$(LIB_MENU)
+ TITLE:=LZO support
+ DEPENDS:=+kmod-crypto-acompress
+ KCONFIG:= \
+ CONFIG_CRYPTO_LZO \
+ CONFIG_LZO_COMPRESS \
+ CONFIG_LZO_DECOMPRESS
+ HIDDEN:=1
+ FILES:= \
+ $(LINUX_DIR)/crypto/lzo.ko \
+ $(LINUX_DIR)/crypto/lzo-rle.ko \
+ $(LINUX_DIR)/lib/lzo/lzo_compress.ko \
+ $(LINUX_DIR)/lib/lzo/lzo_decompress.ko
+ AUTOLOAD:=$(call AutoProbe,lzo lzo-rle lzo_compress lzo_decompress)
+endef
+
+define KernelPackage/lib-lzo/description
+ Kernel module for LZO compression/decompression support
+endef
+
+$(eval $(call KernelPackage,lib-lzo))
+
+
+define KernelPackage/lib-xxhash
+ SUBMENU:=$(LIB_MENU)
+ TITLE:=xxhash support
+ HIDDEN:=1
+ KCONFIG:=CONFIG_XXHASH
+ FILES:=$(LINUX_DIR)/lib/xxhash.ko
+endef
+
+$(eval $(call KernelPackage,lib-xxhash))
+
+
+define KernelPackage/lib-zstd
+ SUBMENU:=$(LIB_MENU)
+ TITLE:=ZSTD support
+ DEPENDS:=+kmod-crypto-acompress +kmod-lib-xxhash
+ KCONFIG:= \
+ CONFIG_CRYPTO_ZSTD \
+ CONFIG_ZSTD_COMPRESS \
+ CONFIG_ZSTD_DECOMPRESS
+ FILES:= \
+ $(LINUX_DIR)/crypto/zstd.ko \
+ $(LINUX_DIR)/lib/zstd/zstd_common.ko@ge6.1 \
+ $(LINUX_DIR)/lib/zstd/zstd_compress.ko \
+ $(LINUX_DIR)/lib/zstd/zstd_decompress.ko
+ AUTOLOAD:=$(call AutoProbe,zstd zstd_compress zstd_decompress)
+endef
+
+define KernelPackage/lib-zstd/description
+ Kernel module for ZSTD compression/decompression support
+endef
+
+$(eval $(call KernelPackage,lib-zstd))
+
+
+define KernelPackage/lib-lz4-decompress
+ SUBMENU:=$(LIB_MENU)
+ TITLE:=LZ4 decompress
+ HIDDEN:=1
+ KCONFIG:=CONFIG_LZ4_DECOMPRESS
+ FILES:=$(LINUX_DIR)/lib/lz4/lz4_decompress.ko
+endef
+
+$(eval $(call KernelPackage,lib-lz4-decompress))
+
+
+define KernelPackage/lib-lz4
+ SUBMENU:=$(LIB_MENU)
+ TITLE:=LZ4 support
+ DEPENDS:=+kmod-crypto-acompress +kmod-lib-lz4-decompress
+ KCONFIG:= \
+ CONFIG_CRYPTO_LZ4 \
+ CONFIG_LZ4_COMPRESS
+ FILES:= \
+ $(LINUX_DIR)/crypto/lz4.ko \
+ $(LINUX_DIR)/lib/lz4/lz4_compress.ko
+ AUTOLOAD:=$(call AutoProbe,lz4 lz4_compress)
+endef
+
+define KernelPackage/lib-lz4/description
+ Kernel module for LZ4 compression/decompression support
+endef
+
+$(eval $(call KernelPackage,lib-lz4))
+
+
+define KernelPackage/lib-lz4hc
+ SUBMENU:=$(LIB_MENU)
+ TITLE:=LZ4HC support
+ DEPENDS:=+kmod-crypto-acompress +kmod-lib-lz4-decompress
+ KCONFIG:= \
+ CONFIG_CRYPTO_LZ4HC \
+ CONFIG_LZ4HC_COMPRESS
+ FILES:= \
+ $(LINUX_DIR)/crypto/lz4hc.ko \
+ $(LINUX_DIR)/lib/lz4/lz4hc_compress.ko
+ AUTOLOAD:=$(call AutoProbe,lz4hc lz4hc_compress)
+endef
+
+define KernelPackage/lib-lz4hc/description
+ Kernel module for LZ4HC compression/decompression support
+endef
+
+$(eval $(call KernelPackage,lib-lz4hc))
+
+
+define KernelPackage/lib-842
+ SUBMENU:=$(LIB_MENU)
+ TITLE:=842 support
+ DEPENDS:=+kmod-crypto-acompress +kmod-crypto-crc32
+ KCONFIG:= \
+ CONFIG_CRYPTO_842 \
+ CONFIG_842_COMPRESS \
+ CONFIG_842_DECOMPRESS
+ FILES:= \
+ $(LINUX_DIR)/crypto/842.ko \
+ $(LINUX_DIR)/lib/842/842_compress.ko \
+ $(LINUX_DIR)/lib/842/842_decompress.ko
+ AUTOLOAD:=$(call AutoProbe,842 842_compress 842_decompress)
+endef
+
+define KernelPackage/lib-842/description
+ Kernel module for 842 compression/decompression support
+endef
+
+$(eval $(call KernelPackage,lib-842))
+
+
+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 AutoProbe,raid6_pq)
+endef
+
+define KernelPackage/lib-raid6/description
+ Kernel module for RAID6 algorithms
+endef
+
+$(eval $(call KernelPackage,lib-raid6))
+
+
+define KernelPackage/lib-xor
+ SUBMENU:=$(LIB_MENU)
+ TITLE:=XOR blocks algorithm support
+ HIDDEN:=1
+ KCONFIG:=CONFIG_XOR_BLOCKS
+ifneq ($(wildcard $(LINUX_DIR)/arch/$(LINUX_KARCH)/lib/xor-neon.ko),)
+ FILES:= \
+ $(LINUX_DIR)/crypto/xor.ko \
+ $(LINUX_DIR)/arch/$(LINUX_KARCH)/lib/xor-neon.ko
+ AUTOLOAD:=$(call AutoProbe,xor-neon xor)
+else
+ FILES:=$(LINUX_DIR)/crypto/xor.ko
+ AUTOLOAD:=$(call AutoProbe,xor)
+endif
+endef
+
+define KernelPackage/lib-xor/description
+ Kernel module for XOR blocks algorithms
+endef
+
+$(eval $(call KernelPackage,lib-xor))
+
+
+define KernelPackage/lib-textsearch
+SUBMENU:=$(LIB_MENU)
+ TITLE:=Textsearch support
+ KCONFIG:= \
+ CONFIG_TEXTSEARCH=y \
+ CONFIG_TEXTSEARCH_KMP \
+ CONFIG_TEXTSEARCH_BM \
+ CONFIG_TEXTSEARCH_FSM
+ FILES:= \
+ $(LINUX_DIR)/lib/ts_kmp.ko \
+ $(LINUX_DIR)/lib/ts_bm.ko \
+ $(LINUX_DIR)/lib/ts_fsm.ko
+ AUTOLOAD:=$(call AutoProbe,ts_kmp ts_bm ts_fsm)
+endef
+
+$(eval $(call KernelPackage,lib-textsearch))
+
+
+define KernelPackage/lib-zlib-inflate
+ SUBMENU:=$(LIB_MENU)
+ TITLE:=Zlib support
+ HIDDEN:=1
+ KCONFIG:=CONFIG_ZLIB_INFLATE
+ FILES:=$(LINUX_DIR)/lib/zlib_inflate/zlib_inflate.ko
+ AUTOLOAD:=$(call AutoProbe,zlib_inflate)
+endef
+
+$(eval $(call KernelPackage,lib-zlib-inflate))
+
+
+define KernelPackage/lib-zlib-deflate
+ SUBMENU:=$(LIB_MENU)
+ TITLE:=Zlib support
+ HIDDEN:=1
+ KCONFIG:=CONFIG_ZLIB_DEFLATE
+ FILES:=$(LINUX_DIR)/lib/zlib_deflate/zlib_deflate.ko
+ AUTOLOAD:=$(call AutoProbe,zlib_deflate)
+endef
+
+$(eval $(call KernelPackage,lib-zlib-deflate))
+
+
+define KernelPackage/lib-cordic
+ SUBMENU:=$(LIB_MENU)
+ TITLE:=Cordic function support
+ KCONFIG:=CONFIG_CORDIC
+ FILES:=$(LINUX_DIR)/lib/math/cordic.ko
+ AUTOLOAD:=$(call AutoProbe,cordic)
+endef
+
+define KernelPackage/lib-cordic/description
+ Kernel module for Cordic function support
+endef
+
+$(eval $(call KernelPackage,lib-cordic))
+
+
+define KernelPackage/asn1-decoder
+ SUBMENU:=$(LIB_MENU)
+ TITLE:=Simple ASN1 decoder
+ KCONFIG:= CONFIG_ASN1
+ HIDDEN:=1
+ FILES:=$(LINUX_DIR)/lib/asn1_decoder.ko
+endef
+
+$(eval $(call KernelPackage,asn1-decoder))
+
+define KernelPackage/asn1-encoder
+ SUBMENU:=$(LIB_MENU)
+ TITLE:=Simple ASN1 encoder
+ KCONFIG:= CONFIG_ASN1_ENCODER
+ HIDDEN:=1
+ FILES:=$(LINUX_DIR)/lib/asn1_encoder.ko
+endef
+
+$(eval $(call KernelPackage,asn1-encoder))
+
+define KernelPackage/oid-registry
+ SUBMENU:=$(LIB_MENU)
+ TITLE:=Object identifier registry
+ KCONFIG:= CONFIG_OID_REGISTRY
+ FILES:=$(LINUX_DIR)/lib/oid_registry.ko
+ AUTOLOAD:=$(call AutoLoad,31,oid_registry)
+endef
+
+$(eval $(call KernelPackage,oid-registry))
+
+
+define KernelPackage/lib-objagg
+ SUBMENU:=$(LIB_MENU)
+ TITLE:=objagg support
+ FILES:=$(LINUX_DIR)/lib/objagg.ko
+ KCONFIG:= \
+ CONFIG_OBJAGG \
+ CONFIG_TEST_OBJAGG=n
+ AUTOLOAD:=$(call AutoProbe,objagg)
+endef
+
+$(eval $(call KernelPackage,lib-objagg))
+
+
+define KernelPackage/lib-parman
+ SUBMENU:=$(LIB_MENU)
+ TITLE:=parman support
+ FILES:=$(LINUX_DIR)/lib/parman.ko
+ KCONFIG:= \
+ CONFIG_PARMAN \
+ CONFIG_TEST_PARMAN=n
+ AUTOLOAD:=$(call AutoProbe,parman)
+endef
+
+$(eval $(call KernelPackage,lib-parman))
diff --git a/package/kernel/linux/modules/mrvl_loopback.mk b/package/kernel/linux/modules/mrvl_loopback.mk
new file mode 100644
index 0000000..104ff38
--- /dev/null
+++ b/package/kernel/linux/modules/mrvl_loopback.mk
@@ -0,0 +1,24 @@
+#
+# Copyright (C) 2006-2014 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+TELEPHONY_MENU:=Marvell telephony Support
+
+define KernelPackage/mrvl-loopback
+ MARVELL_LOOPBACK_DIR:=$(LINUX_DIR)/drivers/marvell/mloopback
+ SUBMENU:=Network Devices
+ TITLE:= Marvell loopback device
+ DEPENDS:=@TARGET_mmp
+ KCONFIG:=CONFIG_MRVL_LOOPBACK
+ FILES:= \
+ $(MARVELL_LOOPBACK_DIR)/mloopback.ko
+endef
+
+define KernelPackage/mrvl-loopback/description
+ Marvell Loopback network device
+endef
+
+$(eval $(call KernelPackage,mrvl-loopback))
diff --git a/package/kernel/linux/modules/multiplexer.mk b/package/kernel/linux/modules/multiplexer.mk
new file mode 100644
index 0000000..135fc62
--- /dev/null
+++ b/package/kernel/linux/modules/multiplexer.mk
@@ -0,0 +1,34 @@
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+MENU_TITLE:=Multiplexer Support
+
+define KernelPackage/mux-core
+ SUBMENU:=$(MENU_TITLE)
+ TITLE:=Multiplexer Support
+ KCONFIG:=CONFIG_MULTIPLEXER
+ FILES:=$(LINUX_DIR)/drivers/mux/mux-core.ko
+ AUTOLOAD:=$(call AutoLoad,25,mux-core,1)
+endef
+
+define KernelPackage/mux-core/description
+ Kernel module for multiplexer support
+endef
+
+$(eval $(call KernelPackage,mux-core))
+
+define KernelPackage/mux-gpio
+ SUBMENU:=$(MENU_TITLE)
+ TITLE:=GPIO-controlled Multiplexer controller
+ KCONFIG:=CONFIG_MUX_GPIO
+ DEPENDS:=@GPIO_SUPPORT kmod-mux-core
+ FILES:=$(LINUX_DIR)/drivers/mux/mux-gpio.ko
+ AUTOLOAD:=$(call AutoLoad,25,mux-gpio,1)
+endef
+
+define KernelPackage/mux-gpio/description
+ Kernel modules for GPIO-controlled Multiplexer controller
+endef
+
+$(eval $(call KernelPackage,mux-gpio))
diff --git a/package/kernel/linux/modules/netdevices.mk b/package/kernel/linux/modules/netdevices.mk
new file mode 100644
index 0000000..34f9322
--- /dev/null
+++ b/package/kernel/linux/modules/netdevices.mk
@@ -0,0 +1,1946 @@
+#
+# Copyright (C) 2006-2011 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+NETWORK_DEVICES_MENU:=Network Devices
+
+define KernelPackage/sis190
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=SiS 190 Fast/Gigabit Ethernet support
+ DEPENDS:=@PCI_SUPPORT +kmod-mii
+ KCONFIG:=CONFIG_SIS190
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/sis/sis190.ko
+ AUTOLOAD:=$(call AutoProbe,sis190)
+endef
+
+$(eval $(call KernelPackage,sis190))
+
+
+define KernelPackage/skge
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=SysKonnect Yukon support
+ DEPENDS:=@PCI_SUPPORT
+ KCONFIG:=CONFIG_SKGE \
+ CONFIG_SKGE_DEBUG=n \
+ CONFIG_SKGE_GENESIS=n
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/marvell/skge.ko
+ AUTOLOAD:=$(call AutoProbe,skge)
+endef
+
+$(eval $(call KernelPackage,skge))
+
+
+define KernelPackage/alx
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Qualcomm Atheros AR816x/AR817x PCI-E Ethernet Network Driver
+ DEPENDS:=@PCI_SUPPORT +kmod-mdio
+ KCONFIG:=CONFIG_ALX
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/atheros/alx/alx.ko
+ AUTOLOAD:=$(call AutoProbe,alx)
+endef
+
+$(eval $(call KernelPackage,alx))
+
+
+define KernelPackage/atl2
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Atheros L2 Fast Ethernet support
+ DEPENDS:=@PCI_SUPPORT
+ KCONFIG:=CONFIG_ATL2
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/atheros/atlx/atl2.ko
+ AUTOLOAD:=$(call AutoProbe,atl2)
+endef
+
+$(eval $(call KernelPackage,atl2))
+
+
+define KernelPackage/atl1
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Atheros L1 Gigabit Ethernet support
+ DEPENDS:=@PCI_SUPPORT +kmod-mii
+ KCONFIG:=CONFIG_ATL1
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/atheros/atlx/atl1.ko
+ AUTOLOAD:=$(call AutoProbe,atl1)
+endef
+
+$(eval $(call KernelPackage,atl1))
+
+
+define KernelPackage/atl1c
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Atheros L1C
+ DEPENDS:=@PCI_SUPPORT
+ KCONFIG:=CONFIG_ATL1C
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/atheros/atl1c/atl1c.ko
+ AUTOLOAD:=$(call AutoProbe,atl1c)
+endef
+
+$(eval $(call KernelPackage,atl1c))
+
+
+define KernelPackage/atl1e
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Atheros L1E
+ DEPENDS:=@PCI_SUPPORT
+ KCONFIG:=CONFIG_ATL1E
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/atheros/atl1e/atl1e.ko
+ AUTOLOAD:=$(call AutoProbe,atl1e)
+endef
+
+$(eval $(call KernelPackage,atl1e))
+
+
+define KernelPackage/libphy
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=PHY library
+ KCONFIG:=CONFIG_PHYLIB \
+ CONFIG_PHYLIB_LEDS=y
+ FILES:=$(LINUX_DIR)/drivers/net/phy/libphy.ko
+ AUTOLOAD:=$(call AutoLoad,15,libphy,1)
+endef
+
+define KernelPackage/libphy/description
+ PHY library
+endef
+
+$(eval $(call KernelPackage,libphy))
+
+
+define KernelPackage/phylink
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Model for MAC to optional PHY connection
+ DEPENDS:=+kmod-libphy
+ KCONFIG:=CONFIG_PHYLINK
+ FILES:=$(LINUX_DIR)/drivers/net/phy/phylink.ko
+ AUTOLOAD:=$(call AutoLoad,15,phylink,1)
+endef
+
+define KernelPackage/phylink/description
+ Model for MAC to optional PHY connection
+endef
+
+$(eval $(call KernelPackage,phylink))
+
+
+define KernelPackage/mii
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=MII library
+ KCONFIG:=CONFIG_MII
+ FILES:=$(LINUX_DIR)/drivers/net/mii.ko
+ AUTOLOAD:=$(call AutoLoad,15,mii,1)
+endef
+
+define KernelPackage/mii/description
+ MII library
+endef
+
+$(eval $(call KernelPackage,mii))
+
+
+define KernelPackage/mdio-devres
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Supports MDIO device registration
+ DEPENDS:=@!LINUX_5_4 +kmod-libphy +(TARGET_armvirt||TARGET_bcm27xx_bcm2708||TARGET_loongarch64||TARGET_malta||TARGET_tegra):kmod-of-mdio
+ KCONFIG:=CONFIG_MDIO_DEVRES
+ HIDDEN:=1
+ FILES:=$(LINUX_DIR)/drivers/net/phy/mdio_devres.ko
+ AUTOLOAD:=$(call AutoProbe,mdio-devres)
+endef
+
+define KernelPackage/mdio-devres/description
+ Supports MDIO device registration
+endef
+
+$(eval $(call KernelPackage,mdio-devres))
+
+
+define KernelPackage/mdio-gpio
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:= Supports GPIO lib-based MDIO busses
+ DEPENDS:=+kmod-libphy @GPIO_SUPPORT +(TARGET_armvirt||TARGET_bcm27xx_bcm2708||TARGET_loongarch64||TARGET_malta||TARGET_tegra):kmod-of-mdio
+ KCONFIG:= \
+ CONFIG_MDIO_BITBANG \
+ CONFIG_MDIO_GPIO
+ FILES:= \
+ $(LINUX_DIR)/drivers/net/phy/mdio-gpio.ko@lt5.10 \
+ $(LINUX_DIR)/drivers/net/phy/mdio-bitbang.ko@lt5.10 \
+ $(LINUX_DIR)/drivers/net/mdio/mdio-gpio.ko@ge5.10 \
+ $(LINUX_DIR)/drivers/net/mdio/mdio-bitbang.ko@ge5.10
+ AUTOLOAD:=$(call AutoProbe,mdio-gpio)
+endef
+
+define KernelPackage/mdio-gpio/description
+ Supports GPIO lib-based MDIO busses
+endef
+
+$(eval $(call KernelPackage,mdio-gpio))
+
+
+define KernelPackage/et131x
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Agere ET131x Gigabit Ethernet driver
+ URL:=http://sourceforge.net/projects/et131x
+ FILES:= \
+ $(LINUX_DIR)/drivers/net/ethernet/agere/et131x.ko
+ KCONFIG:= \
+ CONFIG_ET131X \
+ CONFIG_ET131X_DEBUG=n
+ DEPENDS:=@PCI_SUPPORT +kmod-libphy
+ AUTOLOAD:=$(call AutoProbe,et131x)
+endef
+
+define KernelPackage/et131x/description
+ This package contains the et131x kernel module
+endef
+
+$(eval $(call KernelPackage,et131x))
+
+define KernelPackage/phy-microchip
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Microchip Ethernet PHY driver
+ KCONFIG:=CONFIG_MICROCHIP_PHY
+ DEPENDS:=+kmod-libphy
+ FILES:=$(LINUX_DIR)/drivers/net/phy/microchip.ko
+ AUTOLOAD:=$(call AutoLoad,18,microchip,1)
+endef
+
+define KernelPackage/phy-microchip/description
+ Supports the LAN88XX PHYs.
+endef
+
+$(eval $(call KernelPackage,phy-microchip))
+
+
+define KernelPackage/phylib-broadcom
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Broadcom Ethernet PHY library
+ KCONFIG:=CONFIG_BCM_NET_PHYLIB
+ HIDDEN:=1
+ DEPENDS:=+kmod-libphy
+ FILES:=$(LINUX_DIR)/drivers/net/phy/bcm-phy-lib.ko
+ AUTOLOAD:=$(call AutoLoad,17,bcm-phy-lib)
+endef
+
+$(eval $(call KernelPackage,phylib-broadcom))
+
+
+define KernelPackage/phylib-qcom
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Qualcomm Ethernet PHY library
+ KCONFIG:=CONFIG_QCOM_NET_PHYLIB
+ HIDDEN:=1
+ DEPENDS:=+kmod-libphy
+ FILES:=$(LINUX_DIR)/drivers/net/phy/qcom/qcom-phy-lib.ko
+ AUTOLOAD:=$(call AutoLoad,17,qcom-phy-lib)
+endef
+
+$(eval $(call KernelPackage,phylib-qcom))
+
+
+define KernelPackage/phy-amd
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=AMD PHY driver
+ KCONFIG:=CONFIG_AMD_PHY
+ DEPENDS:=+kmod-libphy
+ FILES:=$(LINUX_DIR)/drivers/net/phy/amd.ko
+ AUTOLOAD:=$(call AutoProbe,amd,1)
+endef
+
+define KernelPackage/phy-amd/description
+ Currently supports the AMD and Altima PHYs.
+endef
+
+$(eval $(call KernelPackage,phy-amd))
+
+
+define KernelPackage/phy-at803x
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Qualcomm Atheros 8337 internal PHY
+ KCONFIG:=CONFIG_AT803X_PHY
+ DEPENDS:=+kmod-phylib-qcom
+ FILES:=$(LINUX_DIR)/drivers/net/phy/qcom/at803x.ko
+ AUTOLOAD:=$(call AutoLoad,18,at803x,1)
+endef
+
+$(eval $(call KernelPackage,phy-at803x))
+
+
+define KernelPackage/phy-ax88796b
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Asix PHY driver
+ KCONFIG:=CONFIG_AX88796B_PHY
+ DEPENDS:=+kmod-libphy
+ FILES:=$(LINUX_DIR)/drivers/net/phy/ax88796b.ko
+ AUTOLOAD:=$(call AutoProbe,ax88796b)
+endef
+
+define KernelPackage/phy-ax88796b/description
+ Currently supports the Asix Electronics PHY found in the X-Surf 100
+ AX88796B package.
+endef
+
+$(eval $(call KernelPackage,phy-ax88796b))
+
+
+define KernelPackage/phy-broadcom
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Broadcom Ethernet PHY driver
+ KCONFIG:=CONFIG_BROADCOM_PHY
+ DEPENDS:=+kmod-libphy +kmod-phylib-broadcom
+ FILES:=$(LINUX_DIR)/drivers/net/phy/broadcom.ko
+ AUTOLOAD:=$(call AutoLoad,18,broadcom,1)
+endef
+
+define KernelPackage/phy-broadcom/description
+ Currently supports the BCM5411, BCM5421, BCM5461, BCM5464, BCM5481,
+ BCM5482 and BCM57780 PHYs.
+endef
+
+$(eval $(call KernelPackage,phy-broadcom))
+
+
+define KernelPackage/phy-bcm84881
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Broadcom BCM84881 PHY driver
+ KCONFIG:=CONFIG_BCM84881_PHY
+ DEPENDS:=+kmod-libphy
+ FILES:=$(LINUX_DIR)/drivers/net/phy/bcm84881.ko
+ AUTOLOAD:=$(call AutoLoad,18,bcm84881,1)
+endef
+
+define KernelPackage/phy-bcm84881/description
+ Supports the Broadcom 84881 PHY.
+endef
+
+$(eval $(call KernelPackage,phy-bcm84881))
+
+
+define KernelPackage/phy-intel-xway
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Intel XWAY PHYs
+ KCONFIG:=CONFIG_INTEL_XWAY_PHY
+ DEPENDS:=+kmod-libphy
+ FILES:=$(LINUX_DIR)/drivers/net/phy/intel-xway.ko
+ AUTOLOAD:=$(call AutoLoad,18,intel-xway,1)
+endef
+
+define KernelPackage/phy-intel-xway/description
+ Supports the Intel XWAY (former Lantiq) 11G and 22E PHYs.
+ These PHYs are marked as standalone chips under the names
+ PEF 7061, PEF 7071 and PEF 7072 or integrated into the Intel
+ SoCs xRX200, xRX300, xRX330, xRX350 and xRX550.
+endef
+
+$(eval $(call KernelPackage,phy-intel-xway))
+
+
+define KernelPackage/phy-qca83xx
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Qualcomm Atheros QCA833x PHY driver
+ KCONFIG:=CONFIG_QCA83XX_PHY
+ DEPENDS:=+kmod-phylib-qcom
+ FILES:=$(LINUX_DIR)/drivers/net/phy/qcom/qca83xx.ko
+ AUTOLOAD:=$(call AutoLoad,18,qca83xx,1)
+endef
+
+$(eval $(call KernelPackage,phy-qca83xx))
+
+
+define KernelPackage/phy-marvell
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Marvell Gigabit Ethernet PHY driver
+ KCONFIG:=CONFIG_MARVELL_PHY
+ DEPENDS:=+kmod-libphy
+ FILES:=$(LINUX_DIR)/drivers/net/phy/marvell.ko
+ AUTOLOAD:=$(call AutoLoad,18,marvell)
+endef
+
+define KernelPackage/phy-marvell/description
+ Supports Marvell Gigabit Ethernet PHYs:
+ * 88E1101
+ * 88E1112
+ * 88E1111 (incl. Finisar variant)
+ * 88E1118
+ * 88E1121R
+ * 88E1145
+ * 88E1149R
+ * 88E1240
+ * 88E1318S
+ * 88E1116R
+ * 88E1510
+ * 88E1540
+ * 88E1545
+ * 88E3016
+ * 88E6341 family
+ * 88E6390 family
+ * 88E6393 family
+ * 88E1340S
+ * 88E1548P
+endef
+
+$(eval $(call KernelPackage,phy-marvell))
+
+define KernelPackage/phy-marvell-10g
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Marvell 10 Gigabit Ethernet PHY driver
+ KCONFIG:=CONFIG_MARVELL_10G_PHY
+ DEPENDS:=+kmod-libphy
+ FILES:=$(LINUX_DIR)/drivers/net/phy/marvell10g.ko
+ AUTOLOAD:=$(call AutoLoad,18,marvell10g)
+endef
+
+define KernelPackage/phy-marvell/description
+ Supports Marvell 10 Gigabit Ethernet PHYs:
+ * 88E2110
+ * 88E2111
+ * 88x3310
+ * 88x3340
+endef
+
+$(eval $(call KernelPackage,phy-marvell-10g))
+
+
+define KernelPackage/phy-micrel
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Micrel PHYs
+ KCONFIG:=CONFIG_MICREL_PHY
+ DEPENDS:=+kmod-libphy +kmod-ptp
+ FILES:=$(LINUX_DIR)/drivers/net/phy/micrel.ko
+ AUTOLOAD:=$(call AutoLoad,18,micrel,1)
+endef
+
+define KernelPackage/phy-micrel/description
+ Supports the KSZ9021, VSC8201, KS8001 PHYs.
+endef
+
+$(eval $(call KernelPackage,phy-micrel))
+
+
+define KernelPackage/phy-realtek
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Realtek Ethernet PHY driver
+ KCONFIG:=CONFIG_REALTEK_PHY
+ DEPENDS:=+kmod-libphy
+ FILES:=$(LINUX_DIR)/drivers/net/phy/realtek.ko
+ AUTOLOAD:=$(call AutoLoad,18,realtek,1)
+endef
+
+define KernelPackage/phy-realtek/description
+ Supports the Realtek 821x PHY.
+endef
+
+$(eval $(call KernelPackage,phy-realtek))
+
+
+define KernelPackage/phy-smsc
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=SMSC PHY driver
+ KCONFIG:=CONFIG_SMSC_PHY
+ DEPENDS:=+kmod-libphy +LINUX_6_6:kmod-lib-crc16
+ FILES:=$(LINUX_DIR)/drivers/net/phy/smsc.ko
+ AUTOLOAD:=$(call AutoProbe,smsc)
+endef
+
+define KernelPackage/phy-smsc/description
+ Currently supports the LAN83C185, LAN8187 and LAN8700 PHYs
+endef
+
+$(eval $(call KernelPackage,phy-smsc))
+
+
+define KernelPackage/phy-vitesse
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Vitesse PHYs
+ KCONFIG:=CONFIG_VITESSE_PHY
+ DEPENDS:=+kmod-libphy
+ FILES:=$(LINUX_DIR)/drivers/net/phy/vitesse.ko
+ AUTOLOAD:=$(call AutoLoad,18,vitesse,1)
+endef
+
+define KernelPackage/phy-vitesse/description
+ Currently supports the vsc8244
+endef
+
+$(eval $(call KernelPackage,phy-vitesse))
+
+
+define KernelPackage/phy-aquantia
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Aquantia Ethernet PHYs
+ DEPENDS:=+kmod-libphy +kmod-hwmon-core +kmod-lib-crc-ccitt
+ KCONFIG:=CONFIG_AQUANTIA_PHY
+ FILES:=$(LINUX_DIR)/drivers/net/phy/aquantia.ko@lt6.1 \
+ $(LINUX_DIR)/drivers/net/phy/aquantia/aquantia.ko@ge6.1
+ AUTOLOAD:=$(call AutoLoad,18,aquantia,1)
+endef
+
+define KernelPackage/phy-aquantia/description
+ Kernel modules for Aquantia Ethernet PHYs
+endef
+
+$(eval $(call KernelPackage,phy-aquantia))
+
+define KernelPackage/dsa
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Distributed Switch Architecture support
+ DEPENDS:=+kmod-mdio-devres +kmod-net-selftests +kmod-phylink
+ KCONFIG:=CONFIG_NET_DSA
+ FILES:=$(LINUX_DIR)/net/dsa/dsa_core.ko
+endef
+
+define KernelPackage/dsa/description
+ Kernel module support for Distributed Switch Architecture
+endef
+
+$(eval $(call KernelPackage,dsa))
+
+define KernelPackage/dsa-tag-dsa
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Marvell DSA type DSA and EDSA taggers
+ DEPENDS:=+kmod-dsa
+ KCONFIG:= CONFIG_NET_DSA_TAG_DSA_COMMON \
+ CONFIG_NET_DSA_TAG_DSA \
+ CONFIG_NET_DSA_TAG_EDSA
+ FILES:=$(LINUX_DIR)/net/dsa/tag_dsa.ko
+ AUTOLOAD:=$(call AutoLoad,40,tag_dsa,1)
+endef
+
+define KernelPackage/dsa-tag-dsa/description
+ Kernel modules for Marvell DSA and EDSA tagging
+endef
+
+$(eval $(call KernelPackage,dsa-tag-dsa))
+
+define KernelPackage/dsa-mv88e6xxx
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Marvell MV88E6XXX DSA Switch
+ DEPENDS:=+kmod-dsa +kmod-ptp +kmod-phy-marvell +kmod-dsa-tag-dsa
+ KCONFIG:=CONFIG_NET_DSA_MV88E6XXX \
+ CONFIG_NET_DSA_MV88E6XXX_PTP=y
+ FILES:=$(LINUX_DIR)/drivers/net/dsa/mv88e6xxx/mv88e6xxx.ko
+ AUTOLOAD:=$(call AutoLoad,41,mv88e6xxx,1)
+endef
+
+define KernelPackage/dsa-mv88e6xxx/description
+ Kernel modules for MV88E6XXX DSA switches
+endef
+
+$(eval $(call KernelPackage,dsa-mv88e6xxx))
+
+define KernelPackage/dsa-qca8k
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Qualcomm Atheros QCA8xxx switch family DSA support
+ DEPENDS:=+kmod-dsa +kmod-regmap-core
+ KCONFIG:= \
+ CONFIG_NET_DSA_QCA8K \
+ CONFIG_NET_DSA_QCA8K_LEDS_SUPPORT=y \
+ CONFIG_NET_DSA_TAG_QCA
+ FILES:= \
+ $(LINUX_DIR)/drivers/net/dsa/qca/qca8k.ko \
+ $(LINUX_DIR)/net/dsa/tag_qca.ko
+ AUTOLOAD:=$(call AutoLoad,42,qca8k,1)
+endef
+
+define KernelPackage/dsa-qca8k/description
+ DSA based kernel modules for the Qualcomm Atheros QCA8xxx switch family
+endef
+
+$(eval $(call KernelPackage,dsa-qca8k))
+
+define KernelPackage/swconfig
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=switch configuration API
+ DEPENDS:=+kmod-libphy
+ KCONFIG:=CONFIG_SWCONFIG \
+ CONFIG_SWCONFIG_LEDS=y
+ FILES:=$(LINUX_DIR)/drivers/net/phy/swconfig.ko
+ AUTOLOAD:=$(call AutoLoad,41,swconfig)
+endef
+
+define KernelPackage/swconfig/description
+ Switch configuration API module
+endef
+
+$(eval $(call KernelPackage,swconfig))
+
+define KernelPackage/switch-bcm53xx
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Broadcom bcm53xx switch support
+ DEPENDS:=+kmod-swconfig
+ KCONFIG:=CONFIG_SWCONFIG_B53
+ FILES:=$(LINUX_DIR)/drivers/net/phy/b53/b53_common.ko
+ AUTOLOAD:=$(call AutoLoad,42,b53_common)
+endef
+
+define KernelPackage/switch-bcm53xx/description
+ Broadcom bcm53xx switch support
+endef
+
+$(eval $(call KernelPackage,switch-bcm53xx))
+
+define KernelPackage/switch-bcm53xx-mdio
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Broadcom bcm53xx switch MDIO support
+ DEPENDS:=+kmod-switch-bcm53xx
+ KCONFIG:=CONFIG_SWCONFIG_B53_PHY_DRIVER
+ FILES:=$(LINUX_DIR)/drivers/net/phy/b53/b53_mdio.ko
+ AUTOLOAD:=$(call AutoLoad,42,b53_mdio)
+endef
+
+define KernelPackage/switch-bcm53xx-mdio/description
+ Broadcom bcm53xx switch MDIO support
+endef
+
+$(eval $(call KernelPackage,switch-bcm53xx-mdio))
+
+
+define KernelPackage/switch-ip17xx
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=IC+ IP17XX switch support
+ DEPENDS:=+kmod-swconfig
+ KCONFIG:=CONFIG_IP17XX_PHY
+ FILES:=$(LINUX_DIR)/drivers/net/phy/ip17xx.ko
+ AUTOLOAD:=$(call AutoLoad,42,ip17xx)
+endef
+
+define KernelPackage/switch-ip17xx/description
+ IC+ IP175C/IP178C switch support
+endef
+
+$(eval $(call KernelPackage,switch-ip17xx))
+
+
+define KernelPackage/switch-rtl8306
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Realtek RTL8306S switch support
+ DEPENDS:=+kmod-swconfig
+ KCONFIG:=CONFIG_RTL8306_PHY
+ FILES:=$(LINUX_DIR)/drivers/net/phy/rtl8306.ko
+ AUTOLOAD:=$(call AutoLoad,43,rtl8306)
+endef
+
+define KernelPackage/switch-rtl8306/description
+ Realtek RTL8306S switch support
+endef
+
+$(eval $(call KernelPackage,switch-rtl8306))
+
+
+define KernelPackage/switch-rtl8366-smi
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Realtek RTL8366 SMI switch interface support
+ DEPENDS:=@GPIO_SUPPORT +kmod-swconfig +(TARGET_armvirt||TARGET_bcm27xx_bcm2708||TARGET_loongarch64||TARGET_malta||TARGET_tegra):kmod-of-mdio
+ KCONFIG:=CONFIG_RTL8366_SMI
+ FILES:=$(LINUX_DIR)/drivers/net/phy/rtl8366_smi.ko
+ AUTOLOAD:=$(call AutoLoad,42,rtl8366_smi,1)
+endef
+
+define KernelPackage/switch-rtl8366-smi/description
+ Realtek RTL8366 series SMI switch interface support
+endef
+
+$(eval $(call KernelPackage,switch-rtl8366-smi))
+
+
+define KernelPackage/switch-rtl8366rb
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Realtek RTL8366RB switch support
+ DEPENDS:=+kmod-switch-rtl8366-smi
+ KCONFIG:=CONFIG_RTL8366RB_PHY
+ FILES:=$(LINUX_DIR)/drivers/net/phy/rtl8366rb.ko
+ AUTOLOAD:=$(call AutoLoad,43,rtl8366rb,1)
+endef
+
+define KernelPackage/switch-rtl8366rb/description
+ Realtek RTL8366RB switch support
+endef
+
+$(eval $(call KernelPackage,switch-rtl8366rb))
+
+
+define KernelPackage/switch-rtl8366s
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Realtek RTL8366S switch support
+ DEPENDS:=+kmod-switch-rtl8366-smi
+ KCONFIG:=CONFIG_RTL8366S_PHY
+ FILES:=$(LINUX_DIR)/drivers/net/phy/rtl8366s.ko
+ AUTOLOAD:=$(call AutoLoad,43,rtl8366s,1)
+endef
+
+define KernelPackage/switch-rtl8366s/description
+ Realtek RTL8366S switch support
+endef
+
+$(eval $(call KernelPackage,switch-rtl8366s))
+
+
+define KernelPackage/switch-rtl8367
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Realtek RTL8367 switch support
+ DEPENDS:=+kmod-switch-rtl8366-smi
+ KCONFIG:=CONFIG_RTL8367_PHY
+ FILES:=$(LINUX_DIR)/drivers/net/phy/rtl8367.ko
+ AUTOLOAD:=$(call AutoLoad,43,rtl8367,1)
+endef
+
+define KernelPackage/switch-rtl8367/description
+ Realtek RTL8367 switch support
+endef
+
+$(eval $(call KernelPackage,switch-rtl8367))
+
+
+define KernelPackage/switch-rtl8367b
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Realtek RTL8367R/B switch support
+ DEPENDS:=+kmod-switch-rtl8366-smi
+ KCONFIG:=CONFIG_RTL8367B_PHY
+ FILES:=$(LINUX_DIR)/drivers/net/phy/rtl8367b.ko
+ AUTOLOAD:=$(call AutoLoad,43,rtl8367b,1)
+endef
+
+define KernelPackage/switch-rtl8367b/description
+ Realtek RTL8367R/B switch support
+endef
+
+$(eval $(call KernelPackage,switch-rtl8367b))
+
+
+define KernelPackage/switch-ar8xxx
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Atheros AR8216/8327 switch support
+ DEPENDS:=+kmod-swconfig +!LINUX_5_4:kmod-mdio-devres
+ KCONFIG:=CONFIG_AR8216_PHY \
+ CONFIG_AR8216_PHY_LEDS=y
+ FILES:=$(LINUX_DIR)/drivers/net/phy/ar8xxx.ko
+ AUTOLOAD:=$(call AutoLoad,43,ar8xxx,1)
+endef
+
+define KernelPackage/switch-ar8xxx/description
+ Atheros AR8216/8327 switch support
+endef
+
+$(eval $(call KernelPackage,switch-ar8xxx))
+
+
+define KernelPackage/natsemi
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=National Semiconductor DP8381x series
+ DEPENDS:=@PCI_SUPPORT
+ KCONFIG:=CONFIG_NATSEMI
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/natsemi/natsemi.ko
+ AUTOLOAD:=$(call AutoLoad,20,natsemi)
+endef
+
+define KernelPackage/natsemi/description
+ Kernel modules for National Semiconductor DP8381x series PCI Ethernet
+ adapters.
+endef
+
+$(eval $(call KernelPackage,natsemi))
+
+
+define KernelPackage/r6040
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=RDC Fast-Ethernet support
+ DEPENDS:=@PCI_SUPPORT +kmod-libphy
+ KCONFIG:=CONFIG_R6040 \
+ CONFIG_R6040_NAPI=y
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/rdc/r6040.ko
+ AUTOLOAD:=$(call AutoProbe,r6040)
+endef
+
+define KernelPackage/r6040/description
+ Kernel modules for RDC Fast-Ethernet adapters.
+endef
+
+$(eval $(call KernelPackage,r6040))
+
+
+define KernelPackage/niu
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Sun Neptune 10Gbit Ethernet support
+ DEPENDS:=@PCI_SUPPORT
+ KCONFIG:=CONFIG_NIU
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/sun/niu.ko
+ AUTOLOAD:=$(call AutoProbe,niu)
+endef
+
+define KernelPackage/niu/description
+ This enables support for cards based upon Sun's Neptune chipset.
+endef
+
+$(eval $(call KernelPackage,niu))
+
+
+define KernelPackage/sis900
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=SiS 900 Ethernet support
+ DEPENDS:=@PCI_SUPPORT +kmod-mii
+ KCONFIG:=CONFIG_SIS900
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/sis/sis900.ko
+ AUTOLOAD:=$(call AutoProbe,sis900)
+endef
+
+define KernelPackage/sis900/description
+ Kernel modules for Sis 900 Ethernet adapters.
+endef
+
+$(eval $(call KernelPackage,sis900))
+
+
+define KernelPackage/sky2
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=SysKonnect Yukon2 support
+ DEPENDS:=@PCI_SUPPORT
+ KCONFIG:=CONFIG_SKY2
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/marvell/sky2.ko
+ AUTOLOAD:=$(call AutoProbe,sky2)
+endef
+
+define KernelPackage/sky2/description
+ This driver supports Gigabit Ethernet adapters based on the
+ Marvell Yukon 2 chipset:
+ Marvell 88E8021/88E8022/88E8035/88E8036/88E8038/88E8050/88E8052/
+ 88E8053/88E8055/88E8061/88E8062, SysKonnect SK-9E21D/SK-9S21
+
+ There is companion driver for the older Marvell Yukon and
+ Genesis based adapters: skge.
+endef
+
+$(eval $(call KernelPackage,sky2))
+
+
+define KernelPackage/via-rhine
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Via Rhine ethernet support
+ DEPENDS:=@PCI_SUPPORT +kmod-mii
+ KCONFIG:=CONFIG_VIA_RHINE \
+ CONFIG_VIA_RHINE_MMIO=y
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/via/via-rhine.ko
+ AUTOLOAD:=$(call AutoProbe,via-rhine)
+endef
+
+define KernelPackage/via-rhine/description
+ Kernel modules for Via Rhine Ethernet chipsets
+endef
+
+$(eval $(call KernelPackage,via-rhine))
+
+
+define KernelPackage/via-velocity
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=VIA Velocity Gigabit Ethernet Adapter kernel support
+ DEPENDS:=@PCI_SUPPORT +kmod-lib-crc-ccitt
+ KCONFIG:=CONFIG_VIA_VELOCITY
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/via/via-velocity.ko
+ AUTOLOAD:=$(call AutoProbe,via-velocity)
+endef
+
+define KernelPackage/via-velocity/description
+ Kernel modules for VIA Velocity Gigabit Ethernet chipsets
+endef
+
+$(eval $(call KernelPackage,via-velocity))
+
+
+define KernelPackage/8139too
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=RealTek RTL-8139 PCI Fast Ethernet Adapter kernel support
+ DEPENDS:=@PCI_SUPPORT +kmod-mii
+ KCONFIG:=CONFIG_8139TOO \
+ CONFIG_8139TOO_PIO=y \
+ CONFIG_8139TOO_TUNE_TWISTER=n \
+ CONFIG_8139TOO_8129=n \
+ CONFIG_8139_OLD_RX_RESET=n
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/realtek/8139too.ko
+ AUTOLOAD:=$(call AutoProbe,8139too)
+endef
+
+define KernelPackage/8139too/description
+ Kernel modules for RealTek RTL-8139 PCI Fast Ethernet adapters
+endef
+
+$(eval $(call KernelPackage,8139too))
+
+
+define KernelPackage/8139cp
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=RealTek RTL-8139C+ PCI Fast Ethernet Adapter kernel support
+ DEPENDS:=@PCI_SUPPORT +kmod-mii
+ KCONFIG:=CONFIG_8139CP
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/realtek/8139cp.ko
+ AUTOLOAD:=$(call AutoProbe,8139cp)
+endef
+
+define KernelPackage/8139cp/description
+ Kernel module for RealTek RTL-8139C+ PCI Fast Ethernet adapters
+endef
+
+$(eval $(call KernelPackage,8139cp))
+
+
+define KernelPackage/r8169
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=RealTek RTL-8169 PCI Gigabit Ethernet Adapter kernel support
+ DEPENDS:=@PCI_SUPPORT +kmod-mii +r8169-firmware +kmod-phy-realtek +!LINUX_5_4:kmod-mdio-devres
+ KCONFIG:= \
+ CONFIG_R8169 \
+ CONFIG_R8169_LEDS=y@ge6.6
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/realtek/r8169.ko
+ AUTOLOAD:=$(call AutoProbe,r8169)
+endef
+
+define KernelPackage/r8169/description
+ Kernel modules for RealTek RTL-8169 PCI Gigabit Ethernet adapters
+endef
+
+$(eval $(call KernelPackage,r8169))
+
+
+define KernelPackage/ne2k-pci
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=ne2k-pci Ethernet Adapter kernel support
+ DEPENDS:=@PCI_SUPPORT
+ KCONFIG:=CONFIG_NE2K_PCI
+ FILES:= \
+ $(LINUX_DIR)/drivers/net/ethernet/8390/ne2k-pci.ko \
+ $(LINUX_DIR)/drivers/net/ethernet/8390/8390.ko
+ AUTOLOAD:=$(call AutoProbe,8390 ne2k-pci)
+endef
+
+define KernelPackage/ne2k-pci/description
+ Kernel modules for NE2000 PCI Ethernet Adapter kernel
+endef
+
+$(eval $(call KernelPackage,ne2k-pci))
+
+
+define KernelPackage/e100
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Intel(R) PRO/100+ cards kernel support
+ DEPENDS:=@PCI_SUPPORT +kmod-mii +e100-firmware
+ KCONFIG:=CONFIG_E100
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/intel/e100.ko
+ AUTOLOAD:=$(call AutoProbe,e100)
+endef
+
+define KernelPackage/e100/description
+ Kernel modules for Intel(R) PRO/100+ Ethernet adapters
+endef
+
+$(eval $(call KernelPackage,e100))
+
+
+define KernelPackage/e1000
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Intel(R) PRO/1000 PCI cards kernel support
+ DEPENDS:=@PCI_SUPPORT
+ KCONFIG:=CONFIG_E1000 \
+ CONFIG_E1000_DISABLE_PACKET_SPLIT=n \
+ CONFIG_E1000_NAPI=y
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/intel/e1000/e1000.ko
+ AUTOLOAD:=$(call AutoLoad,35,e1000)
+endef
+
+define KernelPackage/e1000/description
+ Kernel modules for Intel(R) PRO/1000 PCI Ethernet adapters.
+endef
+
+$(eval $(call KernelPackage,e1000))
+
+
+define KernelPackage/e1000e
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Intel(R) PRO/1000 PCIe cards kernel support
+ DEPENDS:=@PCIE_SUPPORT +kmod-ptp
+ KCONFIG:=CONFIG_E1000E
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/intel/e1000e/e1000e.ko
+ AUTOLOAD:=$(call AutoProbe,e1000e)
+ MODPARAMS.e1000e:= \
+ IntMode=1 \
+ InterruptThrottleRate=4,4,4,4,4,4,4,4
+endef
+
+define KernelPackage/e1000e/description
+ Kernel modules for Intel(R) PRO/1000 PCIe Ethernet adapters.
+endef
+
+$(eval $(call KernelPackage,e1000e))
+
+
+define KernelPackage/igb
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Intel(R) 82575/82576 PCI-Express Gigabit Ethernet support
+ DEPENDS:=@PCI_SUPPORT +kmod-i2c-core +kmod-i2c-algo-bit +kmod-ptp +kmod-hwmon-core
+ KCONFIG:=CONFIG_IGB \
+ CONFIG_IGB_HWMON=y \
+ CONFIG_IGB_DCA=n
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/intel/igb/igb.ko
+ AUTOLOAD:=$(call AutoLoad,35,igb,1)
+endef
+
+define KernelPackage/igb/description
+ Kernel modules for Intel(R) 82575/82576 PCI-Express Gigabit Ethernet adapters.
+endef
+
+$(eval $(call KernelPackage,igb))
+
+
+define KernelPackage/igbvf
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Intel(R) 82576 Virtual Function Ethernet support
+ DEPENDS:=@PCI_SUPPORT @TARGET_x86 +kmod-i2c-core +kmod-i2c-algo-bit +kmod-ptp
+ KCONFIG:=CONFIG_IGBVF \
+ CONFIG_IGB_HWMON=y \
+ CONFIG_IGB_DCA=n
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/intel/igbvf/igbvf.ko
+ AUTOLOAD:=$(call AutoLoad,35,igbvf)
+endef
+
+define KernelPackage/igbvf/description
+ Kernel modules for Intel(R) 82576 Virtual Function Ethernet adapters.
+endef
+
+$(eval $(call KernelPackage,igbvf))
+
+
+define KernelPackage/ixgbe
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Intel(R) 82598/82599 PCI-Express 10 Gigabit Ethernet support
+ DEPENDS:=@PCI_SUPPORT +kmod-mdio +kmod-ptp +kmod-hwmon-core +kmod-libphy +!LINUX_5_4:kmod-mdio-devres
+ KCONFIG:=CONFIG_IXGBE \
+ CONFIG_IXGBE_VXLAN=n \
+ CONFIG_IXGBE_HWMON=y \
+ CONFIG_IXGBE_DCA=n
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/intel/ixgbe/ixgbe.ko
+ AUTOLOAD:=$(call AutoLoad,35,ixgbe)
+endef
+
+define KernelPackage/ixgbe/description
+ Kernel modules for Intel(R) 82598/82599 PCI-Express 10 Gigabit Ethernet adapters.
+endef
+
+$(eval $(call KernelPackage,ixgbe))
+
+
+define KernelPackage/ixgbevf
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Intel(R) 82599 Virtual Function Ethernet support
+ DEPENDS:=@PCI_SUPPORT +kmod-ixgbe
+ KCONFIG:=CONFIG_IXGBEVF \
+ CONFIG_IXGBE_VXLAN=n \
+ CONFIG_IXGBE_HWMON=y \
+ CONFIG_IXGBE_DCA=n
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko
+ AUTOLOAD:=$(call AutoLoad,35,ixgbevf)
+endef
+
+define KernelPackage/ixgbevf/description
+ Kernel modules for Intel(R) 82599 Virtual Function Ethernet adapters.
+endef
+
+$(eval $(call KernelPackage,ixgbevf))
+
+
+define KernelPackage/i40e
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Intel(R) Ethernet Controller XL710 Family support
+ DEPENDS:=@PCI_SUPPORT +kmod-mdio +kmod-ptp +kmod-hwmon-core +kmod-libphy
+ KCONFIG:=CONFIG_I40E \
+ CONFIG_I40E_VXLAN=n \
+ CONFIG_I40E_HWMON=y \
+ CONFIG_I40E_DCA=n
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/intel/i40e/i40e.ko
+ AUTOLOAD:=$(call AutoProbe,i40e)
+endef
+
+define KernelPackage/i40e/description
+ Kernel modules for Intel(R) Ethernet Controller XL710 Family 40 Gigabit Ethernet adapters.
+endef
+
+$(eval $(call KernelPackage,i40e))
+
+
+define KernelPackage/iavf
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Intel(R) Ethernet Adaptive Virtual Function support
+ DEPENDS:=@PCI_SUPPORT
+ KCONFIG:= \
+ CONFIG_I40EVF \
+ CONFIG_IAVF
+ FILES:= \
+ $(LINUX_DIR)/drivers/net/ethernet/intel/iavf/iavf.ko
+ AUTOLOAD:=$(call AutoProbe,i40evf iavf)
+ AUTOLOAD:=$(call AutoProbe,iavf)
+endef
+
+define KernelPackage/iavf/description
+ Kernel modules for Intel XL710,
+ X710, X722, XXV710, and all devices advertising support for
+ Intel Ethernet Adaptive Virtual Function devices.
+endef
+
+$(eval $(call KernelPackage,iavf))
+
+
+define KernelPackage/b44
+ TITLE:=Broadcom 44xx driver
+ KCONFIG:=CONFIG_B44
+ DEPENDS:=@PCI_SUPPORT @!TARGET_bcm47xx_mips74k +!TARGET_bcm47xx:kmod-ssb +kmod-mii +kmod-libphy
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/broadcom/b44.ko
+ AUTOLOAD:=$(call AutoLoad,19,b44,1)
+endef
+
+define KernelPackage/b44/description
+ Kernel modules for Broadcom 44xx Ethernet adapters.
+endef
+
+$(eval $(call KernelPackage,b44))
+
+
+define KernelPackage/3c59x
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=3Com 3c590/3c900 series (592/595/597) Vortex/Boomerang
+ DEPENDS:=@PCI_SUPPORT +kmod-mii
+ KCONFIG:=CONFIG_VORTEX
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/3com/3c59x.ko
+ AUTOLOAD:=$(call AutoProbe,3c59x)
+endef
+
+define KernelPackage/3c59x/description
+ This option enables driver support for a large number of 10mbps and
+ 10/100mbps EISA, PCI and PCMCIA 3Com Ethernet adapters:
+ - "Vortex" (Fast EtherLink 3c590/3c592/3c595/3c597) EISA and PCI
+ - "Boomerang" (EtherLink XL 3c900 or 3c905) PCI
+ - "Cyclone" (3c540/3c900/3c905/3c980/3c575/3c656) PCI and Cardbus
+ - "Tornado" (3c905) PCI
+ - "Hurricane" (3c555/3cSOHO) PCI
+endef
+
+$(eval $(call KernelPackage,3c59x))
+
+
+define KernelPackage/pcnet32
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=AMD PCnet32 PCI support
+ DEPENDS:=@(PCI_SUPPORT||TARGET_malta) +kmod-mii
+ KCONFIG:=CONFIG_PCNET32
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/amd/pcnet32.ko
+ AUTOLOAD:=$(call AutoProbe,pcnet32)
+endef
+
+define KernelPackage/pcnet32/description
+ Kernel modules for AMD PCnet32 Ethernet adapters
+endef
+
+$(eval $(call KernelPackage,pcnet32))
+
+
+define KernelPackage/tg3
+ TITLE:=Broadcom Tigon3 Gigabit Ethernet
+ KCONFIG:=CONFIG_TIGON3 \
+ CONFIG_TIGON3_HWMON=n
+ DEPENDS:=@PCI_SUPPORT +!TARGET_bcm47xx:kmod-libphy +kmod-ptp
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/broadcom/tg3.ko
+ AUTOLOAD:=$(call AutoLoad,19,tg3,1)
+endef
+
+define KernelPackage/tg3/description
+ Kernel modules for Broadcom Tigon3 Gigabit Ethernet adapters
+endef
+
+$(eval $(call KernelPackage,tg3))
+
+
+define KernelPackage/hfcpci
+ TITLE:=HFC PCI cards (single port) support for mISDN
+ KCONFIG:=CONFIG_MISDN_HFCPCI
+ DEPENDS:=@PCI_SUPPORT +kmod-misdn
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ FILES:=$(LINUX_DIR)/drivers/isdn/hardware/mISDN/hfcpci.ko
+ AUTOLOAD:=$(call AutoLoad,31,hfcpci)
+endef
+
+define KernelPackage/hfcpci/description
+ Kernel modules for Cologne AG's HFC pci cards (single port)
+ using the mISDN V2 stack
+endef
+
+$(eval $(call KernelPackage,hfcpci))
+
+
+define KernelPackage/hfcmulti
+ TITLE:=HFC multiport cards (HFC-4S/8S/E1) support for mISDN
+ KCONFIG:=CONFIG_MISDN_HFCMULTI
+ DEPENDS:=@PCI_SUPPORT +kmod-misdn
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ FILES:=$(LINUX_DIR)/drivers/isdn/hardware/mISDN/hfcmulti.ko
+ AUTOLOAD:=$(call AutoLoad,31,hfcmulti)
+endef
+
+define KernelPackage/hfcmulti/description
+ Kernel modules for Cologne AG's HFC multiport cards (HFC-4S/8S/E1)
+ using the mISDN V2 stack
+endef
+
+$(eval $(call KernelPackage,hfcmulti))
+
+
+define KernelPackage/macvlan
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=MAC-VLAN support
+ KCONFIG:=CONFIG_MACVLAN
+ FILES:=$(LINUX_DIR)/drivers/net/macvlan.ko
+ AUTOLOAD:=$(call AutoProbe,macvlan)
+endef
+
+define KernelPackage/macvlan/description
+ A kernel module which allows one to create virtual interfaces that
+ map packets to or from specific MAC addresses to a particular interface
+endef
+
+$(eval $(call KernelPackage,macvlan))
+
+
+define KernelPackage/ipvlan
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=IP-VLAN support
+ KCONFIG:=CONFIG_IPVLAN
+ FILES:=$(LINUX_DIR)/drivers/net/ipvlan/ipvlan.ko
+ AUTOLOAD:=$(call AutoProbe,ipvlan)
+endef
+
+define KernelPackage/ipvlan/description
+ A kernel module which allows one to create virtual interfaces that
+ map packets to or from specific IP addresses to a particular interface
+endef
+
+$(eval $(call KernelPackage,ipvlan))
+
+
+define KernelPackage/tulip
+ TITLE:=Tulip family network device support
+ DEPENDS:=@PCI_SUPPORT +kmod-mii
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ KCONFIG:= \
+ CONFIG_NET_TULIP=y \
+ CONFIG_DE2104X \
+ CONFIG_DE2104X_DSL=0 \
+ CONFIG_TULIP \
+ CONFIG_TULIP_MWI=y \
+ CONFIG_TULIP_MMIO=y \
+ CONFIG_TULIP_NAPI=y \
+ CONFIG_TULIP_NAPI_HW_MITIGATION=y \
+ CONFIG_DE4X5=n \
+ CONFIG_WINBOND_840 \
+ CONFIG_DM9102 \
+ CONFIG_ULI526X
+ FILES:= \
+ $(LINUX_DIR)/drivers/net/ethernet/dec/tulip/tulip.ko \
+ $(LINUX_DIR)/drivers/net/ethernet/dec/tulip/de2104x.ko \
+ $(LINUX_DIR)/drivers/net/ethernet/dec/tulip/dmfe.ko \
+ $(LINUX_DIR)/drivers/net/ethernet/dec/tulip/uli526x.ko \
+ $(LINUX_DIR)/drivers/net/ethernet/dec/tulip/winbond-840.ko
+ AUTOLOAD:=$(call AutoProbe,tulip)
+endef
+
+define KernelPackage/tulip/description
+ Kernel modules for the Tulip family of network cards,
+ including DECchip Tulip, DIGITAL EtherWORKS, Winbond W89c840,
+ Davicom DM910x/DM980x and ULi M526x controller support.
+endef
+
+$(eval $(call KernelPackage,tulip))
+
+
+define KernelPackage/solos-pci
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Solos ADSL2+ multiport modem
+ DEPENDS:=@PCI_SUPPORT +kmod-atm
+ KCONFIG:=CONFIG_ATM_SOLOS
+ FILES:=$(LINUX_DIR)/drivers/atm/solos-pci.ko
+ AUTOLOAD:=$(call AutoProbe,solos-pci)
+endef
+
+define KernelPackage/solos-pci/description
+ Kernel module for Traverse Technologies' Solos PCI cards
+ and Geos ADSL2+ x86 motherboard
+endef
+
+$(eval $(call KernelPackage,solos-pci))
+
+
+define KernelPackage/dummy
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Dummy network device
+ KCONFIG:=CONFIG_DUMMY
+ FILES:=$(LINUX_DIR)/drivers/net/dummy.ko
+ AUTOLOAD:=$(call AutoLoad,34,dummy)
+endef
+
+define KernelPackage/dummy/description
+ The dummy network device
+endef
+
+$(eval $(call KernelPackage,dummy))
+
+
+define KernelPackage/ifb
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Intermediate Functional Block support
+ KCONFIG:= \
+ CONFIG_IFB \
+ CONFIG_NET_CLS=y
+ FILES:=$(LINUX_DIR)/drivers/net/ifb.ko
+ AUTOLOAD:=$(call AutoLoad,34,ifb)
+ MODPARAMS.ifb:=numifbs=0
+endef
+
+define KernelPackage/ifb/description
+ The Intermediate Functional Block
+endef
+
+$(eval $(call KernelPackage,ifb))
+
+
+define KernelPackage/dm9000
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Davicom 9000 Ethernet support
+ DEPENDS:=+kmod-mii
+ KCONFIG:=CONFIG_DM9000 \
+ CONFIG_DM9000_DEBUGLEVEL=4 \
+ CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL=y
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/davicom/dm9000.ko
+ AUTOLOAD:=$(call AutoLoad,34,dm9000)
+endef
+
+define KernelPackage/dm9000/description
+ Kernel driver for Davicom 9000 Ethernet adapters.
+endef
+
+$(eval $(call KernelPackage,dm9000))
+
+
+define KernelPackage/forcedeth
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=nForce Ethernet support
+ DEPENDS:=@PCI_SUPPORT
+ KCONFIG:=CONFIG_FORCEDETH
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/nvidia/forcedeth.ko
+ AUTOLOAD:=$(call AutoProbe,forcedeth)
+endef
+
+define KernelPackage/forcedeth/description
+ Kernel driver for Nvidia Ethernet support
+endef
+
+$(eval $(call KernelPackage,forcedeth))
+
+define KernelPackage/fixed-phy
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=MDIO Bus/PHY emulation with fixed speed/link PHYs
+ DEPENDS:=+kmod-libphy
+ KCONFIG:=CONFIG_FIXED_PHY
+ FILES:=$(LINUX_DIR)/drivers/net/phy/fixed_phy.ko
+ AUTOLOAD:=$(call AutoProbe,fixed_phy)
+endef
+
+define KernelPackage/fixed-phy/description
+ Kernel driver for "fixed" MDIO Bus to cover the boards
+ and devices that use PHYs that are not connected to the real MDIO bus.
+endef
+
+$(eval $(call KernelPackage,fixed-phy))
+
+define KernelPackage/of-mdio
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=OpenFirmware MDIO support
+ DEPENDS:=+kmod-libphy +kmod-fixed-phy @!TARGET_x86
+ KCONFIG:=CONFIG_OF_MDIO
+ FILES:= \
+ $(LINUX_DIR)/drivers/net/phy/fixed_phy.ko@@lt5.10 \
+ $(LINUX_DIR)/drivers/of/of_mdio.ko@lt5.10 \
+ $(LINUX_DIR)/drivers/net/mdio/of_mdio.ko@ge5.15 \
+ $(LINUX_DIR)/drivers/net/mdio/fwnode_mdio.ko@ge5.15
+ AUTOLOAD:=$(call AutoLoad,41,of_mdio)
+endef
+
+define KernelPackage/of-mdio/description
+ Kernel driver for OpenFirmware MDIO support
+endef
+
+$(eval $(call KernelPackage,of-mdio))
+
+
+define KernelPackage/vmxnet3
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=VMware VMXNET3 ethernet driver
+ DEPENDS:=@PCI_SUPPORT
+ KCONFIG:=CONFIG_VMXNET3
+ FILES:=$(LINUX_DIR)/drivers/net/vmxnet3/vmxnet3.ko
+ AUTOLOAD:=$(call AutoLoad,35,vmxnet3)
+endef
+
+define KernelPackage/vmxnet3/description
+ Kernel modules for VMware VMXNET3 ethernet adapters.
+endef
+
+$(eval $(call KernelPackage,vmxnet3))
+
+
+define KernelPackage/spi-ks8995
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Micrel/Kendin KS8995 Ethernet switch control
+ FILES:=$(LINUX_DIR)/drivers/net/phy/spi_ks8995.ko
+ KCONFIG:=CONFIG_MICREL_KS8995MA \
+ CONFIG_SPI=y \
+ CONFIG_SPI_MASTER=y
+ AUTOLOAD:=$(call AutoLoad,50,spi_ks8995)
+endef
+
+define KernelPackage/spi-ks8995/description
+ Kernel module for Micrel/Kendin KS8995 ethernet switch
+endef
+
+$(eval $(call KernelPackage,spi-ks8995))
+
+
+define KernelPackage/ethoc
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Opencore.org ethoc driver
+ DEPENDS:=+kmod-libphy
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/ethoc.ko
+ KCONFIG:=CONFIG_ETHOC
+ AUTOLOAD:=$(call AutoProbe,ethoc)
+endef
+
+define KernelPackage/ethoc/description
+ Kernel module for the Opencores.org ethernet adapter
+endef
+
+$(eval $(call KernelPackage,ethoc))
+
+
+define KernelPackage/bnx2
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=BCM5706/5708/5709/5716 ethernet adapter driver
+ DEPENDS:=@PCI_SUPPORT +bnx2-firmware
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/broadcom/bnx2.ko
+ KCONFIG:=CONFIG_BNX2
+ AUTOLOAD:=$(call AutoProbe,bnx2)
+endef
+
+define KernelPackage/bnx2/description
+ Kernel module for the BCM5706/5708/5709/5716 ethernet adapter
+endef
+
+$(eval $(call KernelPackage,bnx2))
+
+
+define KernelPackage/bnx2x
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=QLogic 5771x/578xx 10/20-Gigabit ethernet adapter driver
+ DEPENDS:=@PCI_SUPPORT +bnx2x-firmware +kmod-lib-crc32c +kmod-mdio +kmod-ptp +kmod-lib-zlib-inflate
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
+ KCONFIG:= \
+ CONFIG_BNX2X \
+ CONFIG_BNX2X_SRIOV=y
+ AUTOLOAD:=$(call AutoProbe,bnx2x)
+endef
+
+define KernelPackage/bnx2x/description
+ QLogic BCM57710/57711/57711E/57712/57712_MF/57800/57800_MF/57810/57810_MF/57840/57840_MF Driver
+endef
+
+$(eval $(call KernelPackage,bnx2x))
+
+define KernelPackage/bnxt-en
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=BCM 574xx/575xx 10/25/50-Gigabit ethernet adapter driver
+ DEPENDS:=@PCI_SUPPORT +kmod-lib-crc32c +kmod-mdio +kmod-ptp +kmod-lib-zlib-inflate +kmod-hwmon-core
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/broadcom/bnxt/bnxt_en.ko
+ KCONFIG:= \
+ CONFIG_BNXT \
+ CONFIG_BNXT_SRIOV=y \
+ CONFIG_BNXT_FLOWER_OFFLOAD=y \
+ CONFIG_BNXT_DCB=n \
+ CONFIG_BNXT_HWMON=y
+ AUTOLOAD:=$(call AutoProbe,bnxt_en)
+endef
+
+define KernelPackage/bnxt-en/description
+ Broadcom 573xx/574xx/575xx 10/25/40/50-Gigabit ethernet adapter Driver
+endef
+
+$(eval $(call KernelPackage,bnxt-en))
+
+define KernelPackage/be2net
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Broadcom Emulex OneConnect 10Gbps NIC
+ DEPENDS:=@PCI_SUPPORT +kmod-hwmon-core
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/emulex/benet/be2net.ko
+ KCONFIG:= \
+ CONFIG_BE2NET \
+ CONFIG_BE2NET_BE2=y \
+ CONFIG_BE2NET_BE3=y \
+ CONFIG_BE2NET_LANCER=y \
+ CONFIG_BE2NET_SKYHAWK=y \
+ CONFIG_BE2NET_HWMON=y
+ AUTOLOAD:=$(call AutoProbe,be2net)
+endef
+
+define KernelPackage/be2net/description
+ Broadcom Emulex OneConnect 10Gbit SFP+ support, OneConnect OCe10xxx OCe11xxx OCe14xxx, LightPulse LPe12xxx
+endef
+
+$(eval $(call KernelPackage,be2net))
+
+define KernelPackage/mlx4-core
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Mellanox ConnectX(R) mlx4 core Network Driver
+ DEPENDS:=@PCI_SUPPORT +kmod-ptp
+ FILES:= \
+ $(LINUX_DIR)/drivers/net/ethernet/mellanox/mlx4/mlx4_core.ko \
+ $(LINUX_DIR)/drivers/net/ethernet/mellanox/mlx4/mlx4_en.ko
+ KCONFIG:= CONFIG_MLX4_EN \
+ CONFIG_MLX4_EN_DCB=n \
+ CONFIG_MLX4_CORE=y \
+ CONFIG_MLX4_CORE_GEN2=y \
+ CONFIG_MLX4_DEBUG=n
+ AUTOLOAD:=$(call AutoProbe,mlx4_core mlx4_en)
+endef
+
+define KernelPackage/mlx4-core/description
+ Supports Mellanox ConnectX-3 series and previous cards
+endef
+
+$(eval $(call KernelPackage,mlx4-core))
+
+define KernelPackage/mlx5-core
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Mellanox ConnectX(R) mlx5 core Network Driver
+ DEPENDS:=@PCI_SUPPORT +kmod-ptp +kmod-mlxfw +LINUX_6_6:kmod-hwmon-core
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko
+ KCONFIG:= CONFIG_MLX5_CORE \
+ CONFIG_MLX5_CORE_EN=y \
+ CONFIG_MLX5_CORE_EN_DCB=n \
+ CONFIG_MLX5_CORE_IPOIB=n \
+ CONFIG_MLX5_EN_ARFS=n \
+ CONFIG_MLX5_EN_IPSEC=n \
+ CONFIG_MLX5_EN_RXNFC=y \
+ CONFIG_MLX5_EN_TLS=n \
+ CONFIG_MLX5_ESWITCH=n \
+ CONFIG_MLX5_FPGA=n \
+ CONFIG_MLX5_FPGA_IPSEC=n \
+ CONFIG_MLX5_FPGA_TLS=n \
+ CONFIG_MLX5_MPFS=y \
+ CONFIG_MLX5_SW_STEERING=n \
+ CONFIG_MLX5_TC_CT=n \
+ CONFIG_MLX5_TLS=n \
+ CONFIG_MLX5_VFIO_PCI=n
+ AUTOLOAD:=$(call AutoProbe,mlx5_core)
+endef
+
+define KernelPackage/mlx5-core/description
+ Supports Mellanox Connect-IB/ConnectX-4 series and later cards
+endef
+
+$(eval $(call KernelPackage,mlx5-core))
+
+
+define KernelPackage/mlxfw
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Mellanox Technologies firmware flash module
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/mellanox/mlxfw/mlxfw.ko
+ KCONFIG:=CONFIG_MLXFW
+ AUTOLOAD:=$(call AutoProbe,mlxfw)
+endef
+
+define KernelPackage/mlxfw/description
+ This driver supports Mellanox Technologies Firmware
+ flashing common logic.
+endef
+
+$(eval $(call KernelPackage,mlxfw))
+
+
+define KernelPackage/mlxsw-core
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Mellanox Technologies Switch ASICs support
+ DEPENDS:=+kmod-mlxfw +kmod-hwmon-core
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/mellanox/mlxsw/mlxsw_core.ko
+ KCONFIG:= \
+ CONFIG_MLXSW_CORE \
+ CONFIG_MLXSW_CORE_HWMON=y \
+ CONFIG_MLXSW_CORE_THERMAL=y
+ AUTOLOAD:=$(call AutoProbe,mlxsw_core)
+endef
+
+define KernelPackage/mlxsw-core/description
+ This driver supports Mellanox Technologies Switch ASICs family.
+endef
+
+$(eval $(call KernelPackage,mlxsw-core))
+
+
+define KernelPackage/mlxsw-i2c
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=I2C bus implementation for Mellanox Technologies Switch ASICs
+ DEPENDS:=+kmod-mlxsw-core +kmod-i2c-core
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c.ko
+ KCONFIG:=CONFIG_MLXSW_I2C
+ AUTOLOAD:=$(call AutoProbe,mlxsw_i2c)
+endef
+
+define KernelPackage/mlxsw-i2c/description
+ This is I2C bus implementation for Mellanox Technologies Switch ASICs.
+endef
+
+$(eval $(call KernelPackage,mlxsw-i2c))
+
+
+define KernelPackage/mlxsw-minimal
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Mellanox Technologies minimal I2C support
+ DEPENDS:=+kmod-mlxsw-core +kmod-mlxsw-i2c
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/mellanox/mlxsw/mlxsw_minimal.ko
+ KCONFIG:=CONFIG_MLXSW_MINIMAL
+ AUTOLOAD:=$(call AutoProbe,mlxsw_minimal)
+endef
+
+define KernelPackage/mlxsw-minimal/description
+ This driver supports I2C access for Mellanox Technologies Switch
+ ASICs.
+endef
+
+$(eval $(call KernelPackage,mlxsw-minimal))
+
+
+define KernelPackage/mlxsw-pci
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=PCI bus implementation for Mellanox Technologies Switch ASICs
+ DEPENDS:=@PCI_SUPPORT +kmod-mlxsw-core
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci.ko
+ KCONFIG:=CONFIG_MLXSW_PCI
+ AUTOLOAD:=$(call AutoProbe,mlxsw_pci)
+endef
+
+define KernelPackage/mlxsw-pci/description
+ This is PCI bus implementation for Mellanox Technologies Switch ASICs.
+endef
+
+$(eval $(call KernelPackage,mlxsw-pci))
+
+
+define KernelPackage/mlxsw-spectrum
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Mellanox Technologies Spectrum family support
+ DEPENDS:= \
+ +kmod-mlxsw-core +kmod-mlxsw-pci +kmod-lib-objagg +kmod-lib-parman \
+ +kmod-ip6-tunnel +kmod-ptp +kmod-sched-act-sample +kmod-vxlan
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/mellanox/mlxsw/mlxsw_spectrum.ko
+ KCONFIG:= \
+ CONFIG_MLXSW_SPECTRUM \
+ CONFIG_NET_SWITCHDEV=y \
+ CONFIG_MLXSW_SPECTRUM_DCB=y \
+ CONFIG_DCB=y \
+ CONFIG_AMD_XGBE_DCB=n \
+ CONFIG_IXGBE_DCB=n \
+ CONFIG_I40E_DCB=n \
+ CONFIG_QLCNIC_DCB=n \
+ CONFIG_FSL_DPAA2_ETH_DCB=n \
+ CONFIG_FSL_DPAA2_SWITCH=n
+ AUTOLOAD:=$(call AutoProbe,mlxsw_spectrum)
+endef
+
+define KernelPackage/mlxsw-spectrum/description
+ This driver supports Mellanox Technologies
+ Spectrum/Spectrum-2/Spectrum-3/Spectrum-4 Ethernet Switch ASICs.
+endef
+
+$(eval $(call KernelPackage,mlxsw-spectrum))
+
+
+define KernelPackage/net-selftests
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ DEPENDS:=+kmod-libphy
+ TITLE:=Network generic selftest support
+ KCONFIG:=CONFIG_NET_SELFTESTS
+ FILES:=$(LINUX_DIR)/net/core/selftests.ko
+ AUTOLOAD:=$(call AutoLoad,99,selftests)
+endef
+
+define KernelPackage/net-selftests/description
+ Kernel modules for the generic selftest support
+endef
+
+$(eval $(call KernelPackage,net-selftests))
+
+
+define KernelPackage/qlcnic
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ DEPENDS:=@PCI_SUPPORT +kmod-hwmon-core
+ TITLE:=QLogic QLE8240 and QLE8242 device support
+ KCONFIG:= \
+ CONFIG_QLCNIC \
+ CONFIG_QLCNIC_HWMON=y \
+ CONFIG_QLCNIC_SRIOV=y
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/qlogic/qlcnic/qlcnic.ko
+ AUTOLOAD:=$(call AutoProbe,qlcnic)
+endef
+
+define KernelPackage/qlcnic/description
+ This driver supports QLogic QLE8240 and QLE8242 Converged Ethernet
+ devices.
+endef
+
+$(eval $(call KernelPackage,qlcnic))
+
+define KernelPackage/qede
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ DEPENDS:=@PCI_SUPPORT +kmod-ptp +kmod-lib-crc8 +kmod-lib-zlib-inflate
+ TITLE:=QLogic FastLinQ 10/25/40/100Gb Ethernet NIC device support
+ KCONFIG:= \
+ CONFIG_QED \
+ CONFIG_QED_SRIOV=y \
+ CONFIG_QEDE \
+ CONFIG_QEDF=n \
+ CONFIG_QEDI=n
+ FILES:= \
+ $(LINUX_DIR)/drivers/net/ethernet/qlogic/qed/qed.ko \
+ $(LINUX_DIR)/drivers/net/ethernet/qlogic/qede/qede.ko
+ AUTOLOAD:=$(call AutoProbe,qed qede)
+endef
+
+define KernelPackage/qede/description
+ This driver supports QLogic FastLinQ 25/40/100Gb Ethernet NIC
+ devices.
+endef
+
+$(eval $(call KernelPackage,qede))
+
+
+define KernelPackage/sfp
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=SFP cage support
+ DEPENDS:=+kmod-i2c-core +kmod-hwmon-core +kmod-phylink
+ KCONFIG:= \
+ CONFIG_SFP \
+ CONFIG_MDIO_I2C
+ FILES:= \
+ $(LINUX_DIR)/drivers/net/phy/sfp.ko \
+ $(LINUX_DIR)/drivers/net/phy/mdio-i2c.ko@lt5.10 \
+ $(LINUX_DIR)/drivers/net/mdio/mdio-i2c.ko@ge5.10
+ AUTOLOAD:=$(call AutoProbe,mdio-i2c sfp)
+endef
+
+define KernelPackage/sfp/description
+ Kernel module to support SFP cages
+endef
+
+$(eval $(call KernelPackage,sfp))
+
+define KernelPackage/igc
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Intel(R) Ethernet Controller I225 Series support
+ DEPENDS:=@PCI_SUPPORT +kmod-ptp
+ KCONFIG:=CONFIG_IGC
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/intel/igc/igc.ko
+ AUTOLOAD:=$(call AutoLoad,35,igc)
+endef
+
+define KernelPackage/igc/description
+ Kernel modules for Intel(R) Ethernet Controller I225 Series
+endef
+
+$(eval $(call KernelPackage,igc))
+
+define KernelPackage/ice
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Intel(R) Ethernet Controller E810 Series support
+ DEPENDS:=@PCI_SUPPORT +kmod-ptp
+ KCONFIG:=CONFIG_ICE
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/intel/ice/ice.ko
+ AUTOLOAD:=$(call AutoProbe,ice)
+endef
+
+define KernelPackage/ice/description
+ Kernel modules for Intel(R) Ethernet Controller E810 Series
+endef
+
+$(eval $(call KernelPackage,ice))
+
+define KernelPackage/sfc
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Solarflare SFC9000/SFC9100/EF100-family support
+ DEPENDS:=@PCI_SUPPORT +kmod-mdio +kmod-lib-crc32c +kmod-ptp +kmod-hwmon-core
+ KCONFIG:= \
+ CONFIG_SFC \
+ CONFIG_SFC_MTD=y \
+ CONFIG_SFC_MCDI_MON=y \
+ CONFIG_SFC_MCDI_LOGGING=y \
+ CONFIG_SFC_SRIOV=y
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/sfc/sfc.ko
+ AUTOLOAD:=$(call AutoProbe,sfc)
+endef
+
+define KernelPackage/sfc/description
+ Solarflare SFC9000/SFC9100/EF100-family support
+ Solarflare EF100 support requires at least kernel version 5.9
+endef
+
+$(eval $(call KernelPackage,sfc))
+
+define KernelPackage/sfc-falcon
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Solarflare SFC4000 support
+ DEPENDS:=@PCI_SUPPORT +kmod-mdio +kmod-lib-crc32c +kmod-i2c-algo-bit
+ KCONFIG:= \
+ CONFIG_SFC_FALCON \
+ CONFIG_SFC_FALCON_MTD=y
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/sfc/falcon/sfc-falcon.ko
+ AUTOLOAD:=$(call AutoProbe,sfc-falcon)
+endef
+
+define KernelPackage/sfc-falcon/description
+ Solarflare SFC4000 support
+endef
+
+$(eval $(call KernelPackage,sfc-falcon))
+
+
+define KernelPackage/wwan
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=WWAN Driver Core
+ DEPENDS:=@(LINUX_5_15||LINUX_6_1||LINUX_6_6)
+ KCONFIG:= \
+ CONFIG_WWAN \
+ CONFIG_WWAN_DEBUGFS=y@ge5.17
+ FILES:=$(LINUX_DIR)/drivers/net/wwan/wwan.ko
+ AUTOLOAD:=$(call AutoProbe,wwan)
+endef
+
+define KernelPackage/wwan/description
+ This driver provides a common framework for WWAN drivers.
+endef
+
+$(eval $(call KernelPackage,wwan))
+
+
+define KernelPackage/mhi-net
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=MHI Network Device
+ DEPENDS:=@PCI_SUPPORT +kmod-mhi-bus
+ KCONFIG:=CONFIG_MHI_NET
+ FILES:=$(LINUX_DIR)/drivers/net/mhi_net.ko
+ AUTOLOAD:=$(call AutoProbe,mhi_net)
+endef
+
+define KernelPackage/mhi-net/description
+ Driver for MHI network interface
+endef
+
+$(eval $(call KernelPackage,mhi-net))
+
+define KernelPackage/mhi-wwan-ctrl
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=MHI WWAN Control
+ DEPENDS:=@PCI_SUPPORT +kmod-mhi-bus +kmod-wwan
+ KCONFIG:=CONFIG_MHI_WWAN_CTRL
+ FILES:=$(LINUX_DIR)/drivers/net/wwan/mhi_wwan_ctrl.ko
+ AUTOLOAD:=$(call AutoProbe,mhi_wwan_ctrl)
+endef
+
+define KernelPackage/mhi-wwan-ctrl/description
+ Driver for MHI WWAN Control
+ This exposes all modem control ports like AT, MBIM, QMI, DIAG, ..
+endef
+
+$(eval $(call KernelPackage,mhi-wwan-ctrl))
+
+define KernelPackage/mhi-wwan-mbim
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=MHI MBIM
+ DEPENDS:=@PCI_SUPPORT +kmod-mhi-bus +kmod-wwan
+ KCONFIG:=CONFIG_MHI_WWAN_MBIM
+ FILES:=$(LINUX_DIR)/drivers/net/wwan/mhi_wwan_mbim.ko
+ AUTOLOAD:=$(call AutoProbe,mhi_wwan_mbim)
+endef
+
+define KernelPackage/mhi-wwan-mbim/description
+ Driver for MHI MBIM
+ This implements MBIM over MHI
+endef
+
+$(eval $(call KernelPackage,mhi-wwan-mbim))
+
+
+define KernelPackage/mtk-t7xx
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=MediaTek T7xx 5G modem
+ DEPENDS:=@(LINUX_6_1||LINUX_6_6) @PCI_SUPPORT +kmod-wwan
+ KCONFIG:=CONFIG_MTK_T7XX
+ FILES:=$(LINUX_DIR)/drivers/net/wwan/t7xx/mtk_t7xx.ko
+ AUTOLOAD:=$(call AutoProbe,mtk_t7xx)
+endef
+
+define KernelPackage/mtk-t7xx/description
+ Driver for MediaTek PCIe 5G WWAN modem T7xx device
+endef
+
+$(eval $(call KernelPackage,mtk-t7xx))
+
+
+define KernelPackage/atlantic
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Aquantia AQtion 10Gbps Ethernet NIC
+ DEPENDS:=@PCI_SUPPORT +kmod-ptp +kmod-hwmon-core +kmod-macsec
+ KCONFIG:=CONFIG_AQTION
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/aquantia/atlantic/atlantic.ko
+ AUTOLOAD:=$(call AutoLoad,36,atlantic)
+endef
+
+define KernelPackage/atlantic/description
+ Kernel modules for Aquantia AQtion 10Gbps Ethernet NIC
+endef
+
+$(eval $(call KernelPackage,atlantic))
+
+define KernelPackage/amazon-ena
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Elastic Network Adapter (for Amazon AWS)
+ DEPENDS:=@TARGET_x86_64||TARGET_armvirt_64
+ KCONFIG:=CONFIG_ENA_ETHERNET
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/amazon/ena/ena.ko
+ AUTOLOAD:=$(call AutoLoad,12,ena)
+endef
+
+define KernelPackage/amazon-ena/description
+ This driver supports Elastic Network Adapter (ENA)
+ used by Amazon AWS T3 (2018) and later instances.
+endef
+
+$(eval $(call KernelPackage,amazon-ena))
+
+define KernelPackage/lan743x
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Microchip LAN743x PCI Express Gigabit Ethernet NIC
+ DEPENDS:=@PCI_SUPPORT +kmod-ptp \
+ +!LINUX_5_4:kmod-mdio-devres +LINUX_6_6:kmod-fixed-phy
+ KCONFIG:=CONFIG_LAN743X
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/microchip/lan743x.ko
+ AUTOLOAD:=$(call AutoProbe,lan743x)
+endef
+
+define KernelPackage/lan743x/description
+ Kernel module for Microchip LAN743x PCI Express Gigabit Ethernet NIC
+endef
+
+$(eval $(call KernelPackage,lan743x))
+
diff --git a/package/kernel/linux/modules/netfilter.mk b/package/kernel/linux/modules/netfilter.mk
new file mode 100644
index 0000000..f52974b
--- /dev/null
+++ b/package/kernel/linux/modules/netfilter.mk
@@ -0,0 +1,1397 @@
+
+#
+# Copyright (C) 2006-2023 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+NF_MENU:=Netfilter Extensions
+NF_KMOD:=1
+include $(INCLUDE_DIR)/netfilter.mk
+
+
+define KernelPackage/nf-reject
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter IPv4 reject support
+ KCONFIG:= \
+ CONFIG_NETFILTER=y \
+ CONFIG_NETFILTER_ADVANCED=y \
+ $(KCONFIG_NF_REJECT)
+ FILES:=$(foreach mod,$(NF_REJECT-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_REJECT-m)))
+endef
+
+$(eval $(call KernelPackage,nf-reject))
+
+
+define KernelPackage/nf-reject6
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter IPv6 reject support
+ KCONFIG:= \
+ CONFIG_NETFILTER=y \
+ CONFIG_NETFILTER_ADVANCED=y \
+ $(KCONFIG_NF_REJECT6)
+ DEPENDS:=@IPV6
+ FILES:=$(foreach mod,$(NF_REJECT6-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_REJECT6-m)))
+endef
+
+$(eval $(call KernelPackage,nf-reject6))
+
+define KernelPackage/nf-conncount
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter conncount support
+ KCONFIG:=$(KCONFIG_NF_CONNCOUNT)
+ HIDDEN:=1
+ DEPENDS:=+kmod-nf-conntrack
+ FILES:=$(foreach mod,$(NF_CONNCOUNT-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_CONNCOUNT-m)))
+endef
+
+$(eval $(call KernelPackage,nf-conncount))
+
+define KernelPackage/nf-ipt
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Iptables core
+ KCONFIG:=$(KCONFIG_NF_IPT)
+ FILES:=$(foreach mod,$(NF_IPT-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_IPT-m)))
+endef
+
+$(eval $(call KernelPackage,nf-ipt))
+
+
+define KernelPackage/nf-ipt6
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Ip6tables core
+ KCONFIG:=$(KCONFIG_NF_IPT6)
+ FILES:=$(foreach mod,$(NF_IPT6-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_IPT6-m)))
+ DEPENDS:=+kmod-nf-ipt +kmod-nf-log6
+endef
+
+$(eval $(call KernelPackage,nf-ipt6))
+
+
+
+define KernelPackage/ipt-core
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Iptables core
+ KCONFIG:=$(KCONFIG_IPT_CORE)
+ FILES:=$(foreach mod,$(IPT_CORE-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CORE-m)))
+ DEPENDS:=+kmod-nf-reject +kmod-nf-ipt +kmod-nf-log
+endef
+
+define KernelPackage/ipt-core/description
+ Netfilter core kernel modules
+ Includes:
+ - comment
+ - limit
+ - LOG
+ - mac
+ - multiport
+ - REJECT
+ - TCPMSS
+endef
+
+$(eval $(call KernelPackage,ipt-core))
+
+
+define KernelPackage/nf-conntrack
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter connection tracking
+ KCONFIG:= \
+ CONFIG_NETFILTER=y \
+ CONFIG_NETFILTER_ADVANCED=y \
+ CONFIG_NF_CONNTRACK_MARK=y \
+ CONFIG_NF_CONNTRACK_ZONES=y \
+ $(KCONFIG_NF_CONNTRACK)
+ FILES:=$(foreach mod,$(NF_CONNTRACK-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_CONNTRACK-m)))
+endef
+
+define KernelPackage/nf-conntrack/install
+ $(INSTALL_DIR) $(1)/etc/sysctl.d
+ $(INSTALL_DATA) ./files/sysctl-nf-conntrack.conf $(1)/etc/sysctl.d/11-nf-conntrack.conf
+endef
+
+$(eval $(call KernelPackage,nf-conntrack))
+
+
+define KernelPackage/nf-conntrack6
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter IPv6 connection tracking
+ KCONFIG:=$(KCONFIG_NF_CONNTRACK6)
+ DEPENDS:=@IPV6 +kmod-nf-conntrack
+ FILES:=$(foreach mod,$(NF_CONNTRACK6-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_CONNTRACK6-m)))
+endef
+
+$(eval $(call KernelPackage,nf-conntrack6))
+
+
+define KernelPackage/nf-dup-inet
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter nf_tables dup in ip/ip6/inet family support
+ HIDDEN:=1
+ DEPENDS:=+kmod-nf-conntrack +IPV6:kmod-nf-conntrack6
+ KCONFIG:= \
+ CONFIG_NF_DUP_IPV4 \
+ CONFIG_NF_DUP_IPV6
+ FILES:= \
+ $(LINUX_DIR)/net/ipv4/netfilter/nf_dup_ipv4.ko \
+ $(LINUX_DIR)/net/ipv6/netfilter/nf_dup_ipv6.ko
+endef
+
+$(eval $(call KernelPackage,nf-dup-inet))
+
+
+define KernelPackage/nf-log
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter Logging
+ KCONFIG:=$(KCONFIG_NF_LOG)
+ FILES:=$(foreach mod,$(NF_LOG-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_LOG-m)))
+endef
+
+$(eval $(call KernelPackage,nf-log))
+
+
+define KernelPackage/nf-log6
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter IPV6 Logging
+ KCONFIG:=$(KCONFIG_NF_LOG6)
+ DEPENDS:=@IPV6 +kmod-nf-log
+ FILES:=$(foreach mod,$(NF_LOG6-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_LOG6-m)))
+endef
+
+$(eval $(call KernelPackage,nf-log6))
+
+
+define KernelPackage/nf-nat
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter NAT
+ KCONFIG:=$(KCONFIG_NF_NAT)
+ DEPENDS:=+kmod-nf-conntrack
+ FILES:=$(foreach mod,$(NF_NAT-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_NAT-m)))
+endef
+
+$(eval $(call KernelPackage,nf-nat))
+
+
+define KernelPackage/nf-nat6
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter IPV6-NAT
+ KCONFIG:=$(KCONFIG_NF_NAT6)
+ DEPENDS:=@IPV6 +kmod-nf-conntrack6 +kmod-nf-nat
+ FILES:=$(foreach mod,$(NF_NAT6-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_NAT6-m)))
+endef
+
+$(eval $(call KernelPackage,nf-nat6))
+
+
+define KernelPackage/nf-flow
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter flowtable support
+ KCONFIG:= \
+ CONFIG_NETFILTER_INGRESS=y \
+ CONFIG_NF_FLOW_TABLE \
+ CONFIG_NF_FLOW_TABLE_HW
+ DEPENDS:=+kmod-nf-conntrack
+ FILES:= \
+ $(LINUX_DIR)/net/netfilter/nf_flow_table.ko \
+ $(LINUX_DIR)/net/netfilter/nf_flow_table_hw.ko@lt5.8
+ AUTOLOAD:=$(call AutoProbe,nf_flow_table nf_flow_table_hw)
+endef
+
+$(eval $(call KernelPackage,nf-flow))
+
+
+define KernelPackage/nf-socket
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter socket lookup support
+ KCONFIG:= $(KCONFIG_NF_SOCKET)
+ FILES:=$(foreach mod,$(NF_SOCKET-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_SOCKET-m)))
+endef
+
+$(eval $(call KernelPackage,nf-socket))
+
+
+define KernelPackage/nf-tproxy
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter tproxy support
+ KCONFIG:= $(KCONFIG_NF_TPROXY)
+ FILES:=$(foreach mod,$(NF_TPROXY-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_TPROXY-m)))
+endef
+
+$(eval $(call KernelPackage,nf-tproxy))
+
+
+define AddDepends/ipt
+ SUBMENU:=$(NF_MENU)
+ DEPENDS+= +kmod-ipt-core $(1)
+endef
+
+
+define KernelPackage/ipt-conntrack
+ TITLE:=Basic connection tracking modules
+ KCONFIG:=$(KCONFIG_IPT_CONNTRACK)
+ FILES:=$(foreach mod,$(IPT_CONNTRACK-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CONNTRACK-m)))
+ $(call AddDepends/ipt,+kmod-nf-conntrack)
+endef
+
+define KernelPackage/ipt-conntrack/description
+ Netfilter (IPv4) kernel modules for connection tracking
+ Includes:
+ - conntrack
+ - defrag
+ - iptables_raw
+ - NOTRACK
+ - state
+endef
+
+$(eval $(call KernelPackage,ipt-conntrack))
+
+
+define KernelPackage/ipt-conntrack-extra
+ TITLE:=Extra connection tracking modules
+ DEPENDS:=+kmod-nf-conncount
+ KCONFIG:=$(KCONFIG_IPT_CONNTRACK_EXTRA)
+ FILES:=$(foreach mod,$(IPT_CONNTRACK_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CONNTRACK_EXTRA-m)))
+ $(call AddDepends/ipt,+kmod-ipt-conntrack)
+endef
+
+define KernelPackage/ipt-conntrack-extra/description
+ Netfilter (IPv4) extra kernel modules for connection tracking
+ Includes:
+ - connbytes
+ - connmark/CONNMARK
+ - conntrack
+ - helper
+ - recent
+endef
+
+$(eval $(call KernelPackage,ipt-conntrack-extra))
+
+define KernelPackage/ipt-conntrack-label
+ TITLE:=Module for handling connection tracking labels
+ KCONFIG:=$(KCONFIG_IPT_CONNTRACK_LABEL)
+ FILES:=$(foreach mod,$(IPT_CONNTRACK_LABEL-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CONNTRACK_LABEL-m)))
+ $(call AddDepends/ipt,+kmod-ipt-conntrack)
+endef
+
+define KernelPackage/ipt-conntrack-label/description
+ Netfilter (IPv4) module for handling connection tracking labels
+ Includes:
+ - connlabel
+endef
+
+$(eval $(call KernelPackage,ipt-conntrack-label))
+
+define KernelPackage/ipt-filter
+ TITLE:=Modules for packet content inspection
+ KCONFIG:=$(KCONFIG_IPT_FILTER)
+ FILES:=$(foreach mod,$(IPT_FILTER-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_FILTER-m)))
+ $(call AddDepends/ipt,+kmod-lib-textsearch +kmod-ipt-conntrack)
+endef
+
+define KernelPackage/ipt-filter/description
+ Netfilter (IPv4) kernel modules for packet content inspection
+ Includes:
+ - string
+ - bpf
+endef
+
+$(eval $(call KernelPackage,ipt-filter))
+
+
+define KernelPackage/ipt-offload
+ TITLE:=Netfilter routing/NAT offload support
+ KCONFIG:=$(KCONFIG_IPT_FLOW)
+ FILES:=$(foreach mod,$(IPT_FLOW-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_FLOW-m)))
+ $(call AddDepends/ipt,+kmod-nf-flow)
+endef
+
+$(eval $(call KernelPackage,ipt-offload))
+
+
+define KernelPackage/ipt-ipopt
+ TITLE:=Modules for matching/changing IP packet options
+ KCONFIG:=$(KCONFIG_IPT_IPOPT)
+ FILES:=$(foreach mod,$(IPT_IPOPT-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_IPOPT-m)))
+ $(call AddDepends/ipt)
+endef
+
+define KernelPackage/ipt-ipopt/description
+ Netfilter (IPv4) modules for matching/changing IP packet options
+ Includes:
+ - CLASSIFY
+ - dscp/DSCP
+ - ecn/ECN
+ - hl/HL
+ - length
+ - mark/MARK
+ - statistic
+ - tcpmss
+ - time
+ - ttl/TTL
+ - unclean
+endef
+
+$(eval $(call KernelPackage,ipt-ipopt))
+
+
+define KernelPackage/ipt-ipsec
+ TITLE:=Modules for matching IPSec packets
+ KCONFIG:=$(KCONFIG_IPT_IPSEC)
+ FILES:=$(foreach mod,$(IPT_IPSEC-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_IPSEC-m)))
+ $(call AddDepends/ipt)
+endef
+
+define KernelPackage/ipt-ipsec/description
+ Netfilter (IPv4) modules for matching IPSec packets
+ Includes:
+ - ah
+ - esp
+ - policy
+endef
+
+$(eval $(call KernelPackage,ipt-ipsec))
+
+IPSET_MODULES:= \
+ ipset/ip_set \
+ ipset/ip_set_bitmap_ip \
+ ipset/ip_set_bitmap_ipmac \
+ ipset/ip_set_bitmap_port \
+ ipset/ip_set_hash_ip \
+ ipset/ip_set_hash_ipmac \
+ ipset/ip_set_hash_ipmark \
+ ipset/ip_set_hash_ipport \
+ ipset/ip_set_hash_ipportip \
+ ipset/ip_set_hash_ipportnet \
+ ipset/ip_set_hash_mac \
+ ipset/ip_set_hash_netportnet \
+ ipset/ip_set_hash_net \
+ ipset/ip_set_hash_netnet \
+ ipset/ip_set_hash_netport \
+ ipset/ip_set_hash_netiface \
+ ipset/ip_set_list_set \
+ xt_set
+
+define KernelPackage/ipt-ipset
+ SUBMENU:=Netfilter Extensions
+ TITLE:=IPset netfilter modules
+ DEPENDS+= +kmod-ipt-core +kmod-nfnetlink
+ KCONFIG:= \
+ CONFIG_IP_SET \
+ CONFIG_IP_SET_MAX=256 \
+ CONFIG_NETFILTER_XT_SET \
+ CONFIG_IP_SET_BITMAP_IP \
+ CONFIG_IP_SET_BITMAP_IPMAC \
+ CONFIG_IP_SET_BITMAP_PORT \
+ CONFIG_IP_SET_HASH_IP \
+ CONFIG_IP_SET_HASH_IPMAC \
+ CONFIG_IP_SET_HASH_IPMARK \
+ CONFIG_IP_SET_HASH_IPPORT \
+ CONFIG_IP_SET_HASH_IPPORTIP \
+ CONFIG_IP_SET_HASH_IPPORTNET \
+ CONFIG_IP_SET_HASH_MAC \
+ CONFIG_IP_SET_HASH_NET \
+ CONFIG_IP_SET_HASH_NETNET \
+ CONFIG_IP_SET_HASH_NETIFACE \
+ CONFIG_IP_SET_HASH_NETPORT \
+ CONFIG_IP_SET_HASH_NETPORTNET \
+ CONFIG_IP_SET_LIST_SET \
+ CONFIG_NET_EMATCH_IPSET=n
+ FILES:=$(foreach mod,$(IPSET_MODULES),$(LINUX_DIR)/net/netfilter/$(mod).ko)
+ AUTOLOAD:=$(call AutoLoad,49,$(notdir $(IPSET_MODULES)))
+endef
+$(eval $(call KernelPackage,ipt-ipset))
+
+
+IPVS_MODULES:= \
+ ipvs/ip_vs \
+ ipvs/ip_vs_lc \
+ ipvs/ip_vs_wlc \
+ ipvs/ip_vs_rr \
+ ipvs/ip_vs_wrr \
+ ipvs/ip_vs_lblc \
+ ipvs/ip_vs_lblcr \
+ ipvs/ip_vs_dh \
+ ipvs/ip_vs_sh \
+ ipvs/ip_vs_fo \
+ ipvs/ip_vs_ovf \
+ ipvs/ip_vs_nq \
+ ipvs/ip_vs_sed \
+ xt_ipvs
+
+define KernelPackage/nf-ipvs
+ SUBMENU:=Netfilter Extensions
+ TITLE:=IP Virtual Server modules
+ DEPENDS:=@IPV6 +kmod-lib-crc32c +kmod-ipt-conntrack +kmod-nf-conntrack
+ KCONFIG:= \
+ CONFIG_IP_VS \
+ CONFIG_IP_VS_IPV6=y \
+ CONFIG_IP_VS_DEBUG=n \
+ CONFIG_IP_VS_PROTO_TCP=y \
+ CONFIG_IP_VS_PROTO_UDP=y \
+ CONFIG_IP_VS_PROTO_AH_ESP=y \
+ CONFIG_IP_VS_PROTO_ESP=y \
+ CONFIG_IP_VS_PROTO_AH=y \
+ CONFIG_IP_VS_PROTO_SCTP=y \
+ CONFIG_IP_VS_TAB_BITS=12 \
+ CONFIG_IP_VS_RR \
+ CONFIG_IP_VS_WRR \
+ CONFIG_IP_VS_LC \
+ CONFIG_IP_VS_WLC \
+ CONFIG_IP_VS_FO \
+ CONFIG_IP_VS_OVF \
+ CONFIG_IP_VS_LBLC \
+ CONFIG_IP_VS_LBLCR \
+ CONFIG_IP_VS_DH \
+ CONFIG_IP_VS_SH \
+ CONFIG_IP_VS_SED \
+ CONFIG_IP_VS_NQ \
+ CONFIG_IP_VS_SH_TAB_BITS=8 \
+ CONFIG_IP_VS_NFCT=y \
+ CONFIG_NETFILTER_XT_MATCH_IPVS
+ FILES:=$(foreach mod,$(IPVS_MODULES),$(LINUX_DIR)/net/netfilter/$(mod).ko)
+ $(call AddDepends/ipt,+kmod-ipt-conntrack,+kmod-nf-conntrack)
+endef
+
+define KernelPackage/nf-ipvs/description
+ IPVS (IP Virtual Server) implements transport-layer load balancing inside
+ the Linux kernel so called Layer-4 switching.
+endef
+
+$(eval $(call KernelPackage,nf-ipvs))
+
+
+define KernelPackage/nf-ipvs-ftp
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Virtual Server FTP protocol support
+ KCONFIG:=CONFIG_IP_VS_FTP
+ DEPENDS:=kmod-nf-ipvs +kmod-nf-nat +kmod-nf-nathelper
+ FILES:=$(LINUX_DIR)/net/netfilter/ipvs/ip_vs_ftp.ko
+endef
+
+define KernelPackage/nf-ipvs-ftp/description
+ In the virtual server via Network Address Translation,
+ the IP address and port number of real servers cannot be sent to
+ clients in ftp connections directly, so FTP protocol helper is
+ required for tracking the connection and mangling it back to that of
+ virtual service.
+endef
+
+$(eval $(call KernelPackage,nf-ipvs-ftp))
+
+
+define KernelPackage/nf-ipvs-sip
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Virtual Server SIP protocol support
+ KCONFIG:=CONFIG_IP_VS_PE_SIP
+ DEPENDS:=kmod-nf-ipvs +kmod-nf-nathelper-extra
+ FILES:=$(LINUX_DIR)/net/netfilter/ipvs/ip_vs_pe_sip.ko
+endef
+
+define KernelPackage/nf-ipvs-sip/description
+ Allow persistence based on the SIP Call-ID
+endef
+
+$(eval $(call KernelPackage,nf-ipvs-sip))
+
+
+define KernelPackage/ipt-nat
+ TITLE:=Basic NAT targets
+ KCONFIG:=$(KCONFIG_IPT_NAT)
+ FILES:=$(foreach mod,$(IPT_NAT-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_NAT-m)))
+ $(call AddDepends/ipt,+kmod-nf-nat)
+endef
+
+define KernelPackage/ipt-nat/description
+ Netfilter (IPv4) kernel modules for basic NAT targets
+ Includes:
+ - MASQUERADE
+endef
+
+$(eval $(call KernelPackage,ipt-nat))
+
+
+define KernelPackage/ipt-raw
+ TITLE:=Netfilter IPv4 raw table support
+ KCONFIG:=CONFIG_IP_NF_RAW
+ FILES:=$(LINUX_DIR)/net/ipv4/netfilter/iptable_raw.ko
+ AUTOLOAD:=$(call AutoProbe,iptable_raw)
+ $(call AddDepends/ipt)
+endef
+
+$(eval $(call KernelPackage,ipt-raw))
+
+
+define KernelPackage/ipt-raw6
+ TITLE:=Netfilter IPv6 raw table support
+ DEPENDS:=@IPV6
+ KCONFIG:=CONFIG_IP6_NF_RAW
+ FILES:=$(LINUX_DIR)/net/ipv6/netfilter/ip6table_raw.ko
+ AUTOLOAD:=$(call AutoProbe,ip6table_raw)
+ $(call AddDepends/ipt,+kmod-ip6tables)
+endef
+
+$(eval $(call KernelPackage,ipt-raw6))
+
+
+define KernelPackage/ipt-nat6
+ TITLE:=IPv6 NAT targets
+ DEPENDS:=@IPV6
+ KCONFIG:=$(KCONFIG_IPT_NAT6)
+ FILES:=$(foreach mod,$(IPT_NAT6-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoLoad,43,$(notdir $(IPT_NAT6-m)))
+ $(call AddDepends/ipt,+kmod-nf-nat6)
+ $(call AddDepends/ipt,+kmod-ipt-conntrack)
+ $(call AddDepends/ipt,+kmod-ipt-nat)
+ $(call AddDepends/ipt,+kmod-ip6tables)
+endef
+
+define KernelPackage/ipt-nat6/description
+ Netfilter (IPv6) kernel modules for NAT targets
+endef
+
+$(eval $(call KernelPackage,ipt-nat6))
+
+
+define KernelPackage/ipt-nat-extra
+ TITLE:=Extra NAT targets
+ KCONFIG:=$(KCONFIG_IPT_NAT_EXTRA)
+ FILES:=$(foreach mod,$(IPT_NAT_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_NAT_EXTRA-m)))
+ $(call AddDepends/ipt,+kmod-ipt-nat)
+endef
+
+define KernelPackage/ipt-nat-extra/description
+ Netfilter (IPv4) kernel modules for extra NAT targets
+ Includes:
+ - NETMAP
+ - REDIRECT
+endef
+
+$(eval $(call KernelPackage,ipt-nat-extra))
+
+
+define KernelPackage/nf-nathelper
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Basic Conntrack and NAT helpers
+ KCONFIG:=$(KCONFIG_NF_NATHELPER)
+ FILES:=$(foreach mod,$(NF_NATHELPER-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_NATHELPER-m)))
+ DEPENDS:=+kmod-nf-nat
+endef
+
+define KernelPackage/nf-nathelper/description
+ Default Netfilter (IPv4) Conntrack and NAT helpers
+ Includes:
+ - ftp
+endef
+
+$(eval $(call KernelPackage,nf-nathelper))
+
+
+define KernelPackage/nf-nathelper-extra
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Extra Conntrack and NAT helpers
+ KCONFIG:=$(KCONFIG_NF_NATHELPER_EXTRA)
+ FILES:=$(foreach mod,$(NF_NATHELPER_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_NATHELPER_EXTRA-m)))
+ DEPENDS:=+kmod-nf-nat +kmod-lib-textsearch +kmod-asn1-decoder
+endef
+
+define KernelPackage/nf-nathelper-extra/description
+ Extra Netfilter (IPv4) Conntrack and NAT helpers
+ Includes:
+ - amanda
+ - h323
+ - irc
+ - mms
+ - pptp
+ - proto_gre
+ - sip
+ - snmp_basic
+ - tftp
+ - broadcast
+endef
+
+$(eval $(call KernelPackage,nf-nathelper-extra))
+
+
+define KernelPackage/ipt-nflog
+ TITLE:=Module for user-space packet logging
+ KCONFIG:=$(KCONFIG_IPT_NFLOG)
+ FILES:=$(foreach mod,$(IPT_NFLOG-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_NFLOG-m)))
+ $(call AddDepends/ipt,+kmod-nfnetlink-log)
+endef
+
+define KernelPackage/ipt-nflog/description
+ Netfilter module for user-space packet logging
+ Includes:
+ - NFLOG
+endef
+
+$(eval $(call KernelPackage,ipt-nflog))
+
+
+define KernelPackage/ipt-nfqueue
+ TITLE:=Module for user-space packet queuing
+ KCONFIG:=$(KCONFIG_IPT_NFQUEUE)
+ FILES:=$(foreach mod,$(IPT_NFQUEUE-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_NFQUEUE-m)))
+ $(call AddDepends/ipt,+kmod-nfnetlink-queue)
+endef
+
+define KernelPackage/ipt-nfqueue/description
+ Netfilter module for user-space packet queuing
+ Includes:
+ - NFQUEUE
+endef
+
+$(eval $(call KernelPackage,ipt-nfqueue))
+
+
+define KernelPackage/ipt-debug
+ TITLE:=Module for debugging/development
+ KCONFIG:=$(KCONFIG_IPT_DEBUG)
+ FILES:=$(foreach mod,$(IPT_DEBUG-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_DEBUG-m)))
+ $(call AddDepends/ipt,+kmod-ipt-raw +IPV6:kmod-ipt-raw6)
+endef
+
+define KernelPackage/ipt-debug/description
+ Netfilter modules for debugging/development of the firewall
+ Includes:
+ - TRACE
+endef
+
+$(eval $(call KernelPackage,ipt-debug))
+
+
+define KernelPackage/ipt-led
+ TITLE:=Module to trigger a LED with a Netfilter rule
+ KCONFIG:=$(KCONFIG_IPT_LED)
+ FILES:=$(foreach mod,$(IPT_LED-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_LED-m)))
+ $(call AddDepends/ipt)
+endef
+
+define KernelPackage/ipt-led/description
+ Netfilter target to trigger a LED when a network packet is matched.
+endef
+
+$(eval $(call KernelPackage,ipt-led))
+
+define KernelPackage/ipt-socket
+ TITLE:=Iptables socket matching support
+ DEPENDS+=+kmod-nf-socket +kmod-nf-conntrack
+ KCONFIG:=$(KCONFIG_IPT_SOCKET)
+ FILES:=$(foreach mod,$(IPT_SOCKET-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_SOCKET-m)))
+ $(call AddDepends/ipt)
+endef
+
+define KernelPackage/ipt-socket/description
+ Kernel modules for socket matching
+endef
+
+$(eval $(call KernelPackage,ipt-socket))
+
+define KernelPackage/ipt-tproxy
+ TITLE:=Transparent proxying support
+ DEPENDS+=+kmod-nf-tproxy +kmod-nf-conntrack
+ KCONFIG:=$(KCONFIG_IPT_TPROXY)
+ FILES:=$(foreach mod,$(IPT_TPROXY-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_TPROXY-m)))
+ $(call AddDepends/ipt)
+endef
+
+define KernelPackage/ipt-tproxy/description
+ Kernel modules for Transparent Proxying
+endef
+
+$(eval $(call KernelPackage,ipt-tproxy))
+
+define KernelPackage/ipt-tee
+ TITLE:=TEE support
+ DEPENDS:=+kmod-ipt-conntrack +kmod-nf-dup-inet
+ KCONFIG:=$(KCONFIG_IPT_TEE)
+ FILES:=$(foreach mod,$(IPT_TEE-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir nf_tee $(IPT_TEE-m)))
+ $(call AddDepends/ipt)
+endef
+
+define KernelPackage/ipt-tee/description
+ Kernel modules for TEE
+endef
+
+$(eval $(call KernelPackage,ipt-tee))
+
+
+define KernelPackage/ipt-u32
+ TITLE:=U32 support
+ KCONFIG:=$(KCONFIG_IPT_U32)
+ FILES:=$(foreach mod,$(IPT_U32-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir nf_tee $(IPT_U32-m)))
+ $(call AddDepends/ipt)
+endef
+
+define KernelPackage/ipt-u32/description
+ Kernel modules for U32
+endef
+
+$(eval $(call KernelPackage,ipt-u32))
+
+define KernelPackage/ipt-checksum
+ TITLE:=CHECKSUM support
+ KCONFIG:=$(KCONFIG_IPT_CHECKSUM)
+ FILES:=$(foreach mod,$(IPT_CHECKSUM-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CHECKSUM-m)))
+ $(call AddDepends/ipt)
+endef
+
+define KernelPackage/ipt-checksum/description
+ Kernel modules for CHECKSUM fillin target
+endef
+
+$(eval $(call KernelPackage,ipt-checksum))
+
+
+define KernelPackage/ipt-iprange
+ TITLE:=Module for matching ip ranges
+ KCONFIG:=$(KCONFIG_IPT_IPRANGE)
+ FILES:=$(foreach mod,$(IPT_IPRANGE-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_IPRANGE-m)))
+ $(call AddDepends/ipt)
+endef
+
+define KernelPackage/ipt-iprange/description
+ Netfilter (IPv4) module for matching ip ranges
+ Includes:
+ - iprange
+endef
+
+$(eval $(call KernelPackage,ipt-iprange))
+
+define KernelPackage/ipt-cluster
+ TITLE:=Module for matching cluster
+ KCONFIG:=$(KCONFIG_IPT_CLUSTER)
+ FILES:=$(foreach mod,$(IPT_CLUSTER-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CLUSTER-m)))
+ $(call AddDepends/ipt,+kmod-nf-conntrack)
+endef
+
+define KernelPackage/ipt-cluster/description
+ Netfilter (IPv4/IPv6) module for matching cluster
+ This option allows you to build work-load-sharing clusters of
+ network servers/stateful firewalls without having a dedicated
+ load-balancing router/server/switch. Basically, this match returns
+ true when the packet must be handled by this cluster node. Thus,
+ all nodes see all packets and this match decides which node handles
+ what packets. The work-load sharing algorithm is based on source
+ address hashing.
+
+ This module is usable for ipv4 and ipv6.
+
+ To use it also enable iptables-mod-cluster
+
+ see `iptables -m cluster --help` for more information.
+endef
+
+$(eval $(call KernelPackage,ipt-cluster))
+
+define KernelPackage/ipt-clusterip
+ TITLE:=Module for CLUSTERIP
+ KCONFIG:=$(KCONFIG_IPT_CLUSTERIP)
+ FILES:=$(foreach mod,$(IPT_CLUSTERIP-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CLUSTERIP-m)))
+ $(call AddDepends/ipt,+kmod-nf-conntrack)
+endef
+
+define KernelPackage/ipt-clusterip/description
+ Netfilter (IPv4-only) module for CLUSTERIP
+ The CLUSTERIP target allows you to build load-balancing clusters of
+ network servers without having a dedicated load-balancing
+ router/server/switch.
+
+ To use it also enable iptables-mod-clusterip
+
+ see `iptables -j CLUSTERIP --help` for more information.
+endef
+
+$(eval $(call KernelPackage,ipt-clusterip))
+
+
+define KernelPackage/ipt-extra
+ TITLE:=Extra modules
+ KCONFIG:=$(KCONFIG_IPT_EXTRA)
+ FILES:=$(foreach mod,$(IPT_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_EXTRA-m)))
+ $(call AddDepends/ipt)
+endef
+
+define KernelPackage/ipt-extra/description
+ Other Netfilter (IPv4) kernel modules
+ Includes:
+ - addrtype
+ - owner
+ - pkttype
+ - quota
+endef
+
+$(eval $(call KernelPackage,ipt-extra))
+
+
+define KernelPackage/ipt-physdev
+ TITLE:=physdev module
+ KCONFIG:=$(KCONFIG_IPT_PHYSDEV)
+ FILES:=$(foreach mod,$(IPT_PHYSDEV-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_PHYSDEV-m)))
+ $(call AddDepends/ipt,+kmod-br-netfilter)
+endef
+
+define KernelPackage/ipt-physdev/description
+ The iptables physdev kernel module
+endef
+
+$(eval $(call KernelPackage,ipt-physdev))
+
+
+define KernelPackage/ip6tables
+ SUBMENU:=$(NF_MENU)
+ TITLE:=IPv6 modules
+ DEPENDS:=@IPV6 +kmod-nf-reject6 +kmod-nf-ipt6 +kmod-ipt-core
+ KCONFIG:=$(KCONFIG_IPT_IPV6)
+ FILES:=$(foreach mod,$(IPT_IPV6-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoLoad,42,$(notdir $(IPT_IPV6-m)))
+endef
+
+define KernelPackage/ip6tables/description
+ Netfilter IPv6 firewalling support
+endef
+
+$(eval $(call KernelPackage,ip6tables))
+
+define KernelPackage/ip6tables-extra
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Extra IPv6 modules
+ DEPENDS:=@IPV6 +kmod-ip6tables
+ KCONFIG:=$(KCONFIG_IPT_IPV6_EXTRA)
+ FILES:=$(foreach mod,$(IPT_IPV6_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoLoad,43,$(notdir $(IPT_IPV6_EXTRA-m)))
+endef
+
+define KernelPackage/ip6tables-extra/description
+ Netfilter IPv6 extra header matching modules
+endef
+
+$(eval $(call KernelPackage,ip6tables-extra))
+
+ARP_MODULES = arp_tables arpt_mangle arptable_filter
+define KernelPackage/arptables
+ SUBMENU:=$(NF_MENU)
+ TITLE:=ARP firewalling modules
+ DEPENDS:=+kmod-ipt-core
+ FILES:=$(LINUX_DIR)/net/ipv4/netfilter/arp*.ko
+ KCONFIG:=CONFIG_IP_NF_ARPTABLES \
+ CONFIG_IP_NF_ARPFILTER \
+ CONFIG_IP_NF_ARP_MANGLE
+ AUTOLOAD:=$(call AutoProbe,$(ARP_MODULES))
+endef
+
+define KernelPackage/arptables/description
+ Kernel modules for ARP firewalling
+endef
+
+$(eval $(call KernelPackage,arptables))
+
+
+define KernelPackage/br-netfilter
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Bridge netfilter support modules
+ DEPENDS:=+kmod-ipt-core
+ FILES:=$(LINUX_DIR)/net/bridge/br_netfilter.ko
+ KCONFIG:=CONFIG_BRIDGE_NETFILTER
+ AUTOLOAD:=$(call AutoProbe,br_netfilter)
+endef
+
+define KernelPackage/br-netfilter/install
+ $(INSTALL_DIR) $(1)/etc/sysctl.d
+ $(INSTALL_DATA) ./files/sysctl-br-netfilter.conf $(1)/etc/sysctl.d/11-br-netfilter.conf
+endef
+
+$(eval $(call KernelPackage,br-netfilter))
+
+
+define KernelPackage/ebtables
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Bridge firewalling modules
+ DEPENDS:=+kmod-ipt-core
+ FILES:=$(foreach mod,$(EBTABLES-m),$(LINUX_DIR)/net/$(mod).ko)
+ KCONFIG:=$(KCONFIG_EBTABLES)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES-m)))
+endef
+
+define KernelPackage/ebtables/description
+ ebtables is a general, extensible frame/packet identification
+ framework. It provides you to do Ethernet
+ filtering/NAT/brouting on the Ethernet bridge.
+endef
+
+$(eval $(call KernelPackage,ebtables))
+
+
+define AddDepends/ebtables
+ SUBMENU:=$(NF_MENU)
+ DEPENDS+= +kmod-ebtables $(1)
+endef
+
+
+define KernelPackage/ebtables-ipv4
+ TITLE:=ebtables: IPv4 support
+ FILES:=$(foreach mod,$(EBTABLES_IP4-m),$(LINUX_DIR)/net/$(mod).ko)
+ KCONFIG:=$(KCONFIG_EBTABLES_IP4)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES_IP4-m)))
+ $(call AddDepends/ebtables)
+endef
+
+define KernelPackage/ebtables-ipv4/description
+ This option adds the IPv4 support to ebtables, which allows basic
+ IPv4 header field filtering, ARP filtering as well as SNAT, DNAT targets.
+endef
+
+$(eval $(call KernelPackage,ebtables-ipv4))
+
+
+define KernelPackage/ebtables-ipv6
+ TITLE:=ebtables: IPv6 support
+ DEPENDS:=@IPV6
+ FILES:=$(foreach mod,$(EBTABLES_IP6-m),$(LINUX_DIR)/net/$(mod).ko)
+ KCONFIG:=$(KCONFIG_EBTABLES_IP6)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES_IP6-m)))
+ $(call AddDepends/ebtables)
+endef
+
+define KernelPackage/ebtables-ipv6/description
+ This option adds the IPv6 support to ebtables, which allows basic
+ IPv6 header field filtering and target support.
+endef
+
+$(eval $(call KernelPackage,ebtables-ipv6))
+
+
+define KernelPackage/ebtables-watchers
+ TITLE:=ebtables: watchers support
+ FILES:=$(foreach mod,$(EBTABLES_WATCHERS-m),$(LINUX_DIR)/net/$(mod).ko)
+ KCONFIG:=$(KCONFIG_EBTABLES_WATCHERS)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES_WATCHERS-m)))
+ $(call AddDepends/ebtables)
+endef
+
+define KernelPackage/ebtables-watchers/description
+ This option adds the log watchers, that you can use in any rule
+ in any ebtables table.
+endef
+
+$(eval $(call KernelPackage,ebtables-watchers))
+
+
+define KernelPackage/nfnetlink
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netlink-based userspace interface
+ FILES:=$(foreach mod,$(NFNETLINK-m),$(LINUX_DIR)/net/$(mod).ko)
+ KCONFIG:=$(KCONFIG_NFNETLINK)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NFNETLINK-m)))
+endef
+
+define KernelPackage/nfnetlink/description
+ Kernel modules support for a netlink-based userspace interface
+endef
+
+$(eval $(call KernelPackage,nfnetlink))
+
+
+define AddDepends/nfnetlink
+ SUBMENU:=$(NF_MENU)
+ DEPENDS+=+kmod-nfnetlink $(1)
+endef
+
+
+define KernelPackage/nfnetlink-log
+ TITLE:=Netfilter LOG over NFNETLINK interface
+ FILES:=$(foreach mod,$(NFNETLINK_LOG-m),$(LINUX_DIR)/net/$(mod).ko)
+ KCONFIG:=$(KCONFIG_NFNETLINK_LOG)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NFNETLINK_LOG-m)))
+ $(call AddDepends/nfnetlink)
+endef
+
+define KernelPackage/nfnetlink-log/description
+ Kernel modules support for logging packets via NFNETLINK
+ Includes:
+ - NFLOG
+endef
+
+$(eval $(call KernelPackage,nfnetlink-log))
+
+
+define KernelPackage/nfnetlink-queue
+ TITLE:=Netfilter QUEUE over NFNETLINK interface
+ FILES:=$(foreach mod,$(NFNETLINK_QUEUE-m),$(LINUX_DIR)/net/$(mod).ko)
+ KCONFIG:=$(KCONFIG_NFNETLINK_QUEUE)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NFNETLINK_QUEUE-m)))
+ $(call AddDepends/nfnetlink)
+endef
+
+define KernelPackage/nfnetlink-queue/description
+ Kernel modules support for queueing packets via NFNETLINK
+ Includes:
+ - NFQUEUE
+endef
+
+$(eval $(call KernelPackage,nfnetlink-queue))
+
+
+define KernelPackage/nfnetlink-cthelper
+ TITLE:=Netfilter User space conntrack helpers
+ FILES:=$(LINUX_DIR)/net/netfilter/nfnetlink_cthelper.ko
+ KCONFIG:=CONFIG_NF_CT_NETLINK_HELPER
+ AUTOLOAD:=$(call AutoProbe,nfnetlink_cthelper)
+ $(call AddDepends/nfnetlink,+kmod-nfnetlink-queue +kmod-nf-conntrack-netlink)
+endef
+
+define KernelPackage/nfnetlink-cthelper/description
+ Kernel modules support for a netlink-based connection tracking
+ userspace helpers interface
+endef
+
+$(eval $(call KernelPackage,nfnetlink-cthelper))
+
+
+define KernelPackage/nfnetlink-cttimeout
+ TITLE:=Netfilter conntrack expectation timeout
+ FILES:=$(LINUX_DIR)/net/netfilter/nfnetlink_cttimeout.ko
+ KCONFIG:=CONFIG_NF_CT_NETLINK_TIMEOUT
+ AUTOLOAD:=$(call AutoProbe,nfnetlink_cttimeout)
+ $(call AddDepends/nfnetlink,+kmod-nf-conntrack @KERNEL_NF_CONNTRACK_TIMEOUT)
+endef
+
+define KernelPackage/nfnetlink-cttimeout/description
+ Kernel modules support for a netlink-based connection tracking
+ userspace timeout interface
+
+ Requires CONFIG_NF_CONNTRACK_TIMEOUT (only enabled for non-small flash devices)
+endef
+
+$(eval $(call KernelPackage,nfnetlink-cttimeout))
+
+
+define KernelPackage/nf-conntrack-netlink
+ TITLE:=Connection tracking netlink interface
+ FILES:=$(LINUX_DIR)/net/netfilter/nf_conntrack_netlink.ko
+ KCONFIG:=CONFIG_NF_CT_NETLINK CONFIG_NF_CONNTRACK_EVENTS=y CONFIG_NETFILTER_NETLINK_GLUE_CT=y
+ AUTOLOAD:=$(call AutoProbe,nf_conntrack_netlink)
+ $(call AddDepends/nfnetlink,+kmod-nf-conntrack)
+endef
+
+define KernelPackage/nf-conntrack-netlink/description
+ Kernel modules support for a netlink-based connection tracking
+ userspace interface
+endef
+
+$(eval $(call KernelPackage,nf-conntrack-netlink))
+
+define KernelPackage/ipt-hashlimit
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter hashlimit match
+ DEPENDS:=+kmod-ipt-core
+ KCONFIG:=$(KCONFIG_IPT_HASHLIMIT)
+ FILES:=$(LINUX_DIR)/net/netfilter/xt_hashlimit.ko
+ AUTOLOAD:=$(call AutoProbe,xt_hashlimit)
+ $(call KernelPackage/ipt)
+endef
+
+define KernelPackage/ipt-hashlimit/description
+ Kernel modules support for the hashlimit bucket match module
+endef
+
+$(eval $(call KernelPackage,ipt-hashlimit))
+
+define KernelPackage/ipt-rpfilter
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter rpfilter match
+ DEPENDS:=+kmod-ipt-core
+ KCONFIG:=$(KCONFIG_IPT_RPFILTER)
+ FILES:=$(realpath \
+ $(LINUX_DIR)/net/ipv4/netfilter/ipt_rpfilter.ko \
+ $(LINUX_DIR)/net/ipv6/netfilter/ip6t_rpfilter.ko)
+ AUTOLOAD:=$(call AutoProbe,ipt_rpfilter ip6t_rpfilter)
+ $(call KernelPackage/ipt)
+endef
+
+define KernelPackage/ipt-rpfilter/description
+ Kernel modules support for the Netfilter rpfilter match
+endef
+
+$(eval $(call KernelPackage,ipt-rpfilter))
+
+
+define KernelPackage/nft-core
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter nf_tables support
+ DEPENDS:=+kmod-nfnetlink +kmod-nf-reject +IPV6:kmod-nf-reject6 +IPV6:kmod-nf-conntrack6 +kmod-nf-nat +kmod-nf-log +IPV6:kmod-nf-log6 +kmod-lib-crc32c
+ FILES:=$(foreach mod,$(NFT_CORE-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_CORE-m)))
+ KCONFIG:= \
+ CONFIG_NFT_COMPAT=n \
+ CONFIG_NFT_QUEUE=n \
+ $(KCONFIG_NFT_CORE)
+endef
+
+define KernelPackage/nft-core/description
+ Kernel module support for nftables
+endef
+
+$(eval $(call KernelPackage,nft-core))
+
+
+define KernelPackage/nft-arp
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter nf_tables ARP table support
+ DEPENDS:=+kmod-nft-core
+ FILES:=$(foreach mod,$(NFT_ARP-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_ARP-m)))
+ KCONFIG:=$(KCONFIG_NFT_ARP)
+endef
+
+$(eval $(call KernelPackage,nft-arp))
+
+
+define KernelPackage/nft-bridge
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter nf_tables bridge table support
+ DEPENDS:=+kmod-nft-core
+ FILES:=$(foreach mod,$(NFT_BRIDGE-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_BRIDGE-m)))
+ KCONFIG:= \
+ CONFIG_NF_LOG_BRIDGE=n@lt5.13 \
+ $(KCONFIG_NFT_BRIDGE)
+endef
+
+$(eval $(call KernelPackage,nft-bridge))
+
+
+define KernelPackage/nft-dup-inet
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter nf_tables dup in ip/ip6/inet family support
+ DEPENDS:=+kmod-nft-core +kmod-nf-dup-inet
+ KCONFIG:= \
+ CONFIG_NFT_DUP_IPV4 \
+ CONFIG_NFT_DUP_IPV6
+ FILES:= \
+ $(LINUX_DIR)/net/ipv4/netfilter/nft_dup_ipv4.ko \
+ $(LINUX_DIR)/net/ipv6/netfilter/nft_dup_ipv6.ko
+ AUTOLOAD:=$(call AutoProbe,nft_dup_ipv4 nft_dup_ipv6)
+endef
+
+$(eval $(call KernelPackage,nft-dup-inet))
+
+
+define KernelPackage/nft-nat
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter nf_tables NAT support
+ DEPENDS:=+kmod-nft-core +kmod-nf-nat
+ FILES:=$(foreach mod,$(NFT_NAT-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_NAT-m)))
+ KCONFIG:=$(KCONFIG_NFT_NAT)
+endef
+
+$(eval $(call KernelPackage,nft-nat))
+
+
+define KernelPackage/nft-offload
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter nf_tables routing/NAT offload support
+ DEPENDS:=@IPV6 +kmod-nf-flow +kmod-nft-nat
+ KCONFIG:= \
+ CONFIG_NF_FLOW_TABLE_INET \
+ CONFIG_NF_FLOW_TABLE_IPV4@lt5.17 \
+ CONFIG_NF_FLOW_TABLE_IPV6@lt5.17 \
+ CONFIG_NFT_FLOW_OFFLOAD
+ FILES:= \
+ $(LINUX_DIR)/net/netfilter/nf_flow_table_inet.ko \
+ $(LINUX_DIR)/net/ipv4/netfilter/nf_flow_table_ipv4.ko@lt5.17 \
+ $(LINUX_DIR)/net/ipv6/netfilter/nf_flow_table_ipv6.ko@lt5.17 \
+ $(LINUX_DIR)/net/netfilter/nft_flow_offload.ko
+ AUTOLOAD:=$(call AutoProbe,nf_flow_table_inet nf_flow_table_ipv4@lt5.17 nf_flow_table_ipv6@lt5.17 nft_flow_offload)
+endef
+
+$(eval $(call KernelPackage,nft-offload))
+
+
+define KernelPackage/nft-netdev
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter nf_tables netdev support
+ DEPENDS:=+kmod-nft-core
+ KCONFIG:= \
+ CONFIG_NETFILTER_INGRESS=y \
+ CONFIG_NETFILTER_EGRESS=y@ge5.16 \
+ CONFIG_NF_TABLES_NETDEV \
+ CONFIG_NF_DUP_NETDEV \
+ CONFIG_NFT_DUP_NETDEV \
+ CONFIG_NFT_FWD_NETDEV
+ FILES:= \
+ $(LINUX_DIR)/net/netfilter/nf_dup_netdev.ko \
+ $(LINUX_DIR)/net/netfilter/nft_dup_netdev.ko \
+ $(LINUX_DIR)/net/netfilter/nft_fwd_netdev.ko
+ AUTOLOAD:=$(call AutoProbe,nf_tables_netdev nf_dup_netdev nft_dup_netdev nft_fwd_netdev)
+endef
+
+$(eval $(call KernelPackage,nft-netdev))
+
+
+define KernelPackage/nft-fib
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter nf_tables fib support
+ DEPENDS:=+kmod-nft-core
+ FILES:=$(foreach mod,$(NFT_FIB-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_FIB-m)))
+ KCONFIG:=$(KCONFIG_NFT_FIB)
+endef
+
+$(eval $(call KernelPackage,nft-fib))
+
+
+define KernelPackage/nft-queue
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter nf_tables queue support
+ DEPENDS:=+kmod-nft-core +kmod-nfnetlink-queue
+ FILES:=$(foreach mod,$(NFT_QUEUE-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_QUEUE-m)))
+ KCONFIG:=$(KCONFIG_NFT_QUEUE)
+endef
+
+$(eval $(call KernelPackage,nft-queue))
+
+define KernelPackage/nft-socket
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter nf_tables socket support
+ DEPENDS:=+kmod-nft-core +kmod-nf-socket
+ FILES:=$(foreach mod,$(NFT_SOCKET-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_SOCKET-m)))
+ KCONFIG:=$(KCONFIG_NFT_SOCKET)
+endef
+
+$(eval $(call KernelPackage,nft-socket))
+
+define KernelPackage/nft-tproxy
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter nf_tables tproxy support
+ DEPENDS:=+kmod-nft-core +kmod-nf-tproxy +kmod-nf-conntrack
+ FILES:=$(foreach mod,$(NFT_TPROXY-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_TPROXY-m)))
+ KCONFIG:=$(KCONFIG_NFT_TPROXY)
+endef
+
+$(eval $(call KernelPackage,nft-tproxy))
+
+define KernelPackage/nft-compat
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter nf_tables compat support
+ DEPENDS:=+kmod-nft-core +kmod-nf-ipt
+ FILES:=$(foreach mod,$(NFT_COMPAT-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_COMPAT-m)))
+ KCONFIG:=$(KCONFIG_NFT_COMPAT)
+endef
+
+$(eval $(call KernelPackage,nft-compat))
+
+define KernelPackage/nft-xfrm
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter nf_tables xfrm support (ipsec)
+ DEPENDS:=+kmod-nft-core
+ FILES:=$(foreach mod,$(NFT_XFRM-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_XFRM-m)))
+ KCONFIG:=$(KCONFIG_NFT_XFRM)
+endef
+
+$(eval $(call KernelPackage,nft-xfrm))
+
+define KernelPackage/nft-connlimit
+ SUBMENU:=$(NF_MENU)
+ TITLE:=Netfilter nf_tables connlimit support
+ DEPENDS:=+kmod-nft-core +kmod-nf-conncount
+ FILES:=$(foreach mod,$(NFT_CONNLIMIT-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_CONNLIMIT-m)))
+ KCONFIG:=$(KCONFIG_NFT_CONNLIMIT)
+endef
+
+$(eval $(call KernelPackage,nft-connlimit))
+
+define KernelPackage/nf-conntrack-sip
+ TITLE:=Connection tracking/NATing firewall
+ FILES:=$(LINUX_DIR)/net/netfilter/nf_conntrack_sip.ko
+ KCONFIG:=CONFIG_NF_CONNTRACK_SIP
+ AUTOLOAD:=$(call AutoProbe,nf_conntrack_sip)
+ SUBMENU:=$(NF_MENU)
+ DEPENDS:=+kmod-nf-conntrack
+endef
+
+define KernelPackage/nf-conntrack-sip/description
+ Kernel modules support for a connection tracking/NATing firewall.
+endef
+
+$(eval $(call KernelPackage,nf-conntrack-sip))
+
+define KernelPackage/nf-nat-sip
+ TITLE:=SIP is an application-layer control protocol
+ FILES:=$(LINUX_DIR)/net/netfilter/nf_nat_sip.ko
+ KCONFIG:=CONFIG_NF_NAT_SIP
+ AUTOLOAD:=$(call AutoProbe,nf_nat_sip)
+ SUBMENU:=$(NF_MENU)
+ DEPENDS:=+kmod-nf-conntrack +kmod-nf-nat +kmod-nf-conntrack-sip
+endef
+
+define KernelPackage/nf-nat-sip/description
+ SIP is an application-layer control protocol that can establish,
+ modify, and terminate multimedia sessions (conferences) such as
+ Internet telephony calls.
+endef
+
+$(eval $(call KernelPackage,nf-nat-sip))
+
+define KernelPackage/x_tables
+ TITLE:=Netfilter Xtables support (required for ip_tables)
+ FILES:=$(LINUX_DIR)/net/netfilter/x_tables.ko \
+ $(LINUX_DIR)/net/netfilter/xt_tcpudp.ko
+ KCONFIG:=CONFIG_NETFILTER_XTABLES
+ AUTOLOAD:=$(call AutoProbe,x_tables)
+ SUBMENU:=$(NF_MENU)
+endef
+
+define KernelPackage/x_tables/description
+ This is required if you intend to use any of ip_tables,
+ ip6_tables or arp_tables..
+endef
+
+$(eval $(call KernelPackage,x_tables))
+
diff --git a/package/kernel/linux/modules/netsupport.mk b/package/kernel/linux/modules/netsupport.mk
new file mode 100644
index 0000000..fac6146
--- /dev/null
+++ b/package/kernel/linux/modules/netsupport.mk
@@ -0,0 +1,1635 @@
+#
+# Copyright (C) 2006-2011 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+NETWORK_SUPPORT_MENU:=Network Support
+
+define KernelPackage/atm
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=ATM support
+ KCONFIG:= \
+ CONFIG_ATM \
+ CONFIG_ATM_BR2684
+ FILES:= \
+ $(LINUX_DIR)/net/atm/atm.ko \
+ $(LINUX_DIR)/net/atm/br2684.ko
+ AUTOLOAD:=$(call AutoLoad,30,atm br2684)
+endef
+
+define KernelPackage/atm/description
+ Kernel modules for ATM support
+endef
+
+$(eval $(call KernelPackage,atm))
+
+
+define KernelPackage/atmtcp
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=ATM over TCP
+ DEPENDS:=kmod-atm
+ KCONFIG:=CONFIG_ATM_TCP CONFIG_ATM_DRIVERS=y
+ FILES:=$(LINUX_DIR)/drivers/atm/atmtcp.ko
+ AUTOLOAD:=$(call AutoLoad,40,atmtcp)
+endef
+
+define KernelPackage/atmtcp/description
+ Kernel module for ATM over TCP support
+endef
+
+$(eval $(call KernelPackage,atmtcp))
+
+
+define KernelPackage/appletalk
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Appletalk protocol support
+ KCONFIG:= \
+ CONFIG_ATALK \
+ CONFIG_DEV_APPLETALK \
+ CONFIG_IPDDP=n
+ FILES:=$(LINUX_DIR)/net/appletalk/appletalk.ko
+ AUTOLOAD:=$(call AutoLoad,40,appletalk)
+endef
+
+define KernelPackage/appletalk/description
+ Kernel module for AppleTalk protocol.
+endef
+
+$(eval $(call KernelPackage,appletalk))
+
+
+define KernelPackage/bonding
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Ethernet bonding driver
+ KCONFIG:=CONFIG_BONDING
+ DEPENDS:=PACKAGE_kmod-tls:kmod-tls
+ FILES:=$(LINUX_DIR)/drivers/net/bonding/bonding.ko
+ AUTOLOAD:=$(call AutoLoad,40,bonding)
+ MODPARAMS.bonding:=max_bonds=0
+endef
+
+define KernelPackage/bonding/description
+ Kernel module for NIC bonding.
+endef
+
+$(eval $(call KernelPackage,bonding))
+
+
+define KernelPackage/udptunnel4
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=IPv4 UDP tunneling support
+ KCONFIG:=CONFIG_NET_UDP_TUNNEL
+ HIDDEN:=1
+ FILES:=$(LINUX_DIR)/net/ipv4/udp_tunnel.ko
+ AUTOLOAD:=$(call AutoLoad,32,udp_tunnel)
+endef
+
+
+$(eval $(call KernelPackage,udptunnel4))
+
+define KernelPackage/udptunnel6
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=IPv6 UDP tunneling support
+ DEPENDS:=@IPV6
+ KCONFIG:=CONFIG_NET_UDP_TUNNEL
+ HIDDEN:=1
+ FILES:=$(LINUX_DIR)/net/ipv6/ip6_udp_tunnel.ko
+ AUTOLOAD:=$(call AutoLoad,32,ip6_udp_tunnel)
+endef
+
+$(eval $(call KernelPackage,udptunnel6))
+
+
+define KernelPackage/vxlan
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Native VXLAN Kernel support
+ DEPENDS:= \
+ +kmod-iptunnel \
+ +kmod-udptunnel4 \
+ +IPV6:kmod-udptunnel6
+ KCONFIG:=CONFIG_VXLAN
+ FILES:= \
+ $(LINUX_DIR)/drivers/net/vxlan.ko@lt5.5 \
+ $(LINUX_DIR)/drivers/net/vxlan/vxlan.ko@ge5.6
+ AUTOLOAD:=$(call AutoLoad,13,vxlan)
+endef
+
+define KernelPackage/vxlan/description
+ Kernel module for supporting VXLAN in the Kernel.
+ Requires Kernel 3.12 or newer.
+endef
+
+$(eval $(call KernelPackage,vxlan))
+
+
+define KernelPackage/geneve
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Generic Network Virtualization Encapsulation (Geneve) support
+ DEPENDS:= \
+ +kmod-iptunnel \
+ +kmod-udptunnel4 \
+ +IPV6:kmod-udptunnel6
+ KCONFIG:=CONFIG_GENEVE
+ FILES:= \
+ $(LINUX_DIR)/drivers/net/geneve.ko
+ AUTOLOAD:=$(call AutoLoad,13,geneve)
+endef
+
+define KernelPackage/geneve/description
+ Kernel module for supporting Geneve in the Kernel.
+ Requires Kernel 3.18 or newer.
+endef
+
+$(eval $(call KernelPackage,geneve))
+
+
+define KernelPackage/nsh
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Network Service Header (NSH) protocol
+ DEPENDS:=
+ KCONFIG:=CONFIG_NET_NSH
+ FILES:=$(LINUX_DIR)/net/nsh/nsh.ko
+ AUTOLOAD:=$(call AutoLoad,13,nsh)
+endef
+
+define KernelPackage/nsh/description
+ Network Service Header is an implementation of Service Function
+ Chaining (RFC 7665). Requires kernel 4.14 or newer
+endef
+
+$(eval $(call KernelPackage,nsh))
+
+
+define KernelPackage/misdn
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=mISDN (ISDN) Support
+ KCONFIG:= \
+ CONFIG_ISDN=y \
+ CONFIG_MISDN \
+ CONFIG_MISDN_DSP \
+ CONFIG_MISDN_L1OIP
+ FILES:= \
+ $(LINUX_DIR)/drivers/isdn/mISDN/mISDN_core.ko \
+ $(LINUX_DIR)/drivers/isdn/mISDN/mISDN_dsp.ko \
+ $(LINUX_DIR)/drivers/isdn/mISDN/l1oip.ko
+ AUTOLOAD:=$(call AutoLoad,30,mISDN_core mISDN_dsp l1oip)
+endef
+
+define KernelPackage/misdn/description
+ Modular ISDN driver support
+endef
+
+$(eval $(call KernelPackage,misdn))
+
+
+define KernelPackage/ipip
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=IP-in-IP encapsulation
+ DEPENDS:=+kmod-iptunnel +kmod-iptunnel4
+ KCONFIG:=CONFIG_NET_IPIP
+ FILES:=$(LINUX_DIR)/net/ipv4/ipip.ko
+ AUTOLOAD:=$(call AutoLoad,32,ipip)
+endef
+
+define KernelPackage/ipip/description
+ Kernel modules for IP-in-IP encapsulation
+endef
+
+$(eval $(call KernelPackage,ipip))
+
+
+IPSEC-m:= \
+ xfrm/xfrm_algo \
+ xfrm/xfrm_ipcomp \
+ xfrm/xfrm_user \
+ key/af_key \
+
+define KernelPackage/ipsec
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=IPsec related modules (IPv4 and IPv6)
+ DEPENDS:= \
+ +kmod-crypto-authenc +kmod-crypto-cbc +kmod-crypto-deflate \
+ +kmod-crypto-des +kmod-crypto-echainiv +kmod-crypto-hmac \
+ +kmod-crypto-md5 +kmod-crypto-sha1
+ KCONFIG:= \
+ CONFIG_NET_KEY \
+ CONFIG_XFRM_USER \
+ CONFIG_INET_IPCOMP \
+ CONFIG_XFRM_IPCOMP \
+ CONFIG_XFRM_SUB_POLICY=y
+ FILES:=$(foreach mod,$(IPSEC-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoLoad,30,$(notdir $(IPSEC-m)))
+endef
+
+define KernelPackage/ipsec/description
+ Kernel modules for IPsec support in both IPv4 and IPv6.
+ Includes:
+ - af_key
+ - xfrm_algo
+ - xfrm_ipcomp
+ - xfrm_user
+endef
+
+$(eval $(call KernelPackage,ipsec))
+
+IPSEC4-m = \
+ ipv4/ah4 \
+ ipv4/esp4 \
+ ipv4/ipcomp \
+ ipv4/xfrm4_tunnel
+
+define KernelPackage/ipsec4
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=IPsec related modules (IPv4)
+ DEPENDS:=kmod-ipsec +kmod-iptunnel4
+ KCONFIG:= \
+ CONFIG_INET_AH \
+ CONFIG_INET_ESP \
+ CONFIG_INET_IPCOMP \
+ CONFIG_INET_XFRM_TUNNEL \
+ CONFIG_INET_ESP_OFFLOAD=n
+ FILES:=$(foreach mod,$(IPSEC4-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC4-m)))
+endef
+
+define KernelPackage/ipsec4/description
+ Kernel modules for IPsec support in IPv4.
+ Includes:
+ - ah4
+ - esp4
+ - ipcomp4
+ - xfrm4_tunnel
+endef
+
+$(eval $(call KernelPackage,ipsec4))
+
+
+IPSEC6-m = \
+ ipv6/ah6 \
+ ipv6/esp6 \
+ ipv6/ipcomp6 \
+ ipv6/xfrm6_tunnel
+
+define KernelPackage/ipsec6
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=IPsec related modules (IPv6)
+ DEPENDS:=@IPV6 kmod-ipsec +kmod-iptunnel6
+ KCONFIG:= \
+ CONFIG_INET6_AH \
+ CONFIG_INET6_ESP \
+ CONFIG_INET6_IPCOMP \
+ CONFIG_INET6_XFRM_TUNNEL \
+ CONFIG_INET6_ESP_OFFLOAD=n
+ FILES:=$(foreach mod,$(IPSEC6-m),$(LINUX_DIR)/net/$(mod).ko)
+ AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC6-m)))
+endef
+
+define KernelPackage/ipsec6/description
+ Kernel modules for IPsec support in IPv6.
+ Includes:
+ - ah6
+ - esp6
+ - ipcomp6
+ - xfrm6_tunnel
+endef
+
+$(eval $(call KernelPackage,ipsec6))
+
+
+define KernelPackage/iptunnel
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=IP tunnel support
+ HIDDEN:=1
+ KCONFIG:= \
+ CONFIG_NET_IP_TUNNEL
+ FILES:=$(LINUX_DIR)/net/ipv4/ip_tunnel.ko
+ AUTOLOAD:=$(call AutoLoad,31,ip_tunnel)
+endef
+
+define KernelPackage/iptunnel/description
+ Kernel module for generic IP tunnel support
+endef
+
+$(eval $(call KernelPackage,iptunnel))
+
+
+define KernelPackage/ip-vti
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=IP VTI (Virtual Tunnel Interface)
+ DEPENDS:=+kmod-iptunnel +kmod-iptunnel4 +kmod-ipsec4
+ KCONFIG:=CONFIG_NET_IPVTI
+ FILES:=$(LINUX_DIR)/net/ipv4/ip_vti.ko
+ AUTOLOAD:=$(call AutoLoad,33,ip_vti)
+endef
+
+define KernelPackage/ip-vti/description
+ Kernel modules for IP VTI (Virtual Tunnel Interface)
+endef
+
+$(eval $(call KernelPackage,ip-vti))
+
+
+define KernelPackage/ip6-vti
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=IPv6 VTI (Virtual Tunnel Interface)
+ DEPENDS:=@IPV6 +kmod-iptunnel +kmod-ip6-tunnel +kmod-ipsec6
+ KCONFIG:=CONFIG_IPV6_VTI
+ FILES:=$(LINUX_DIR)/net/ipv6/ip6_vti.ko
+ AUTOLOAD:=$(call AutoLoad,33,ip6_vti)
+endef
+
+define KernelPackage/ip6-vti/description
+ Kernel modules for IPv6 VTI (Virtual Tunnel Interface)
+endef
+
+$(eval $(call KernelPackage,ip6-vti))
+
+
+define KernelPackage/xfrm-interface
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=IPsec XFRM Interface
+ DEPENDS:=@IPV6 +kmod-ipsec4 +kmod-ipsec6
+ KCONFIG:=CONFIG_XFRM_INTERFACE
+ FILES:=$(LINUX_DIR)/net/xfrm/xfrm_interface.ko
+ AUTOLOAD:=$(call AutoProbe,xfrm_interface)
+endef
+
+define KernelPackage/xfrm-interface/description
+ Kernel module for XFRM interface support
+endef
+
+$(eval $(call KernelPackage,xfrm-interface))
+
+
+define KernelPackage/iptunnel4
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=IPv4 tunneling
+ HIDDEN:=1
+ KCONFIG:= \
+ CONFIG_INET_TUNNEL \
+ CONFIG_NET_IPIP=m
+ FILES:=$(LINUX_DIR)/net/ipv4/tunnel4.ko
+ AUTOLOAD:=$(call AutoLoad,31,tunnel4)
+endef
+
+define KernelPackage/iptunnel4/description
+ Kernel modules for IPv4 tunneling
+endef
+
+$(eval $(call KernelPackage,iptunnel4))
+
+
+define KernelPackage/iptunnel6
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=IPv6 tunneling
+ DEPENDS:=@IPV6
+ KCONFIG:= \
+ CONFIG_INET6_TUNNEL
+ FILES:=$(LINUX_DIR)/net/ipv6/tunnel6.ko
+ AUTOLOAD:=$(call AutoLoad,31,tunnel6)
+endef
+
+define KernelPackage/iptunnel6/description
+ Kernel modules for IPv6 tunneling
+endef
+
+$(eval $(call KernelPackage,iptunnel6))
+
+
+define KernelPackage/sit
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ DEPENDS:=@IPV6 +kmod-iptunnel +kmod-iptunnel4
+ TITLE:=IPv6-in-IPv4 tunnel
+ KCONFIG:=CONFIG_IPV6_SIT \
+ CONFIG_IPV6_SIT_6RD=y
+ FILES:=$(LINUX_DIR)/net/ipv6/sit.ko
+ AUTOLOAD:=$(call AutoLoad,32,sit)
+endef
+
+define KernelPackage/sit/description
+ Kernel modules for IPv6-in-IPv4 tunnelling
+endef
+
+$(eval $(call KernelPackage,sit))
+
+
+define KernelPackage/fou
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=FOU and GUE decapsulation
+ DEPENDS:= \
+ +kmod-iptunnel \
+ +kmod-udptunnel4 \
+ +IPV6:kmod-udptunnel6
+ KCONFIG:= \
+ CONFIG_NET_FOU \
+ CONFIG_NET_FOU_IP_TUNNELS=y
+ FILES:=$(LINUX_DIR)/net/ipv4/fou.ko
+ AUTOLOAD:=$(call AutoProbe,fou)
+endef
+
+define KernelPackage/fou/description
+ Kernel module for FOU (Foo over UDP) and GUE (Generic UDP Encapsulation) tunnelling.
+ Requires Kernel 3.18 or newer.
+endef
+
+$(eval $(call KernelPackage,fou))
+
+
+define KernelPackage/fou6
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=FOU and GUE decapsulation over IPv6
+ DEPENDS:= @IPV6 \
+ +kmod-fou \
+ +kmod-ip6-tunnel
+ KCONFIG:= \
+ CONFIG_IPV6_FOU \
+ CONFIG_IPV6_FOU_TUNNEL
+ FILES:=$(LINUX_DIR)/net/ipv6/fou6.ko
+ AUTOLOAD:=$(call AutoProbe,fou6)
+endef
+
+define KernelPackage/fou6/description
+ Kernel module for FOU (Foo over UDP) and GUE (Generic UDP Encapsulation) tunnelling over IPv6.
+ Requires Kernel 3.18 or newer.
+endef
+
+$(eval $(call KernelPackage,fou6))
+
+
+define KernelPackage/ip6-tunnel
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=IP-in-IPv6 tunnelling
+ DEPENDS:=@IPV6 +kmod-iptunnel6
+ KCONFIG:= CONFIG_IPV6_TUNNEL
+ FILES:=$(LINUX_DIR)/net/ipv6/ip6_tunnel.ko
+ AUTOLOAD:=$(call AutoLoad,32,ip6_tunnel)
+endef
+
+define KernelPackage/ip6-tunnel/description
+ Kernel modules for IPv6-in-IPv6 and IPv4-in-IPv6 tunnelling
+endef
+
+$(eval $(call KernelPackage,ip6-tunnel))
+
+
+define KernelPackage/gre
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=GRE support
+ DEPENDS:=+kmod-iptunnel
+ KCONFIG:=CONFIG_NET_IPGRE CONFIG_NET_IPGRE_DEMUX
+ FILES:=$(LINUX_DIR)/net/ipv4/ip_gre.ko $(LINUX_DIR)/net/ipv4/gre.ko
+ AUTOLOAD:=$(call AutoLoad,39,gre ip_gre)
+endef
+
+define KernelPackage/gre/description
+ Generic Routing Encapsulation support
+endef
+
+$(eval $(call KernelPackage,gre))
+
+
+define KernelPackage/gre6
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=GRE support over IPV6
+ DEPENDS:=@IPV6 +kmod-iptunnel +kmod-ip6-tunnel +kmod-gre
+ KCONFIG:=CONFIG_IPV6_GRE
+ FILES:=$(LINUX_DIR)/net/ipv6/ip6_gre.ko
+ AUTOLOAD:=$(call AutoLoad,39,ip6_gre)
+endef
+
+define KernelPackage/gre6/description
+ Generic Routing Encapsulation support over IPv6
+endef
+
+$(eval $(call KernelPackage,gre6))
+
+
+define KernelPackage/tun
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Universal TUN/TAP driver
+ KCONFIG:=CONFIG_TUN
+ FILES:=$(LINUX_DIR)/drivers/net/tun.ko
+ AUTOLOAD:=$(call AutoLoad,30,tun)
+endef
+
+define KernelPackage/tun/description
+ Kernel support for the TUN/TAP tunneling device
+endef
+
+$(eval $(call KernelPackage,tun))
+
+
+define KernelPackage/veth
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Virtual ethernet pair device
+ KCONFIG:=CONFIG_VETH
+ FILES:=$(LINUX_DIR)/drivers/net/veth.ko
+ AUTOLOAD:=$(call AutoLoad,30,veth)
+endef
+
+define KernelPackage/veth/description
+ This device is a local ethernet tunnel. Devices are created in pairs.
+ When one end receives the packet it appears on its pair and vice
+ versa.
+endef
+
+$(eval $(call KernelPackage,veth))
+
+
+define KernelPackage/vrf
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Virtual Routing and Forwarding (Lite)
+ DEPENDS:=@KERNEL_NET_L3_MASTER_DEV
+ KCONFIG:=CONFIG_NET_VRF
+ FILES:=$(LINUX_DIR)/drivers/net/vrf.ko
+ AUTOLOAD:=$(call AutoLoad,30,vrf)
+endef
+
+define KernelPackage/vrf/description
+ This option enables the support for mapping interfaces into VRF's. The
+ support enables VRF devices.
+endef
+
+$(eval $(call KernelPackage,vrf))
+
+
+define KernelPackage/slhc
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ HIDDEN:=1
+ TITLE:=Serial Line Header Compression
+ DEPENDS:=+kmod-lib-crc-ccitt
+ KCONFIG:=CONFIG_SLHC
+ FILES:=$(LINUX_DIR)/drivers/net/slip/slhc.ko
+endef
+
+$(eval $(call KernelPackage,slhc))
+
+
+define KernelPackage/ppp
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=PPP modules
+ DEPENDS:=+kmod-lib-crc-ccitt +kmod-slhc
+ KCONFIG:= \
+ CONFIG_PPP \
+ CONFIG_PPP_ASYNC
+ FILES:= \
+ $(LINUX_DIR)/drivers/net/ppp/ppp_async.ko \
+ $(LINUX_DIR)/drivers/net/ppp/ppp_generic.ko
+ AUTOLOAD:=$(call AutoProbe,ppp_async)
+endef
+
+define KernelPackage/ppp/description
+ Kernel modules for PPP support
+endef
+
+$(eval $(call KernelPackage,ppp))
+
+
+define KernelPackage/ppp-synctty
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=PPP sync tty support
+ DEPENDS:=kmod-ppp
+ KCONFIG:=CONFIG_PPP_SYNC_TTY
+ FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_synctty.ko
+ AUTOLOAD:=$(call AutoProbe,ppp_synctty)
+endef
+
+define KernelPackage/ppp-synctty/description
+ Kernel modules for PPP sync tty support
+endef
+
+$(eval $(call KernelPackage,ppp-synctty))
+
+
+define KernelPackage/pppox
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=PPPoX helper
+ DEPENDS:=kmod-ppp
+ KCONFIG:=CONFIG_PPPOE
+ FILES:=$(LINUX_DIR)/drivers/net/ppp/pppox.ko
+endef
+
+define KernelPackage/pppox/description
+ Kernel helper module for PPPoE and PPTP support
+endef
+
+$(eval $(call KernelPackage,pppox))
+
+
+define KernelPackage/pppoe
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=PPPoE support
+ DEPENDS:=kmod-ppp +kmod-pppox
+ KCONFIG:=CONFIG_PPPOE
+ FILES:=$(LINUX_DIR)/drivers/net/ppp/pppoe.ko
+ AUTOLOAD:=$(call AutoProbe,pppoe)
+endef
+
+define KernelPackage/pppoe/description
+ Kernel module for PPPoE (PPP over Ethernet) support
+endef
+
+$(eval $(call KernelPackage,pppoe))
+
+
+define KernelPackage/pppoa
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=PPPoA support
+ DEPENDS:=kmod-ppp +kmod-atm
+ KCONFIG:=CONFIG_PPPOATM CONFIG_ATM_DRIVERS=y
+ FILES:=$(LINUX_DIR)/net/atm/pppoatm.ko
+ AUTOLOAD:=$(call AutoLoad,40,pppoatm)
+endef
+
+define KernelPackage/pppoa/description
+ Kernel modules for PPPoA (PPP over ATM) support
+endef
+
+$(eval $(call KernelPackage,pppoa))
+
+
+define KernelPackage/pptp
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=PPtP support
+ DEPENDS:=kmod-ppp +kmod-gre +kmod-pppox
+ KCONFIG:=CONFIG_PPTP
+ FILES:=$(LINUX_DIR)/drivers/net/ppp/pptp.ko
+ AUTOLOAD:=$(call AutoProbe,pptp)
+endef
+
+$(eval $(call KernelPackage,pptp))
+
+
+define KernelPackage/pppol2tp
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=PPPoL2TP support
+ DEPENDS:=kmod-ppp +kmod-pppox +kmod-l2tp
+ KCONFIG:=CONFIG_PPPOL2TP
+ FILES:=$(LINUX_DIR)/net/l2tp/l2tp_ppp.ko
+ AUTOLOAD:=$(call AutoProbe,l2tp_ppp)
+endef
+
+define KernelPackage/pppol2tp/description
+ Kernel modules for PPPoL2TP (PPP over L2TP) support
+endef
+
+$(eval $(call KernelPackage,pppol2tp))
+
+
+define KernelPackage/ipoa
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=IPoA support
+ DEPENDS:=kmod-atm
+ KCONFIG:=CONFIG_ATM_CLIP
+ FILES:=$(LINUX_DIR)/net/atm/clip.ko
+ AUTOLOAD:=$(call AutoProbe,clip)
+endef
+
+define KernelPackage/ipoa/description
+ Kernel modules for IPoA (IP over ATM) support
+endef
+
+$(eval $(call KernelPackage,ipoa))
+
+
+define KernelPackage/mppe
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Microsoft PPP compression/encryption
+ DEPENDS:=kmod-ppp +kmod-crypto-arc4 +kmod-crypto-sha1 +kmod-crypto-ecb
+ KCONFIG:= \
+ CONFIG_PPP_MPPE_MPPC \
+ CONFIG_PPP_MPPE
+ FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_mppe.ko
+ AUTOLOAD:=$(call AutoProbe,ppp_mppe)
+endef
+
+define KernelPackage/mppe/description
+ Kernel modules for Microsoft PPP compression/encryption
+endef
+
+$(eval $(call KernelPackage,mppe))
+
+
+SCHED_MODULES_CORE = sch_ingress sch_hfsc sch_htb sch_tbf cls_basic cls_fw cls_route cls_flow cls_u32 em_u32 act_gact act_mirred act_skbedit cls_matchall
+SCHED_FILES_CORE = $(foreach mod,$(SCHED_MODULES_CORE),$(LINUX_DIR)/net/sched/$(mod).ko)
+
+define KernelPackage/sched-core
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Traffic schedulers
+ KCONFIG:= \
+ CONFIG_NET_SCHED=y \
+ CONFIG_NET_SCH_HFSC \
+ CONFIG_NET_SCH_HTB \
+ CONFIG_NET_SCH_TBF \
+ CONFIG_NET_SCH_INGRESS \
+ CONFIG_NET_CLS=y \
+ CONFIG_NET_CLS_ACT=y \
+ CONFIG_NET_CLS_BASIC \
+ CONFIG_NET_CLS_FLOW \
+ CONFIG_NET_CLS_FW \
+ CONFIG_NET_CLS_ROUTE4 \
+ CONFIG_NET_CLS_U32 \
+ CONFIG_NET_ACT_GACT \
+ CONFIG_NET_ACT_MIRRED \
+ CONFIG_NET_ACT_SKBEDIT \
+ CONFIG_NET_CLS_MATCHALL \
+ CONFIG_NET_EMATCH=y \
+ CONFIG_NET_EMATCH_U32
+ FILES:=$(SCHED_FILES_CORE)
+ AUTOLOAD:=$(call AutoLoad,70, $(SCHED_MODULES_CORE))
+endef
+
+define KernelPackage/sched-core/description
+ Core kernel scheduler support for IP traffic
+endef
+
+$(eval $(call KernelPackage,sched-core))
+
+
+define KernelPackage/sched-act-police
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Traffic Policing
+ DEPENDS:=+kmod-sched-core
+ KCONFIG:=CONFIG_NET_ACT_POLICE
+ FILES:=$(LINUX_DIR)/net/sched/act_police.ko
+ AUTOLOAD:=$(call AutoProbe,act_police)
+endef
+
+$(eval $(call KernelPackage,sched-act-police))
+
+
+define KernelPackage/sched-act-sample
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Traffic Sampling
+ DEPENDS:=+kmod-sched-core
+ KCONFIG:= \
+ CONFIG_NET_ACT_SAMPLE \
+ CONFIG_PSAMPLE
+ FILES:= \
+ $(LINUX_DIR)/net/psample/psample.ko \
+ $(LINUX_DIR)/net/sched/act_sample.ko
+ AUTOLOAD:=$(call AutoProbe,act_sample psample)
+endef
+
+define KernelPackage/sched-act-sample/description
+ Packet sampling tc action.
+endef
+
+$(eval $(call KernelPackage,sched-act-sample))
+
+
+define KernelPackage/sched-act-ipt
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=IPtables targets
+ DEPENDS:=+kmod-ipt-core +kmod-sched-core
+ KCONFIG:=CONFIG_NET_ACT_IPT
+ FILES:=$(LINUX_DIR)/net/sched/act_ipt.ko
+ AUTOLOAD:=$(call AutoProbe, act_ipt)
+endef
+
+define KernelPackage/sched-act-ipt/description
+ Allows to invoke iptables targets after successful classification.
+endef
+
+$(eval $(call KernelPackage,sched-act-ipt))
+
+
+define KernelPackage/sched-act-vlan
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Traffic VLAN manipulation
+ DEPENDS:=+kmod-sched-core
+ KCONFIG:=CONFIG_NET_ACT_VLAN
+ FILES:=$(LINUX_DIR)/net/sched/act_vlan.ko
+ AUTOLOAD:=$(call AutoProbe, act_vlan)
+endef
+
+define KernelPackage/sched-act-vlan/description
+ Allows to configure rules to push or pop vlan headers.
+endef
+
+$(eval $(call KernelPackage,sched-act-vlan))
+
+
+define KernelPackage/sched-bpf
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Traffic shaper support for Berkeley Packet Filter
+ KCONFIG:= \
+ CONFIG_NET_CLS_BPF \
+ CONFIG_NET_ACT_BPF
+ FILES:= \
+ $(LINUX_DIR)/net/sched/cls_bpf.ko \
+ $(LINUX_DIR)/net/sched/act_bpf.ko
+ AUTOLOAD:=$(call AutoLoad,72,cls_bpf act_bpf)
+endef
+
+$(eval $(call KernelPackage,sched-bpf))
+
+
+define KernelPackage/sched-cake
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Cake fq_codel/blue derived shaper
+ DEPENDS:=+kmod-sched-core
+ KCONFIG:=CONFIG_NET_SCH_CAKE
+ FILES:=$(LINUX_DIR)/net/sched/sch_cake.ko
+ AUTOLOAD:=$(call AutoProbe,sch_cake)
+endef
+
+define KernelPackage/sched-cake/description
+ Common Applications Kept Enhanced fq_codel/blue derived shaper
+endef
+
+$(eval $(call KernelPackage,sched-cake))
+
+
+define KernelPackage/sched-connmark
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Traffic shaper conntrack mark support
+ DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack-extra
+ KCONFIG:=CONFIG_NET_ACT_CONNMARK
+ FILES:=$(LINUX_DIR)/net/sched/act_connmark.ko
+ AUTOLOAD:=$(call AutoLoad,71, act_connmark)
+endef
+$(eval $(call KernelPackage,sched-connmark))
+
+
+define KernelPackage/sched-ctinfo
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Traffic shaper ctinfo support
+ DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack-extra
+ KCONFIG:=CONFIG_NET_ACT_CTINFO
+ FILES:=$(LINUX_DIR)/net/sched/act_ctinfo.ko
+ AUTOLOAD:=$(call AutoLoad,71, act_ctinfo)
+endef
+$(eval $(call KernelPackage,sched-ctinfo))
+
+
+define KernelPackage/sched-drr
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Deficit Round Robin scheduler (DRR)
+ DEPENDS:=+kmod-sched-core
+ KCONFIG:=CONFIG_NET_SCH_DRR
+ FILES:=$(LINUX_DIR)/net/sched/sch_drr.ko
+ AUTOLOAD:=$(call AutoProbe,sch_drr)
+endef
+
+define KernelPackage/sched-drr/description
+ DRR algorithm Configuration
+endef
+
+$(eval $(call KernelPackage,sched-drr))
+
+
+define KernelPackage/sched-flower
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Flower traffic classifier
+ DEPENDS:=+kmod-sched-core
+ KCONFIG:=CONFIG_NET_CLS_FLOWER
+ FILES:=$(LINUX_DIR)/net/sched/cls_flower.ko
+ AUTOLOAD:=$(call AutoProbe, cls_flower)
+endef
+
+define KernelPackage/sched-flower/description
+ Allows to classify packets based on a configurable combination of packet keys and masks.
+endef
+
+$(eval $(call KernelPackage,sched-flower))
+
+
+define KernelPackage/sched-fq-pie
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Flow Queue Proportional Integral Enhanced (FQ-PIE)
+ DEPENDS:=+kmod-sched-core +kmod-sched-pie
+ KCONFIG:=CONFIG_NET_SCH_FQ_PIE
+ FILES:=$(LINUX_DIR)/net/sched/sch_fq_pie.ko
+ AUTOLOAD:=$(call AutoProbe, sch_fq_pie)
+endef
+
+define KernelPackage/sched-fq-pie/description
+ A queuing discipline that combines Flow Queuing with the PIE AQM.
+endef
+
+$(eval $(call KernelPackage,sched-fq-pie))
+
+
+define KernelPackage/sched-ipset
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Traffic shaper ipset support
+ DEPENDS:=+kmod-sched-core +kmod-ipt-ipset
+ KCONFIG:= \
+ CONFIG_NET_EMATCH_IPSET
+ FILES:= \
+ $(LINUX_DIR)/net/sched/em_ipset.ko
+ AUTOLOAD:=$(call AutoLoad,72,em_ipset)
+endef
+
+$(eval $(call KernelPackage,sched-ipset))
+
+
+define KernelPackage/sched-mqprio-common
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=mqprio queue common dependencies support
+ DEPENDS:=@LINUX_6_6
+ HIDDEN:=1
+ KCONFIG:=CONFIG_NET_SCH_MQPRIO_LIB
+ FILES:=$(LINUX_DIR)/net/sched/sch_mqprio_lib.ko
+endef
+
+define KernelPackage/sched-mqprio-common/description
+ Common library for manipulating mqprio queue configurations
+endef
+
+$(eval $(call KernelPackage,sched-mqprio-common))
+
+
+define KernelPackage/sched-mqprio
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Multi-queue priority scheduler (MQPRIO)
+ DEPENDS:=+kmod-sched-core +LINUX_6_6:kmod-sched-mqprio-common
+ KCONFIG:=CONFIG_NET_SCH_MQPRIO
+ FILES:=$(LINUX_DIR)/net/sched/sch_mqprio.ko
+ AUTOLOAD:=$(call AutoProbe, sch_mqprio)
+endef
+
+define KernelPackage/sched-mqprio/description
+ This scheduler allows QOS to be offloaded on NICs that have support for offloading QOS schedulers.
+endef
+
+$(eval $(call KernelPackage,sched-mqprio))
+
+
+define KernelPackage/sched-pie
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Proportional Integral controller-Enhanced AQM (PIE)
+ DEPENDS:=+kmod-sched-core
+ KCONFIG:=CONFIG_NET_SCH_PIE
+ FILES:=$(LINUX_DIR)/net/sched/sch_pie.ko
+ AUTOLOAD:=$(call AutoProbe, sch_pie)
+endef
+
+define KernelPackage/sched-pie/description
+ A control theoretic active queue management scheme.
+endef
+
+$(eval $(call KernelPackage,sched-pie))
+
+
+define KernelPackage/sched-prio
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Multi Band Priority Queueing (PRIO)
+ DEPENDS:=+kmod-sched-core
+ KCONFIG:=CONFIG_NET_SCH_PRIO
+ FILES:=$(LINUX_DIR)/net/sched/sch_prio.ko
+ AUTOLOAD:=$(call AutoProbe,sch_prio)
+endef
+
+define KernelPackage/sched-prio/description
+ PRIO algorithm Configuration
+endef
+
+$(eval $(call KernelPackage,sched-prio))
+
+
+define KernelPackage/sched-red
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Random Early Detection (RED)
+ DEPENDS:=+kmod-sched-core
+ KCONFIG:=CONFIG_NET_SCH_RED
+ FILES:=$(LINUX_DIR)/net/sched/sch_red.ko
+ AUTOLOAD:=$(call AutoProbe,sch_red)
+endef
+
+define KernelPackage/sched-red/description
+ Random Early Detection (RED) algorithm Configuration
+endef
+
+$(eval $(call KernelPackage,sched-red))
+
+
+define KernelPackage/sched-skbprio
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=SKB priority queue scheduler (SKBPRIO)
+ DEPENDS:=+kmod-sched-core
+ KCONFIG:= CONFIG_NET_SCH_SKBPRIO
+ FILES:= $(LINUX_DIR)/net/sched/sch_skbprio.ko
+ AUTOLOAD:=$(call AutoProbe,sch_skbprio)
+endef
+
+$(eval $(call KernelPackage,sched-skbprio))
+
+
+define KernelPackage/bpf-test
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Test Berkeley Packet Filter functionality
+ KCONFIG:=CONFIG_TEST_BPF
+ FILES:=$(LINUX_DIR)/lib/test_bpf.ko
+endef
+
+$(eval $(call KernelPackage,bpf-test))
+
+
+SCHED_MODULES_EXTRA = sch_codel sch_gred sch_multiq sch_sfq sch_teql sch_fq act_pedit act_simple act_skbmod act_csum em_cmp em_nbyte em_meta em_text
+SCHED_FILES_EXTRA = $(foreach mod,$(SCHED_MODULES_EXTRA),$(LINUX_DIR)/net/sched/$(mod).ko)
+
+define KernelPackage/sched
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Extra traffic schedulers
+ DEPENDS:=+kmod-sched-core +kmod-lib-crc32c +kmod-lib-textsearch
+ KCONFIG:= \
+ CONFIG_NET_SCH_CODEL \
+ CONFIG_NET_SCH_GRED \
+ CONFIG_NET_SCH_MULTIQ \
+ CONFIG_NET_SCH_SFQ \
+ CONFIG_NET_SCH_TEQL \
+ CONFIG_NET_SCH_FQ \
+ CONFIG_NET_ACT_PEDIT \
+ CONFIG_NET_ACT_SIMP \
+ CONFIG_NET_ACT_SKBMOD \
+ CONFIG_NET_ACT_CSUM \
+ CONFIG_NET_EMATCH_CMP \
+ CONFIG_NET_EMATCH_NBYTE \
+ CONFIG_NET_EMATCH_META \
+ CONFIG_NET_EMATCH_TEXT
+ FILES:=$(SCHED_FILES_EXTRA)
+ AUTOLOAD:=$(call AutoLoad,73, $(SCHED_MODULES_EXTRA))
+endef
+
+define KernelPackage/sched/description
+ Extra kernel schedulers modules for IP traffic
+endef
+
+SCHED_TEQL_HOTPLUG:=hotplug-sched-teql.sh
+
+define KernelPackage/sched/install
+ $(INSTALL_DIR) $(1)/etc/hotplug.d/iface
+ $(INSTALL_DATA) ./files/$(SCHED_TEQL_HOTPLUG) $(1)/etc/hotplug.d/iface/15-teql
+endef
+
+$(eval $(call KernelPackage,sched))
+
+
+define KernelPackage/tcp-bbr
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=BBR TCP congestion control
+ KCONFIG:=CONFIG_TCP_CONG_BBR
+ FILES:=$(LINUX_DIR)/net/ipv4/tcp_bbr.ko
+ AUTOLOAD:=$(call AutoProbe,tcp_bbr)
+endef
+
+define KernelPackage/tcp-bbr/description
+ Kernel module for BBR (Bottleneck Bandwidth and RTT) TCP congestion
+ control. It requires the fq ("Fair Queue") pacing packet scheduler.
+ For kernel 4.13+, TCP internal pacing is implemented as fallback.
+endef
+
+TCP_BBR_SYSCTL_CONF:=sysctl-tcp-bbr.conf
+
+define KernelPackage/tcp-bbr/install
+ $(INSTALL_DIR) $(1)/etc/sysctl.d
+ $(INSTALL_DATA) ./files/$(TCP_BBR_SYSCTL_CONF) $(1)/etc/sysctl.d/12-tcp-bbr.conf
+endef
+
+$(eval $(call KernelPackage,tcp-bbr))
+
+define KernelPackage/tls
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=In-kernel TLS Support with HW Offload
+ KCONFIG:=CONFIG_TLS \
+ CONFIG_TLS_DEVICE=y
+ FILES:=$(LINUX_DIR)/net/tls/tls.ko
+ AUTOLOAD:=$(call AutoProbe,tls)
+endef
+
+define KernelPackage/tls/description
+ Kernel module for in-kernel TLS protocol support and hw offload
+ (to supported interfaces).
+ This allows symmetric encryption handling of the TLS protocol to
+ be done in-kernel and it's HW offload when available.
+endef
+
+$(eval $(call KernelPackage,tls))
+
+
+define KernelPackage/tcp-hybla
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=TCP-Hybla congestion control algorithm
+ KCONFIG:=CONFIG_TCP_CONG_HYBLA
+ FILES:=$(LINUX_DIR)/net/ipv4/tcp_hybla.ko
+ AUTOLOAD:=$(call AutoProbe,tcp_hybla)
+endef
+
+define KernelPackage/tcp-hybla/description
+ TCP-Hybla is a sender-side only change that eliminates penalization of
+ long-RTT, large-bandwidth connections, like when satellite legs are
+ involved, especially when sharing a common bottleneck with normal
+ terrestrial connections.
+endef
+
+$(eval $(call KernelPackage,tcp-hybla))
+
+
+define KernelPackage/tcp-scalable
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=TCP-Scalable congestion control algorithm
+ KCONFIG:=CONFIG_TCP_CONG_SCALABLE
+ FILES:=$(LINUX_DIR)/net/ipv4/tcp_scalable.ko
+ AUTOLOAD:=$(call AutoProbe,tcp-scalable)
+endef
+
+define KernelPackage/tcp-scalable/description
+ Scalable TCP is a sender-side only change to TCP which uses a
+ MIMD congestion control algorithm which has some nice scaling
+ properties, though is known to have fairness issues.
+ See http://www.deneholme.net/tom/scalable/
+endef
+
+$(eval $(call KernelPackage,tcp-scalable))
+
+
+define KernelPackage/ax25
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=AX25 support
+ DEPENDS:=+kmod-lib-crc16
+ KCONFIG:= \
+ CONFIG_HAMRADIO=y \
+ CONFIG_AX25 \
+ CONFIG_MKISS
+ FILES:= \
+ $(LINUX_DIR)/net/ax25/ax25.ko \
+ $(LINUX_DIR)/drivers/net/hamradio/mkiss.ko
+ AUTOLOAD:=$(call AutoLoad,80,ax25 mkiss)
+endef
+
+define KernelPackage/ax25/description
+ Kernel modules for AX25 support
+endef
+
+$(eval $(call KernelPackage,ax25))
+
+
+define KernelPackage/pktgen
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ DEPENDS:=@!TARGET_uml
+ TITLE:=Network packet generator
+ KCONFIG:=CONFIG_NET_PKTGEN
+ FILES:=$(LINUX_DIR)/net/core/pktgen.ko
+ AUTOLOAD:=$(call AutoLoad,99,pktgen)
+endef
+
+define KernelPackage/pktgen/description
+ Kernel modules for the Network Packet Generator
+endef
+
+$(eval $(call KernelPackage,pktgen))
+
+define KernelPackage/l2tp
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Layer Two Tunneling Protocol (L2TP)
+ DEPENDS:= \
+ +kmod-udptunnel4 \
+ +IPV6:kmod-udptunnel6
+ KCONFIG:=CONFIG_L2TP \
+ CONFIG_L2TP_V3=y \
+ CONFIG_L2TP_DEBUGFS=n
+ FILES:=$(LINUX_DIR)/net/l2tp/l2tp_core.ko \
+ $(LINUX_DIR)/net/l2tp/l2tp_netlink.ko
+ AUTOLOAD:=$(call AutoLoad,32,l2tp_core l2tp_netlink)
+endef
+
+define KernelPackage/l2tp/description
+ Kernel modules for L2TP V3 Support
+endef
+
+$(eval $(call KernelPackage,l2tp))
+
+
+define KernelPackage/l2tp-eth
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=L2TP ethernet pseudowire support for L2TPv3
+ DEPENDS:=+kmod-l2tp
+ KCONFIG:=CONFIG_L2TP_ETH
+ FILES:=$(LINUX_DIR)/net/l2tp/l2tp_eth.ko
+ AUTOLOAD:=$(call AutoLoad,33,l2tp_eth)
+endef
+
+define KernelPackage/l2tp-eth/description
+ Kernel modules for L2TP ethernet pseudowire support for L2TPv3
+endef
+
+$(eval $(call KernelPackage,l2tp-eth))
+
+define KernelPackage/l2tp-ip
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=L2TP IP encapsulation for L2TPv3
+ DEPENDS:=+kmod-l2tp
+ KCONFIG:=CONFIG_L2TP_IP
+ FILES:= \
+ $(LINUX_DIR)/net/l2tp/l2tp_ip.ko \
+ $(if $(CONFIG_IPV6),$(LINUX_DIR)/net/l2tp/l2tp_ip6.ko)
+ AUTOLOAD:=$(call AutoLoad,33,l2tp_ip $(if $(CONFIG_IPV6),l2tp_ip6))
+endef
+
+define KernelPackage/l2tp-ip/description
+ Kernel modules for L2TP IP encapsulation for L2TPv3
+endef
+
+$(eval $(call KernelPackage,l2tp-ip))
+
+
+define KernelPackage/sctp
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=SCTP protocol kernel support
+ KCONFIG:=\
+ CONFIG_IP_SCTP \
+ CONFIG_SCTP_DBG_MSG=n \
+ CONFIG_SCTP_DBG_OBJCNT=n \
+ CONFIG_SCTP_HMAC_NONE=n \
+ CONFIG_SCTP_HMAC_SHA1=n \
+ CONFIG_SCTP_HMAC_MD5=y \
+ CONFIG_SCTP_COOKIE_HMAC_SHA1=n \
+ CONFIG_SCTP_COOKIE_HMAC_MD5=y \
+ CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE=n \
+ CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=n \
+ CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
+ FILES:= $(LINUX_DIR)/net/sctp/sctp.ko
+ AUTOLOAD:= $(call AutoLoad,32,sctp)
+ DEPENDS:=+kmod-lib-crc32c +kmod-crypto-md5 +kmod-crypto-hmac \
+ +kmod-udptunnel4 +kmod-udptunnel6
+endef
+
+define KernelPackage/sctp/description
+ Kernel modules for SCTP protocol support
+endef
+
+$(eval $(call KernelPackage,sctp))
+
+
+define KernelPackage/netem
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Network emulation functionality
+ DEPENDS:=+kmod-sched
+ KCONFIG:=CONFIG_NET_SCH_NETEM
+ FILES:=$(LINUX_DIR)/net/sched/sch_netem.ko
+ AUTOLOAD:=$(call AutoLoad,99,netem)
+endef
+
+define KernelPackage/netem/description
+ Kernel modules for emulating the properties of wide area networks
+endef
+
+$(eval $(call KernelPackage,netem))
+
+define KernelPackage/slip
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ DEPENDS:=+kmod-slhc
+ TITLE:=SLIP modules
+ KCONFIG:= \
+ CONFIG_SLIP \
+ CONFIG_SLIP_COMPRESSED=y \
+ CONFIG_SLIP_SMART=y \
+ CONFIG_SLIP_MODE_SLIP6=y
+
+ FILES:= \
+ $(LINUX_DIR)/drivers/net/slip/slip.ko
+ AUTOLOAD:=$(call AutoLoad,30,slip)
+endef
+
+define KernelPackage/slip/description
+ Kernel modules for SLIP support
+endef
+
+$(eval $(call KernelPackage,slip))
+
+define KernelPackage/dnsresolver
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=In-kernel DNS Resolver
+ KCONFIG:= CONFIG_DNS_RESOLVER
+ FILES:=$(LINUX_DIR)/net/dns_resolver/dns_resolver.ko
+ AUTOLOAD:=$(call AutoLoad,30,dns_resolver)
+endef
+
+$(eval $(call KernelPackage,dnsresolver))
+
+define KernelPackage/rxrpc
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=AF_RXRPC support
+ HIDDEN:=1
+ KCONFIG:= \
+ CONFIG_AF_RXRPC \
+ CONFIG_RXKAD=m \
+ CONFIG_AF_RXRPC_DEBUG=n
+ FILES:= \
+ $(LINUX_DIR)/net/rxrpc/rxrpc.ko
+ AUTOLOAD:=$(call AutoLoad,30,rxrpc.ko)
+ DEPENDS:= +kmod-crypto-manager +kmod-crypto-pcbc +kmod-crypto-fcrypt \
+ +kmod-udptunnel4 +kmod-udptunnel6
+endef
+
+define KernelPackage/rxrpc/description
+ Kernel support for AF_RXRPC; required for AFS client
+endef
+
+$(eval $(call KernelPackage,rxrpc))
+
+define KernelPackage/mpls
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=MPLS support
+ DEPENDS:=+kmod-iptunnel
+ KCONFIG:= \
+ CONFIG_MPLS=y \
+ CONFIG_LWTUNNEL=y \
+ CONFIG_LWTUNNEL_BPF=n \
+ CONFIG_NET_MPLS_GSO=m \
+ CONFIG_MPLS_ROUTING=m \
+ CONFIG_MPLS_IPTUNNEL=m
+ FILES:= \
+ $(LINUX_DIR)/net/mpls/mpls_gso.ko \
+ $(LINUX_DIR)/net/mpls/mpls_iptunnel.ko \
+ $(LINUX_DIR)/net/mpls/mpls_router.ko
+ AUTOLOAD:=$(call AutoLoad,30,mpls_router mpls_iptunnel mpls_gso)
+endef
+
+define KernelPackage/mpls/description
+ Kernel support for MPLS
+endef
+
+$(eval $(call KernelPackage,mpls))
+
+define KernelPackage/9pnet
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Plan 9 Resource Sharing Support (9P2000)
+ KCONFIG:= \
+ CONFIG_NET_9P \
+ CONFIG_NET_9P_DEBUG=n \
+ CONFIG_NET_9P_FD=n@ge5.17
+ FILES:= \
+ $(LINUX_DIR)/net/9p/9pnet.ko
+ AUTOLOAD:=$(call AutoLoad,29,9pnet)
+endef
+
+define KernelPackage/9pnet/description
+ Kernel support support for
+ Plan 9 resource sharing via the 9P2000 protocol.
+endef
+
+$(eval $(call KernelPackage,9pnet))
+
+define KernelPackage/9pvirtio
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Plan 9 Virtio Support
+ DEPENDS:=+kmod-9pnet @VIRTIO_SUPPORT
+ KCONFIG:= \
+ CONFIG_NET_9P_XEN=n \
+ CONFIG_NET_9P_VIRTIO
+ FILES:= \
+ $(LINUX_DIR)/net/9p/9pnet_virtio.ko
+ AUTOLOAD:=$(call AutoLoad,29,9pnet_virtio)
+endef
+
+define KernelPackage/9pvirtio/description
+ Kernel support support for
+ Plan 9 resource sharing for virtio.
+endef
+
+$(eval $(call KernelPackage,9pvirtio))
+
+
+define KernelPackage/nlmon
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Virtual netlink monitoring device
+ KCONFIG:=CONFIG_NLMON
+ FILES:=$(LINUX_DIR)/drivers/net/nlmon.ko
+ AUTOLOAD:=$(call AutoProbe,nlmon)
+endef
+
+define KernelPackage/nlmon/description
+ Kernel module which adds a monitoring device for netlink.
+endef
+
+$(eval $(call KernelPackage,nlmon))
+
+
+define KernelPackage/mdio
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=MDIO (clause 45) PHY support
+ KCONFIG:=CONFIG_MDIO
+ HIDDEN:=1
+ FILES:=$(LINUX_DIR)/drivers/net/mdio.ko
+ AUTOLOAD:=$(call AutoLoad,32,mdio)
+endef
+
+define KernelPackage/mdio/description
+ Kernel modules for MDIO (clause 45) PHY support
+endef
+
+$(eval $(call KernelPackage,mdio))
+
+define KernelPackage/mdio-bus-mux
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=MDIO bus multiplexers
+ KCONFIG:=CONFIG_MDIO_BUS_MUX
+ HIDDEN:=1
+ FILES:=$(LINUX_DIR)/drivers/net/mdio/mdio-mux.ko
+ AUTOLOAD:=$(call AutoLoad,32,mdio-mux)
+endef
+
+define KernelPackage/mdio-bus-mux/description
+ Kernel framework for MDIO bus multiplexers.
+endef
+
+$(eval $(call KernelPackage,mdio-bus-mux))
+
+define KernelPackage/macsec
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=IEEE 802.1AE MAC-level encryption (MAC)
+ DEPENDS:=+kmod-crypto-gcm
+ KCONFIG:=CONFIG_MACSEC
+ FILES:=$(LINUX_DIR)/drivers/net/macsec.ko
+ AUTOLOAD:=$(call AutoLoad,13,macsec)
+endef
+
+define KernelPackage/macsec/description
+ MACsec is an encryption standard for Ethernet.
+endef
+
+$(eval $(call KernelPackage,macsec))
+
+
+define KernelPackage/netlink-diag
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Netlink diag support for ss utility
+ KCONFIG:=CONFIG_NETLINK_DIAG
+ FILES:=$(LINUX_DIR)/net/netlink/netlink_diag.ko
+ AUTOLOAD:=$(call AutoLoad,31,netlink-diag)
+endef
+
+define KernelPackage/netlink-diag/description
+ Netlink diag is a module made for use with iproute2's ss utility
+endef
+
+$(eval $(call KernelPackage,netlink-diag))
+
+
+define KernelPackage/inet-diag
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=INET diag support for ss utility
+ KCONFIG:= \
+ CONFIG_INET_DIAG \
+ CONFIG_INET_TCP_DIAG \
+ CONFIG_INET_UDP_DIAG \
+ CONFIG_INET_RAW_DIAG \
+ CONFIG_INET_DIAG_DESTROY=n
+ FILES:= \
+ $(LINUX_DIR)/net/ipv4/inet_diag.ko \
+ $(LINUX_DIR)/net/ipv4/tcp_diag.ko \
+ $(LINUX_DIR)/net/ipv4/udp_diag.ko \
+ $(LINUX_DIR)/net/ipv4/raw_diag.ko
+ AUTOLOAD:=$(call AutoLoad,31,inet_diag tcp_diag udp_diag raw_diag)
+endef
+
+define KernelPackage/inet-diag/description
+Support for INET (TCP, DCCP, etc) socket monitoring interface used by
+native Linux tools such as ss.
+endef
+
+$(eval $(call KernelPackage,inet-diag))
+
+
+define KernelPackage/inet-mptcp-diag
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=INET diag support for MultiPath TCP
+ DEPENDS:=@KERNEL_MPTCP +kmod-inet-diag
+ KCONFIG:=CONFIG_INET_MPTCP_DIAG
+ FILES:=$(LINUX_DIR)/net/mptcp/mptcp_diag.ko
+ AUTOLOAD:=$(call AutoProbe,mptcp_diag)
+endef
+
+define KernelPackage/inet-mptcp-diag/description
+Support for INET (MultiPath TCP) socket monitoring interface used by
+native Linux tools such as ss.
+endef
+
+$(eval $(call KernelPackage,inet-mptcp-diag))
+
+
+define KernelPackage/xdp-sockets-diag
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=PF_XDP sockets monitoring interface support for ss utility
+ DEPENDS:=@KERNEL_XDP_SOCKETS
+ KCONFIG:=CONFIG_XDP_SOCKETS_DIAG
+ FILES:=$(LINUX_DIR)/net/xdp/xsk_diag.ko
+ AUTOLOAD:=$(call AutoLoad,31,xsk_diag)
+endef
+
+define KernelPackage/xdp-sockets-diag/description
+ Support for PF_XDP sockets monitoring interface used by the ss tool
+endef
+
+$(eval $(call KernelPackage,xdp-sockets-diag))
+
+
+define KernelPackage/wireguard
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=WireGuard secure network tunnel
+ DEPENDS:= \
+ +kmod-crypto-lib-chacha20poly1305 \
+ +kmod-crypto-lib-curve25519 \
+ +kmod-udptunnel4 \
+ +IPV6:kmod-udptunnel6
+ KCONFIG:= \
+ CONFIG_WIREGUARD \
+ CONFIG_WIREGUARD_DEBUG=n
+ FILES:=$(LINUX_DIR)/drivers/net/wireguard/wireguard.ko
+ AUTOLOAD:=$(call AutoProbe,wireguard)
+endef
+
+define KernelPackage/wireguard/description
+ WireGuard is a novel VPN that runs inside the Linux Kernel and utilizes
+ state-of-the-art cryptography. It aims to be faster, simpler, leaner, and
+ more useful than IPSec, while avoiding the massive headache. It intends to
+ be considerably more performant than OpenVPN. WireGuard is designed as a
+ general purpose VPN for running on embedded interfaces and super computers
+ alike, fit for many different circumstances. It uses UDP.
+endef
+
+$(eval $(call KernelPackage,wireguard))
+
+
+define KernelPackage/netconsole
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Network console logging support
+ KCONFIG:=CONFIG_NETCONSOLE \
+ CONFIG_NETCONSOLE_DYNAMIC=n
+ FILES:=$(LINUX_DIR)/drivers/net/netconsole.ko
+ AUTOLOAD:=$(call AutoProbe,netconsole)
+endef
+
+define KernelPackage/netconsole/description
+ Network console logging support.
+endef
+
+$(eval $(call KernelPackage,netconsole))
+
+
+define KernelPackage/qrtr
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Qualcomm IPC Router support
+ HIDDEN:=1
+ DEPENDS:=@!(LINUX_5_4||LINUX_5_10)
+ KCONFIG:=CONFIG_QRTR
+ FILES:= \
+ $(LINUX_DIR)/net/qrtr/qrtr.ko
+ AUTOLOAD:=$(call AutoProbe,qrtr)
+endef
+
+define KernelPackage/qrtr/description
+ Qualcomm IPC Router support
+endef
+
+$(eval $(call KernelPackage,qrtr))
+
+define KernelPackage/qrtr-tun
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=TUN device for Qualcomm IPC Router
+ DEPENDS:=+kmod-qrtr
+ KCONFIG:=CONFIG_QRTR_TUN
+ FILES:= $(LINUX_DIR)/net/qrtr/qrtr-tun.ko
+ AUTOLOAD:=$(call AutoProbe,qrtr-tun)
+endef
+
+define KernelPackage/qrtr-tun/description
+ TUN device for Qualcomm IPC Router
+endef
+
+$(eval $(call KernelPackage,qrtr-tun))
+
+define KernelPackage/qrtr-smd
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=SMD IPC Router channels
+ DEPENDS:=+kmod-qrtr @TARGET_qualcommax
+ KCONFIG:=CONFIG_QRTR_SMD
+ FILES:= $(LINUX_DIR)/net/qrtr/qrtr-smd.ko
+ AUTOLOAD:=$(call AutoProbe,qrtr-smd)
+endef
+
+define KernelPackage/qrtr-smd/description
+ SMD IPC Router channels
+endef
+
+$(eval $(call KernelPackage,qrtr-smd))
+
+define KernelPackage/qrtr-mhi
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=MHI IPC Router channels
+ DEPENDS:=+kmod-mhi-bus +kmod-qrtr
+ KCONFIG:=CONFIG_QRTR_MHI
+ FILES:= $(LINUX_DIR)/net/qrtr/qrtr-mhi.ko
+ AUTOLOAD:=$(call AutoProbe,qrtr-mhi)
+endef
+
+define KernelPackage/qrtr-mhi/description
+ MHI IPC Router channels
+endef
+
+$(eval $(call KernelPackage,qrtr-mhi))
diff --git a/package/kernel/linux/modules/nls.mk b/package/kernel/linux/modules/nls.mk
new file mode 100644
index 0000000..893ec9c
--- /dev/null
+++ b/package/kernel/linux/modules/nls.mk
@@ -0,0 +1,358 @@
+#
+# Copyright (C) 2006-2011 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define KernelPackage/nls-base
+ SUBMENU:=Native Language Support
+ TITLE:=Native Language Support
+ KCONFIG:=CONFIG_NLS
+ FILES:=$(LINUX_DIR)/fs/nls/nls_base.ko
+endef
+
+define KernelPackage/nls-base/description
+ Kernel module for NLS (Native Language Support)
+endef
+
+$(eval $(call KernelPackage,nls-base))
+
+
+define KernelPackage/nls-cp437
+ SUBMENU:=Native Language Support
+ TITLE:=Codepage 437 (United States, Canada)
+ KCONFIG:=CONFIG_NLS_CODEPAGE_437
+ FILES:=$(LINUX_DIR)/fs/nls/nls_cp437.ko
+ AUTOLOAD:=$(call AutoLoad,25,nls_cp437)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/nls-cp437/description
+ Kernel module for NLS Codepage 437 (United States, Canada)
+endef
+
+$(eval $(call KernelPackage,nls-cp437))
+
+
+define KernelPackage/nls-cp775
+ SUBMENU:=Native Language Support
+ TITLE:=Codepage 775 (Baltic Rim)
+ KCONFIG:=CONFIG_NLS_CODEPAGE_775
+ FILES:=$(LINUX_DIR)/fs/nls/nls_cp775.ko
+ AUTOLOAD:=$(call AutoLoad,25,nls_cp775)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/nls-cp775/description
+ Kernel module for NLS Codepage 775 (Baltic Rim)
+endef
+
+$(eval $(call KernelPackage,nls-cp775))
+
+
+define KernelPackage/nls-cp850
+ SUBMENU:=Native Language Support
+ TITLE:=Codepage 850 (Europe)
+ KCONFIG:=CONFIG_NLS_CODEPAGE_850
+ FILES:=$(LINUX_DIR)/fs/nls/nls_cp850.ko
+ AUTOLOAD:=$(call AutoLoad,25,nls_cp850)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/nls-cp850/description
+ Kernel module for NLS Codepage 850 (Europe)
+endef
+
+$(eval $(call KernelPackage,nls-cp850))
+
+
+define KernelPackage/nls-cp852
+ SUBMENU:=Native Language Support
+ TITLE:=Codepage 852 (Europe)
+ KCONFIG:=CONFIG_NLS_CODEPAGE_852
+ FILES:=$(LINUX_DIR)/fs/nls/nls_cp852.ko
+ AUTOLOAD:=$(call AutoLoad,25,nls_cp852)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/nls-cp852/description
+ Kernel module for NLS Codepage 852 (Europe)
+endef
+
+$(eval $(call KernelPackage,nls-cp852))
+
+
+define KernelPackage/nls-cp862
+ SUBMENU:=Native Language Support
+ TITLE:=Codepage 862 (Hebrew)
+ KCONFIG:=CONFIG_NLS_CODEPAGE_862
+ FILES:=$(LINUX_DIR)/fs/nls/nls_cp862.ko
+ AUTOLOAD:=$(call AutoLoad,25,nls_cp862)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/nls-cp862/description
+ Kernel module for NLS Codepage 862 (Hebrew)
+endef
+
+$(eval $(call KernelPackage,nls-cp862))
+
+
+define KernelPackage/nls-cp864
+ SUBMENU:=Native Language Support
+ TITLE:=Codepage 864 (Arabic)
+ KCONFIG:=CONFIG_NLS_CODEPAGE_864
+ FILES:=$(LINUX_DIR)/fs/nls/nls_cp864.ko
+ AUTOLOAD:=$(call AutoLoad,25,nls_cp864)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/nls-cp864/description
+ Kernel module for NLS Codepage 864 (Arabic)
+endef
+
+$(eval $(call KernelPackage,nls-cp864))
+
+
+define KernelPackage/nls-cp866
+ SUBMENU:=Native Language Support
+ TITLE:=Codepage 866 (Cyrillic)
+ KCONFIG:=CONFIG_NLS_CODEPAGE_866
+ FILES:=$(LINUX_DIR)/fs/nls/nls_cp866.ko
+ AUTOLOAD:=$(call AutoLoad,25,nls_cp866)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/nls-cp866/description
+ Kernel module for NLS Codepage 866 (Cyrillic)
+endef
+
+$(eval $(call KernelPackage,nls-cp866))
+
+
+define KernelPackage/nls-cp932
+ SUBMENU:=Native Language Support
+ TITLE:=Codepage 932 (Japanese)
+ KCONFIG:=CONFIG_NLS_CODEPAGE_932
+ FILES:= \
+ $(LINUX_DIR)/fs/nls/nls_cp932.ko \
+ $(LINUX_DIR)/fs/nls/nls_euc-jp.ko
+ AUTOLOAD:=$(call AutoLoad,25,nls_cp932 nls_euc-jp)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/nls-cp932/description
+ Kernel module for NLS Codepage 932 (Japanese)
+endef
+
+$(eval $(call KernelPackage,nls-cp932))
+
+
+define KernelPackage/nls-cp936
+ SUBMENU:=Native Language Support
+ TITLE:=Codepage 936 (Simplified Chinese)
+ KCONFIG:=CONFIG_NLS_CODEPAGE_936
+ FILES:=$(LINUX_DIR)/fs/nls/nls_cp936.ko
+ AUTOLOAD:=$(call AutoLoad,25,nls_cp936)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/nls-cp936/description
+ Kernel module for NLS Codepage 936 (Simplified Chinese)
+endef
+
+$(eval $(call KernelPackage,nls-cp936))
+
+
+define KernelPackage/nls-cp950
+ SUBMENU:=Native Language Support
+ TITLE:=Codepage 950 (Traditional Chinese)
+ KCONFIG:=CONFIG_NLS_CODEPAGE_950
+ FILES:=$(LINUX_DIR)/fs/nls/nls_cp950.ko
+ AUTOLOAD:=$(call AutoLoad,25,nls_cp950)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/nls-cp950/description
+ Kernel module for NLS Codepage 950 (Traditional Chinese)
+endef
+
+$(eval $(call KernelPackage,nls-cp950))
+
+
+define KernelPackage/nls-cp1250
+ SUBMENU:=Native Language Support
+ TITLE:=Codepage 1250 (Eastern Europe)
+ KCONFIG:=CONFIG_NLS_CODEPAGE_1250
+ FILES:=$(LINUX_DIR)/fs/nls/nls_cp1250.ko
+ AUTOLOAD:=$(call AutoLoad,25,nls_cp1250)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/nls-cp1250/description
+ Kernel module for NLS Codepage 1250 (Eastern Europe)
+endef
+
+$(eval $(call KernelPackage,nls-cp1250))
+
+
+define KernelPackage/nls-cp1251
+ SUBMENU:=Native Language Support
+ TITLE:=Codepage 1251 (Russian)
+ KCONFIG:=CONFIG_NLS_CODEPAGE_1251
+ FILES:=$(LINUX_DIR)/fs/nls/nls_cp1251.ko
+ AUTOLOAD:=$(call AutoLoad,25,nls_cp1251)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/nls-cp1251/description
+ Kernel module for NLS Codepage 1251 (Russian)
+endef
+
+$(eval $(call KernelPackage,nls-cp1251))
+
+
+define KernelPackage/nls-iso8859-1
+ SUBMENU:=Native Language Support
+ TITLE:=ISO 8859-1 (Latin 1; Western European Languages)
+ KCONFIG:=CONFIG_NLS_ISO8859_1
+ FILES:=$(LINUX_DIR)/fs/nls/nls_iso8859-1.ko
+ AUTOLOAD:=$(call AutoLoad,25,nls_iso8859-1)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/nls-iso8859-1/description
+ Kernel module for NLS ISO 8859-1 (Latin 1)
+endef
+
+$(eval $(call KernelPackage,nls-iso8859-1))
+
+
+define KernelPackage/nls-iso8859-2
+ SUBMENU:=Native Language Support
+ TITLE:=ISO 8859-2 (Latin 2; Central European Languages)
+ KCONFIG:=CONFIG_NLS_ISO8859_2
+ FILES:=$(LINUX_DIR)/fs/nls/nls_iso8859-2.ko
+ AUTOLOAD:=$(call AutoLoad,25,nls_iso8859-2)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/nls-iso8859-2/description
+ Kernel module for NLS ISO 8859-2 (Latin 2)
+endef
+
+$(eval $(call KernelPackage,nls-iso8859-2))
+
+
+define KernelPackage/nls-iso8859-6
+ SUBMENU:=Native Language Support
+ TITLE:=ISO 8859-6 (Arabic)
+ KCONFIG:=CONFIG_NLS_ISO8859_6
+ FILES:=$(LINUX_DIR)/fs/nls/nls_iso8859-6.ko
+ AUTOLOAD:=$(call AutoLoad,25,nls_iso8859-6)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/nls-iso8859-6/description
+ Kernel module for NLS ISO 8859-6 (Arabic)
+endef
+
+$(eval $(call KernelPackage,nls-iso8859-6))
+
+
+define KernelPackage/nls-iso8859-8
+ SUBMENU:=Native Language Support
+ TITLE:=ISO 8859-8, CP1255 (Hebrew)
+ KCONFIG:=CONFIG_NLS_ISO8859_8
+ FILES:=$(LINUX_DIR)/fs/nls/nls_cp1255.ko
+ AUTOLOAD:=$(call AutoLoad,25,nls_cp1255)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/nls-iso8859-8/description
+ Kernel module for Hebrew charsets (ISO-8859-8, CP1255)
+endef
+
+$(eval $(call KernelPackage,nls-iso8859-8))
+
+
+define KernelPackage/nls-iso8859-13
+ SUBMENU:=Native Language Support
+ TITLE:=ISO 8859-13 (Latin 7; Baltic)
+ KCONFIG:=CONFIG_NLS_ISO8859_13
+ FILES:=$(LINUX_DIR)/fs/nls/nls_iso8859-13.ko
+ AUTOLOAD:=$(call AutoLoad,25,nls_iso8859-13)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/nls-iso8859-13/description
+ Kernel module for NLS ISO 8859-13 (Latin 7; Baltic)
+endef
+
+$(eval $(call KernelPackage,nls-iso8859-13))
+
+
+define KernelPackage/nls-iso8859-15
+ SUBMENU:=Native Language Support
+ TITLE:=ISO 8859-15 (Latin 9; Western, with Euro symbol)
+ KCONFIG:=CONFIG_NLS_ISO8859_15
+ FILES:=$(LINUX_DIR)/fs/nls/nls_iso8859-15.ko
+ AUTOLOAD:=$(call AutoLoad,25,nls_iso8859-15)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/nls-iso8859-15/description
+ Kernel module for NLS ISO 8859-15 (Latin 9)
+endef
+
+$(eval $(call KernelPackage,nls-iso8859-15))
+
+
+define KernelPackage/nls-koi8r
+ SUBMENU:=Native Language Support
+ TITLE:=KOI8-R (Russian)
+ KCONFIG:=CONFIG_NLS_KOI8_R
+ FILES:=$(LINUX_DIR)/fs/nls/nls_koi8-r.ko
+ AUTOLOAD:=$(call AutoLoad,25,nls_koi8-r)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/nls-koi8r/description
+ Kernel module for NLS KOI8-R (Russian)
+endef
+
+$(eval $(call KernelPackage,nls-koi8r))
+
+
+define KernelPackage/nls-utf8
+ SUBMENU:=Native Language Support
+ TITLE:=UTF-8
+ KCONFIG:=CONFIG_NLS_UTF8
+ FILES:=$(LINUX_DIR)/fs/nls/nls_utf8.ko
+ AUTOLOAD:=$(call AutoLoad,25,nls_utf8)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/nls-utf8/description
+ Kernel module for NLS UTF-8
+endef
+
+$(eval $(call KernelPackage,nls-utf8))
+
+
+define KernelPackage/nls-ucs2-utils
+ SUBMENU:=Native Language Support
+ TITLE:=UCS-2 common library
+ DEPENDS+=@LINUX_6_6
+ HIDDEN:=1
+ KCONFIG:=CONFIG_NLS_UCS2_UTILS
+ FILES:=$(LINUX_DIR)/fs/nls/nls_ucs2_utils.ko
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/nls-ucs2-utils/description
+ UCS-2 common library
+endef
+
+$(eval $(call KernelPackage,nls-ucs2-utils))
diff --git a/package/kernel/linux/modules/other.mk b/package/kernel/linux/modules/other.mk
new file mode 100644
index 0000000..5c62682
--- /dev/null
+++ b/package/kernel/linux/modules/other.mk
@@ -0,0 +1,1332 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+OTHER_MENU:=Other modules
+
+WATCHDOG_DIR:=watchdog
+
+
+define KernelPackage/6lowpan
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=6LoWPAN shared code
+ KCONFIG:= \
+ CONFIG_6LOWPAN \
+ CONFIG_6LOWPAN_NHC=n
+ FILES:=$(LINUX_DIR)/net/6lowpan/6lowpan.ko
+ AUTOLOAD:=$(call AutoProbe,6lowpan)
+endef
+
+define KernelPackage/6lowpan/description
+ Shared 6lowpan code for IEEE 802.15.4 and Bluetooth.
+endef
+
+$(eval $(call KernelPackage,6lowpan))
+
+
+define KernelPackage/bluetooth
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Bluetooth support
+ DEPENDS:=@USB_SUPPORT +kmod-crypto-cmac +kmod-crypto-ecb \
+ +kmod-crypto-ecdh +kmod-crypto-hash +kmod-hid +kmod-lib-crc16 \
+ +kmod-regmap-core +kmod-serdev +kmod-usb-core
+ KCONFIG:= \
+ CONFIG_BT \
+ CONFIG_BT_BREDR=y \
+ CONFIG_BT_DEBUGFS=n \
+ CONFIG_BT_LE=y \
+ CONFIG_BT_RFCOMM \
+ CONFIG_BT_BNEP \
+ CONFIG_BT_HCIBTUSB \
+ CONFIG_BT_HCIBTUSB_BCM=y \
+ CONFIG_BT_HCIBTUSB_MTK=y \
+ CONFIG_BT_HCIBTUSB_RTL=y \
+ CONFIG_BT_HCIUART \
+ CONFIG_BT_HCIUART_BCM=y \
+ CONFIG_BT_HCIUART_INTEL=n \
+ CONFIG_BT_HCIUART_H4 \
+ CONFIG_BT_HCIUART_NOKIA=n \
+ CONFIG_BT_HCIUART_QCA=y \
+ CONFIG_BT_HCIUART_SERDEV=y \
+ CONFIG_BT_HIDP
+ $(call AddDepends/rfkill)
+ FILES:= \
+ $(LINUX_DIR)/net/bluetooth/bluetooth.ko \
+ $(LINUX_DIR)/net/bluetooth/rfcomm/rfcomm.ko \
+ $(LINUX_DIR)/net/bluetooth/bnep/bnep.ko \
+ $(LINUX_DIR)/net/bluetooth/hidp/hidp.ko \
+ $(LINUX_DIR)/drivers/bluetooth/hci_uart.ko \
+ $(LINUX_DIR)/drivers/bluetooth/btusb.ko \
+ $(LINUX_DIR)/drivers/bluetooth/btbcm.ko \
+ $(LINUX_DIR)/drivers/bluetooth/btqca.ko \
+ $(LINUX_DIR)/drivers/bluetooth/btrtl.ko \
+ $(LINUX_DIR)/drivers/bluetooth/btintel.ko \
+ $(LINUX_DIR)/drivers/bluetooth/btmtk.ko@ge5.17
+ AUTOLOAD:=$(call AutoProbe,bluetooth rfcomm bnep hidp hci_uart btusb)
+endef
+
+define KernelPackage/bluetooth/description
+ Kernel support for Bluetooth devices
+endef
+
+$(eval $(call KernelPackage,bluetooth))
+
+define KernelPackage/ath3k
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=ATH3K Kernel Module support
+ DEPENDS:=+kmod-bluetooth +ar3k-firmware
+ KCONFIG:= \
+ CONFIG_BT_ATH3K \
+ CONFIG_BT_HCIUART_ATH3K=y
+ FILES:= \
+ $(LINUX_DIR)/drivers/bluetooth/ath3k.ko
+ AUTOLOAD:=$(call AutoProbe,ath3k)
+endef
+
+define KernelPackage/ath3k/description
+ Kernel support for ATH3K Module
+endef
+
+$(eval $(call KernelPackage,ath3k))
+
+
+define KernelPackage/bluetooth-6lowpan
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Bluetooth 6LoWPAN support
+ DEPENDS:=+kmod-6lowpan +kmod-bluetooth
+ KCONFIG:=CONFIG_BT_6LOWPAN
+ FILES:=$(LINUX_DIR)/net/bluetooth/bluetooth_6lowpan.ko
+ AUTOLOAD:=$(call AutoProbe,bluetooth_6lowpan)
+endef
+
+define KernelPackage/bluetooth-6lowpan/description
+ Kernel support for 6LoWPAN over Bluetooth Low Energy devices
+endef
+
+$(eval $(call KernelPackage,bluetooth-6lowpan))
+
+
+define KernelPackage/btmrvl
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Marvell Bluetooth Kernel Module support
+ DEPENDS:=+kmod-mmc +kmod-bluetooth +mwifiex-sdio-firmware
+ KCONFIG:= \
+ CONFIG_BT_MRVL \
+ CONFIG_BT_MRVL_SDIO
+ FILES:= \
+ $(LINUX_DIR)/drivers/bluetooth/btmrvl.ko \
+ $(LINUX_DIR)/drivers/bluetooth/btmrvl_sdio.ko
+ AUTOLOAD:=$(call AutoProbe,btmrvl btmrvl_sdio)
+endef
+
+define KernelPackage/btmrvl/description
+ Kernel support for Marvell SDIO Bluetooth Module
+endef
+
+$(eval $(call KernelPackage,btmrvl))
+
+
+define KernelPackage/btsdio
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Bluetooth HCI SDIO driver
+ DEPENDS:=+kmod-bluetooth +kmod-mmc
+ KCONFIG:= \
+ CONFIG_BT_HCIBTSDIO
+ FILES:= \
+ $(LINUX_DIR)/drivers/bluetooth/btsdio.ko
+ AUTOLOAD:=$(call AutoProbe,btsdio)
+endef
+
+define KernelPackage/btsdio/description
+ Kernel support for Bluetooth device with SDIO interface
+endef
+
+$(eval $(call KernelPackage,btsdio))
+
+
+define KernelPackage/dma-buf
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=DMA shared buffer support
+ HIDDEN:=1
+ KCONFIG:=CONFIG_DMA_SHARED_BUFFER
+ ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE)),"")
+ ifeq ($(strip $(CONFIG_KERNEL_GIT_CLONE_URI)),"")
+ FILES:=$(LINUX_DIR)/drivers/dma-buf/dma-shared-buffer.ko
+ endif
+ endif
+ AUTOLOAD:=$(call AutoLoad,20,dma-shared-buffer)
+endef
+$(eval $(call KernelPackage,dma-buf))
+
+
+define KernelPackage/eeprom-93cx6
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=EEPROM 93CX6 support
+ KCONFIG:=CONFIG_EEPROM_93CX6
+ FILES:=$(LINUX_DIR)/drivers/misc/eeprom/eeprom_93cx6.ko
+ AUTOLOAD:=$(call AutoLoad,20,eeprom_93cx6)
+endef
+
+define KernelPackage/eeprom-93cx6/description
+ Kernel module for EEPROM 93CX6 support
+endef
+
+$(eval $(call KernelPackage,eeprom-93cx6))
+
+
+define KernelPackage/eeprom-at24
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=EEPROM AT24 support
+ KCONFIG:=CONFIG_EEPROM_AT24
+ DEPENDS:=+kmod-i2c-core +kmod-regmap-i2c
+ FILES:=$(LINUX_DIR)/drivers/misc/eeprom/at24.ko
+ AUTOLOAD:=$(call AutoProbe,at24)
+endef
+
+define KernelPackage/eeprom-at24/description
+ Kernel module for most I2C EEPROMs
+endef
+
+$(eval $(call KernelPackage,eeprom-at24))
+
+
+define KernelPackage/eeprom-at25
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=EEPROM AT25 support
+ KCONFIG:=CONFIG_EEPROM_AT25
+ FILES:=$(LINUX_DIR)/drivers/misc/eeprom/at25.ko
+ AUTOLOAD:=$(call AutoProbe,at25)
+endef
+
+define KernelPackage/eeprom-at25/description
+ Kernel module for most SPI EEPROMs
+endef
+
+$(eval $(call KernelPackage,eeprom-at25))
+
+
+define KernelPackage/google-firmware
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Google firmware drivers (Coreboot, VPD, Memconsole)
+ KCONFIG:= \
+ CONFIG_GOOGLE_FIRMWARE=y \
+ CONFIG_GOOGLE_COREBOOT_TABLE \
+ CONFIG_GOOGLE_MEMCONSOLE \
+ CONFIG_GOOGLE_MEMCONSOLE_COREBOOT \
+ CONFIG_GOOGLE_VPD
+ FILES:= \
+ $(LINUX_DIR)/drivers/firmware/google/coreboot_table.ko \
+ $(LINUX_DIR)/drivers/firmware/google/memconsole.ko \
+ $(LINUX_DIR)/drivers/firmware/google/memconsole-coreboot.ko \
+ $(LINUX_DIR)/drivers/firmware/google/vpd-sysfs.ko
+ AUTOLOAD:=$(call AutoProbe,coreboot_table memconsole-coreboot vpd-sysfs)
+endef
+
+define KernelPackage/google-firmware/description
+ Kernel modules for Google firmware drivers. Useful for examining firmware and
+ boot details on devices using a Google bootloader based on Coreboot. Provides
+ files like /sys/firmware/log and /sys/firmware/vpd.
+endef
+
+$(eval $(call KernelPackage,google-firmware))
+
+
+define KernelPackage/lkdtm
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Linux Kernel Dump Test Tool Module
+ KCONFIG:=CONFIG_LKDTM
+ FILES:=$(LINUX_DIR)/drivers/misc/lkdtm/lkdtm.ko
+ AUTOLOAD:=$(call AutoProbe,lkdtm)
+endef
+
+define KernelPackage/lkdtm/description
+ This module enables testing of the different dumping mechanisms by inducing
+ system failures at predefined crash points.
+endef
+
+$(eval $(call KernelPackage,lkdtm))
+
+
+define KernelPackage/pinctrl-mcp23s08
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Microchip MCP23xxx I/O expander
+ HIDDEN:=1
+ DEPENDS:=@GPIO_SUPPORT +kmod-regmap-core
+ KCONFIG:=CONFIG_PINCTRL_MCP23S08
+ FILES:=$(LINUX_DIR)/drivers/pinctrl/pinctrl-mcp23s08.ko
+ AUTOLOAD:=$(call AutoLoad,40,pinctrl-mcp23s08)
+endef
+
+define KernelPackage/pinctrl-mcp23s08/description
+ Kernel module for Microchip MCP23xxx I/O expander
+endef
+
+$(eval $(call KernelPackage,pinctrl-mcp23s08))
+
+
+define KernelPackage/pinctrl-mcp23s08-i2c
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Microchip MCP23xxx I/O expander (I2C)
+ DEPENDS:=@GPIO_SUPPORT \
+ +kmod-pinctrl-mcp23s08 \
+ +kmod-i2c-core \
+ +kmod-regmap-i2c
+ KCONFIG:=CONFIG_PINCTRL_MCP23S08_I2C
+ FILES:=$(LINUX_DIR)/drivers/pinctrl/pinctrl-mcp23s08_i2c.ko
+ AUTOLOAD:=$(call AutoLoad,40,pinctrl-mcp23s08-i2c)
+endef
+
+define KernelPackage/pinctrl-mcp23s08-i2c/description
+ Kernel module for Microchip MCP23xxx I/O expander via I2C
+endef
+
+$(eval $(call KernelPackage,pinctrl-mcp23s08-i2c))
+
+
+define KernelPackage/pinctrl-mcp23s08-spi
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Microchip MCP23xxx I/O expander (SPI)
+ DEPENDS:=@GPIO_SUPPORT +kmod-pinctrl-mcp23s08
+ KCONFIG:=CONFIG_PINCTRL_MCP23S08_SPI
+ FILES:=$(LINUX_DIR)/drivers/pinctrl/pinctrl-mcp23s08_spi.ko
+ AUTOLOAD:=$(call AutoLoad,40,pinctrl-mcp23s08-spi)
+endef
+
+define KernelPackage/pinctrl-mcp23s08-spi/description
+ Kernel module for Microchip MCP23xxx I/O expander via SPI
+endef
+
+$(eval $(call KernelPackage,pinctrl-mcp23s08-spi))
+
+
+define KernelPackage/ppdev
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Parallel port support
+ KCONFIG:= \
+ CONFIG_PARPORT \
+ CONFIG_PPDEV
+ FILES:= \
+ $(LINUX_DIR)/drivers/parport/parport.ko \
+ $(LINUX_DIR)/drivers/char/ppdev.ko
+ AUTOLOAD:=$(call AutoLoad,50,parport ppdev)
+endef
+
+$(eval $(call KernelPackage,ppdev))
+
+
+define KernelPackage/parport-pc
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Parallel port interface (PC-style) support
+ DEPENDS:=+kmod-ppdev
+ KCONFIG:= \
+ CONFIG_KS0108=n \
+ CONFIG_PARPORT_PC \
+ CONFIG_PARPORT_1284=y \
+ CONFIG_PARPORT_PC_FIFO=y \
+ CONFIG_PARPORT_PC_PCMCIA=n \
+ CONFIG_PARPORT_PC_SUPERIO=y \
+ CONFIG_PARPORT_SERIAL=n \
+ CONFIG_PARIDE=n \
+ CONFIG_SCSI_IMM=n \
+ CONFIG_SCSI_PPA=n
+ FILES:= \
+ $(LINUX_DIR)/drivers/parport/parport_pc.ko
+ AUTOLOAD:=$(call AutoLoad,51,parport_pc)
+endef
+
+$(eval $(call KernelPackage,parport-pc))
+
+
+define KernelPackage/lp
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Parallel port line printer device support
+ DEPENDS:=+kmod-ppdev
+ KCONFIG:= \
+ CONFIG_PRINTER
+ FILES:= \
+ $(LINUX_DIR)/drivers/char/lp.ko
+ AUTOLOAD:=$(call AutoLoad,52,lp)
+endef
+
+$(eval $(call KernelPackage,lp))
+
+
+define KernelPackage/mmc
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=MMC/SD Card Support
+ DEPENDS:=@!TARGET_uml
+ KCONFIG:= \
+ CONFIG_MMC \
+ CONFIG_MMC_BLOCK \
+ CONFIG_MMC_DEBUG=n \
+ CONFIG_MMC_UNSAFE_RESUME=n \
+ CONFIG_MMC_TIFM_SD=n \
+ CONFIG_MMC_WBSD=n \
+ CONFIG_SDIO_UART=n
+ FILES:= \
+ $(LINUX_DIR)/drivers/mmc/core/mmc_core.ko \
+ $(LINUX_DIR)/drivers/mmc/core/mmc_block.ko
+ AUTOLOAD:=$(call AutoProbe,mmc_core mmc_block,1)
+endef
+
+define KernelPackage/mmc/description
+ Kernel support for MMC/SD cards
+endef
+
+$(eval $(call KernelPackage,mmc))
+
+
+define KernelPackage/sdhci
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Secure Digital Host Controller Interface support
+ DEPENDS:=+kmod-mmc
+ KCONFIG:= \
+ CONFIG_MMC_SDHCI \
+ CONFIG_MMC_SDHCI_PLTFM \
+ CONFIG_MMC_SDHCI_PCI=n
+ FILES:= \
+ $(LINUX_DIR)/drivers/mmc/host/sdhci.ko \
+ $(LINUX_DIR)/drivers/mmc/host/sdhci-pltfm.ko
+
+ AUTOLOAD:=$(call AutoProbe,sdhci-pltfm,1)
+endef
+
+define KernelPackage/sdhci/description
+ Kernel support for SDHCI Hosts
+endef
+
+$(eval $(call KernelPackage,sdhci))
+
+
+define KernelPackage/serdev
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Serial device bus support
+ KCONFIG:=CONFIG_SERIAL_DEV_BUS
+ FILES:= \
+ $(LINUX_DIR)/drivers/tty/serdev/serdev.ko
+ AUTOLOAD:=$(call AutoProbe,serdev)
+endef
+
+define KernelPackage/serdev/description
+ Kernel support for devices connected via a serial port
+endef
+
+$(eval $(call KernelPackage,serdev))
+
+
+define KernelPackage/rfkill
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=RF switch subsystem support
+ DEPENDS:=@USE_RFKILL +kmod-input-core
+ KCONFIG:= \
+ CONFIG_RFKILL_FULL \
+ CONFIG_RFKILL_GPIO=y \
+ CONFIG_RFKILL_INPUT=y \
+ CONFIG_RFKILL_LEDS=y
+ FILES:= \
+ $(LINUX_DIR)/net/rfkill/rfkill.ko \
+ $(LINUX_DIR)/net/rfkill/rfkill-gpio.ko
+ AUTOLOAD:=$(call AutoLoad,20,rfkill-gpio)
+endef
+
+define KernelPackage/rfkill/description
+ Say Y here if you want to have control over RF switches
+ found on many WiFi and Bluetooth cards
+endef
+
+$(eval $(call KernelPackage,rfkill))
+
+
+define KernelPackage/softdog
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Software watchdog driver
+ KCONFIG:=CONFIG_SOFT_WATCHDOG \
+ CONFIG_SOFT_WATCHDOG_PRETIMEOUT=n
+ FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/softdog.ko
+ AUTOLOAD:=$(call AutoLoad,50,softdog,1)
+endef
+
+define KernelPackage/softdog/description
+ Software watchdog driver
+endef
+
+$(eval $(call KernelPackage,softdog))
+
+
+define KernelPackage/ssb
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Silicon Sonics Backplane glue code
+ DEPENDS:=@PCI_SUPPORT @!TARGET_bcm47xx @!TARGET_bcm63xx
+ KCONFIG:=\
+ CONFIG_SSB \
+ CONFIG_SSB_B43_PCI_BRIDGE=y \
+ CONFIG_SSB_DRIVER_MIPS=n \
+ CONFIG_SSB_DRIVER_PCICORE=y \
+ CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y \
+ CONFIG_SSB_FALLBACK_SPROM=y \
+ CONFIG_SSB_PCIHOST=y \
+ CONFIG_SSB_PCIHOST_POSSIBLE=y \
+ CONFIG_SSB_POSSIBLE=y \
+ CONFIG_SSB_SPROM=y \
+ CONFIG_SSB_SILENT=y
+ FILES:=$(LINUX_DIR)/drivers/ssb/ssb.ko
+ AUTOLOAD:=$(call AutoLoad,18,ssb,1)
+endef
+
+define KernelPackage/ssb/description
+ Silicon Sonics Backplane glue code.
+endef
+
+$(eval $(call KernelPackage,ssb))
+
+
+define KernelPackage/bcma
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=BCMA support
+ DEPENDS:=@PCI_SUPPORT @!TARGET_bcm47xx @!TARGET_bcm53xx
+ KCONFIG:=\
+ CONFIG_BCMA \
+ CONFIG_BCMA_POSSIBLE=y \
+ CONFIG_BCMA_BLOCKIO=y \
+ CONFIG_BCMA_FALLBACK_SPROM=y \
+ CONFIG_BCMA_HOST_PCI_POSSIBLE=y \
+ CONFIG_BCMA_HOST_PCI=y \
+ CONFIG_BCMA_HOST_SOC=n \
+ CONFIG_BCMA_DRIVER_MIPS=n \
+ CONFIG_BCMA_DRIVER_PCI_HOSTMODE=n \
+ CONFIG_BCMA_DRIVER_GMAC_CMN=n \
+ CONFIG_BCMA_DEBUG=n
+ FILES:=$(LINUX_DIR)/drivers/bcma/bcma.ko
+ AUTOLOAD:=$(call AutoLoad,29,bcma)
+endef
+
+define KernelPackage/bcma/description
+ Bus driver for Broadcom specific Advanced Microcontroller Bus Architecture
+endef
+
+$(eval $(call KernelPackage,bcma))
+
+
+define KernelPackage/rtc-ds1307
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Dallas/Maxim DS1307 (and compatible) RTC support
+ DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
+ DEPENDS:=+kmod-i2c-core +kmod-regmap-i2c +kmod-hwmon-core
+ KCONFIG:=CONFIG_RTC_DRV_DS1307 \
+ CONFIG_RTC_CLASS=y
+ FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1307.ko
+ AUTOLOAD:=$(call AutoProbe,rtc-ds1307)
+endef
+
+define KernelPackage/rtc-ds1307/description
+ Kernel module for Dallas/Maxim DS1307/DS1337/DS1338/DS1340/DS1388/DS3231,
+ Epson RX-8025 and various other compatible RTC chips connected via I2C.
+endef
+
+$(eval $(call KernelPackage,rtc-ds1307))
+
+
+define KernelPackage/rtc-ds1374
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Dallas/Maxim DS1374 RTC support
+ DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
+ DEPENDS:=+kmod-i2c-core
+ KCONFIG:=CONFIG_RTC_DRV_DS1374 \
+ CONFIG_RTC_DRV_DS1374_WDT=n \
+ CONFIG_RTC_CLASS=y
+ FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1374.ko
+ AUTOLOAD:=$(call AutoProbe,rtc-ds1374)
+endef
+
+define KernelPackage/rtc-ds1374/description
+ Kernel module for Dallas/Maxim DS1374.
+endef
+
+$(eval $(call KernelPackage,rtc-ds1374))
+
+
+define KernelPackage/rtc-ds1672
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Dallas/Maxim DS1672 RTC support
+ DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
+ DEPENDS:=+kmod-i2c-core
+ KCONFIG:=CONFIG_RTC_DRV_DS1672 \
+ CONFIG_RTC_CLASS=y
+ FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1672.ko
+ AUTOLOAD:=$(call AutoProbe,rtc-ds1672)
+endef
+
+define KernelPackage/rtc-ds1672/description
+ Kernel module for Dallas/Maxim DS1672 RTC.
+endef
+
+$(eval $(call KernelPackage,rtc-ds1672))
+
+
+define KernelPackage/rtc-em3027
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Microelectronic EM3027 RTC support
+ DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
+ DEPENDS:=+kmod-i2c-core
+ KCONFIG:=CONFIG_RTC_DRV_EM3027 \
+ CONFIG_RTC_CLASS=y
+ FILES:=$(LINUX_DIR)/drivers/rtc/rtc-em3027.ko
+ AUTOLOAD:=$(call AutoProbe,rtc-em3027)
+endef
+
+define KernelPackage/rtc-em3027/description
+ Kernel module for Microelectronic EM3027 RTC.
+endef
+
+$(eval $(call KernelPackage,rtc-em3027))
+
+
+define KernelPackage/rtc-isl1208
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Intersil ISL1208 RTC support
+ DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
+ DEPENDS:=+kmod-i2c-core
+ KCONFIG:=CONFIG_RTC_DRV_ISL1208 \
+ CONFIG_RTC_CLASS=y
+ FILES:=$(LINUX_DIR)/drivers/rtc/rtc-isl1208.ko
+ AUTOLOAD:=$(call AutoProbe,rtc-isl1208)
+endef
+
+define KernelPackage/rtc-isl1208/description
+ Kernel module for Intersil ISL1208 RTC.
+endef
+
+$(eval $(call KernelPackage,rtc-isl1208))
+
+
+define KernelPackage/rtc-mv
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Marvell SoC RTC support
+ DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
+ KCONFIG:=CONFIG_RTC_DRV_MV \
+ CONFIG_RTC_CLASS=y
+ FILES:=$(LINUX_DIR)/drivers/rtc/rtc-mv.ko
+ AUTOLOAD:=$(call AutoProbe,rtc-mv)
+endef
+
+define KernelPackage/rtc-mv/description
+ Kernel module for Marvell SoC RTC.
+endef
+
+$(eval $(call KernelPackage,rtc-mv))
+
+
+define KernelPackage/rtc-pcf8563
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Philips PCF8563/Epson RTC8564 RTC support
+ DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
+ DEPENDS:=+kmod-i2c-core
+ KCONFIG:=CONFIG_RTC_DRV_PCF8563 \
+ CONFIG_RTC_CLASS=y
+ FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf8563.ko
+ AUTOLOAD:=$(call AutoProbe,rtc-pcf8563)
+endef
+
+define KernelPackage/rtc-pcf8563/description
+ Kernel module for Philips PCF8563 RTC chip.
+ The Epson RTC8564 should work as well.
+endef
+
+$(eval $(call KernelPackage,rtc-pcf8563))
+
+
+define KernelPackage/rtc-pcf2123
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Philips PCF2123 RTC support
+ DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
+ DEPENDS:=+kmod-regmap-spi
+ KCONFIG:=CONFIG_RTC_DRV_PCF2123 \
+ CONFIG_RTC_CLASS=y
+ FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf2123.ko
+ AUTOLOAD:=$(call AutoProbe,rtc-pcf2123)
+endef
+
+define KernelPackage/rtc-pcf2123/description
+ Kernel module for Philips PCF2123 RTC chip
+endef
+
+$(eval $(call KernelPackage,rtc-pcf2123))
+
+define KernelPackage/rtc-pcf2127
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=NXP PCF2127 and PCF2129 RTC support
+ DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
+ DEPENDS:=+kmod-i2c-core +kmod-regmap-spi
+ KCONFIG:=CONFIG_RTC_DRV_PCF2127 \
+ CONFIG_RTC_CLASS=y
+ FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf2127.ko
+ AUTOLOAD:=$(call AutoProbe,rtc-pcf2127)
+endef
+
+define KernelPackage/rtc-pcf2127/description
+ Kernel module for NXP PCF2127 and PCF2129 RTC chip
+endef
+
+$(eval $(call KernelPackage,rtc-pcf2127))
+
+define KernelPackage/rtc-r7301
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Epson RTC7301 support
+ DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
+ DEPENDS:=+kmod-regmap-mmio
+ KCONFIG:=CONFIG_RTC_DRV_R7301 \
+ CONFIG_RTC_CLASS=y
+ FILES:=$(LINUX_DIR)/drivers/rtc/rtc-r7301.ko
+ AUTOLOAD:=$(call AutoProbe,rtc-r7301)
+endef
+
+define KernelPackage/rtc-r7301/description
+ Kernel module for Epson RTC7301 RTC chip
+endef
+
+$(eval $(call KernelPackage,rtc-r7301))
+
+define KernelPackage/rtc-rs5c372a
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Ricoh R2025S/D, RS5C372A/B, RV5C386, RV5C387A
+ DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
+ DEPENDS:=+kmod-i2c-core
+ KCONFIG:=CONFIG_RTC_DRV_RS5C372 \
+ CONFIG_RTC_CLASS=y
+ FILES:=$(LINUX_DIR)/drivers/rtc/rtc-rs5c372.ko
+ AUTOLOAD:=$(call AutoLoad,50,rtc-rs5c372,1)
+endef
+
+define KernelPackage/rtc-rs5c372a/description
+ Kernel module for Ricoh R2025S/D, RS5C372A/B, RV5C386, RV5C387A RTC on chip module
+endef
+
+$(eval $(call KernelPackage,rtc-rs5c372a))
+
+define KernelPackage/rtc-rx8025
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Epson RX-8025 / RX-8035
+ DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
+ DEPENDS:=+kmod-i2c-core
+ KCONFIG:=CONFIG_RTC_DRV_RX8025 \
+ CONFIG_RTC_CLASS=y
+ FILES:=$(LINUX_DIR)/drivers/rtc/rtc-rx8025.ko
+ AUTOLOAD:=$(call AutoLoad,50,rtc-rx8025,1)
+endef
+
+define KernelPackage/rtc-rx8025/description
+ Kernel module for Epson RX-8025 and RX-8035 I2C RTC chip
+endef
+
+$(eval $(call KernelPackage,rtc-rx8025))
+
+define KernelPackage/rtc-s35390a
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Seico S-35390A
+ DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
+ DEPENDS:=+kmod-i2c-core
+ KCONFIG:=CONFIG_RTC_DRV_S35390A \
+ CONFIG_RTC_CLASS=y
+ FILES:=$(LINUX_DIR)/drivers/rtc/rtc-s35390a.ko
+ AUTOLOAD:=$(call AutoLoad,50,rtc-s35390a,1)
+endef
+
+define KernelPackage/rtc-s35390a/description
+ Kernel module for Seiko Instruments S-35390A I2C RTC chip
+endef
+
+$(eval $(call KernelPackage,rtc-s35390a))
+
+define KernelPackage/rtc-x1205
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Xicor Intersil X1205
+ DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
+ DEPENDS:=+kmod-i2c-core
+ KCONFIG:=CONFIG_RTC_DRV_X1205 \
+ CONFIG_RTC_CLASS=y
+ FILES:=$(LINUX_DIR)/drivers/rtc/rtc-x1205.ko
+ AUTOLOAD:=$(call AutoProbe,rtc-x1205)
+endef
+
+define KernelPackage/rtc-x1205/description
+ Kernel module for Xicor Intersil X1205 I2C RTC chip
+endef
+
+$(eval $(call KernelPackage,rtc-x1205))
+
+define KernelPackage/mtdtests
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=MTD subsystem tests
+ KCONFIG:=CONFIG_MTD_TESTS
+ FILES:=\
+ $(LINUX_DIR)/drivers/mtd/tests/mtd_nandecctest.ko \
+ $(LINUX_DIR)/drivers/mtd/tests/mtd_oobtest.ko \
+ $(LINUX_DIR)/drivers/mtd/tests/mtd_pagetest.ko \
+ $(LINUX_DIR)/drivers/mtd/tests/mtd_readtest.ko \
+ $(LINUX_DIR)/drivers/mtd/tests/mtd_speedtest.ko \
+ $(LINUX_DIR)/drivers/mtd/tests/mtd_stresstest.ko \
+ $(LINUX_DIR)/drivers/mtd/tests/mtd_subpagetest.ko \
+ $(LINUX_DIR)/drivers/mtd/tests/mtd_torturetest.ko
+endef
+
+define KernelPackage/mtdtests/description
+ Kernel modules for MTD subsystem/driver testing
+endef
+
+$(eval $(call KernelPackage,mtdtests))
+
+
+define KernelPackage/mtdoops
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Log panic/oops to an MTD buffer
+ KCONFIG:=CONFIG_MTD_OOPS
+ FILES:=$(LINUX_DIR)/drivers/mtd/mtdoops.ko
+endef
+
+define KernelPackage/mtdoops/description
+ Kernel modules for Log panic/oops to an MTD buffer
+endef
+
+$(eval $(call KernelPackage,mtdoops))
+
+
+define KernelPackage/mtdram
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Test MTD driver using RAM
+ KCONFIG:=CONFIG_MTD_MTDRAM \
+ CONFIG_MTDRAM_TOTAL_SIZE=4096 \
+ CONFIG_MTDRAM_ERASE_SIZE=128
+ FILES:=$(LINUX_DIR)/drivers/mtd/devices/mtdram.ko
+endef
+
+define KernelPackage/mtdram/description
+ Test MTD driver using RAM
+endef
+
+$(eval $(call KernelPackage,mtdram))
+
+
+define KernelPackage/ramoops
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Ramoops (pstore-ram)
+ DEFAULT:=m if ALL_KMODS
+ KCONFIG:=CONFIG_PSTORE_RAM \
+ CONFIG_PSTORE_CONSOLE=y
+ DEPENDS:=+kmod-pstore +kmod-reed-solomon
+ FILES:= $(LINUX_DIR)/fs/pstore/ramoops.ko
+ AUTOLOAD:=$(call AutoLoad,30,ramoops,1)
+endef
+
+define KernelPackage/ramoops/description
+ Kernel module for pstore-ram (ramoops) crash log storage
+endef
+
+$(eval $(call KernelPackage,ramoops))
+
+
+define KernelPackage/reed-solomon
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Reed-Solomon error correction
+ DEFAULT:=m if ALL_KMODS
+ KCONFIG:=CONFIG_REED_SOLOMON \
+ CONFIG_REED_SOLOMON_DEC8=y \
+ CONFIG_REED_SOLOMON_ENC8=y
+ FILES:= $(LINUX_DIR)/lib/reed_solomon/reed_solomon.ko
+ AUTOLOAD:=$(call AutoLoad,30,reed_solomon,1)
+endef
+
+define KernelPackage/reed-solomon/description
+ Kernel module for Reed-Solomon error correction
+endef
+
+$(eval $(call KernelPackage,reed-solomon))
+
+
+define KernelPackage/serial-8250
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=8250 UARTs
+ KCONFIG:= CONFIG_SERIAL_8250 \
+ CONFIG_SERIAL_8250_PCI \
+ CONFIG_SERIAL_8250_NR_UARTS=16 \
+ CONFIG_SERIAL_8250_RUNTIME_UARTS=16 \
+ CONFIG_SERIAL_8250_EXTENDED=y \
+ CONFIG_SERIAL_8250_MANY_PORTS=y \
+ CONFIG_SERIAL_8250_SHARE_IRQ=y \
+ CONFIG_SERIAL_8250_DETECT_IRQ=n \
+ CONFIG_SERIAL_8250_RSA=n
+ FILES:= \
+ $(LINUX_DIR)/drivers/tty/serial/8250/8250.ko \
+ $(LINUX_DIR)/drivers/tty/serial/8250/8250_base.ko \
+ $(if $(CONFIG_PCI),$(LINUX_DIR)/drivers/tty/serial/8250/8250_pci.ko) \
+ $(if $(CONFIG_GPIOLIB),$(LINUX_DIR)/drivers/tty/serial/serial_mctrl_gpio.ko)
+ AUTOLOAD:=$(call AutoProbe,8250 8250_base 8250_pci)
+endef
+
+define KernelPackage/serial-8250/description
+ Kernel module for 8250 UART based serial ports
+endef
+
+$(eval $(call KernelPackage,serial-8250))
+
+
+define KernelPackage/serial-8250-exar
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Exar 8250 UARTs
+ KCONFIG:= CONFIG_SERIAL_8250_EXAR
+ FILES:=$(LINUX_DIR)/drivers/tty/serial/8250/8250_exar.ko
+ AUTOLOAD:=$(call AutoProbe,8250 8250_base 8250_exar)
+ DEPENDS:=@PCI_SUPPORT +kmod-serial-8250
+endef
+
+define KernelPackage/serial-8250-exar/description
+ Kernel module for Exar serial ports
+endef
+
+$(eval $(call KernelPackage,serial-8250-exar))
+
+
+define KernelPackage/regmap-core
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Generic register map support
+ HIDDEN:=1
+ KCONFIG:=CONFIG_REGMAP
+ifneq ($(wildcard $(LINUX_DIR)/drivers/base/regmap/regmap-core.ko),)
+ FILES:=$(LINUX_DIR)/drivers/base/regmap/regmap-core.ko
+endif
+endef
+
+define KernelPackage/regmap-core/description
+ Generic register map support
+endef
+
+$(eval $(call KernelPackage,regmap-core))
+
+
+define KernelPackage/regmap-spi
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=SPI register map support
+ DEPENDS:=+kmod-regmap-core
+ HIDDEN:=1
+ KCONFIG:=CONFIG_REGMAP_SPI \
+ CONFIG_SPI=y
+ FILES:=$(LINUX_DIR)/drivers/base/regmap/regmap-spi.ko
+endef
+
+define KernelPackage/regmap-spi/description
+ SPI register map support
+endef
+
+$(eval $(call KernelPackage,regmap-spi))
+
+
+define KernelPackage/regmap-i2c
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=I2C register map support
+ DEPENDS:=+kmod-regmap-core +kmod-i2c-core
+ HIDDEN:=1
+ KCONFIG:=CONFIG_REGMAP_I2C
+ FILES:=$(LINUX_DIR)/drivers/base/regmap/regmap-i2c.ko
+endef
+
+define KernelPackage/regmap-i2c/description
+ I2C register map support
+endef
+
+$(eval $(call KernelPackage,regmap-i2c))
+
+
+define KernelPackage/regmap-mmio
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=MMIO register map support
+ DEPENDS:=+kmod-regmap-core
+ HIDDEN:=1
+ KCONFIG:=CONFIG_REGMAP_MMIO
+ FILES:=$(LINUX_DIR)/drivers/base/regmap/regmap-mmio.ko
+endef
+
+define KernelPackage/regmap-mmio/description
+ MMIO register map support
+endef
+
+$(eval $(call KernelPackage,regmap-mmio))
+
+
+define KernelPackage/ikconfig
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Kernel configuration via /proc/config.gz
+ KCONFIG:=CONFIG_IKCONFIG \
+ CONFIG_IKCONFIG_PROC=y
+ FILES:=$(LINUX_DIR)/kernel/configs.ko
+ AUTOLOAD:=$(call AutoLoad,70,configs)
+endef
+
+define KernelPackage/ikconfig/description
+ Kernel configuration via /proc/config.gz
+endef
+
+$(eval $(call KernelPackage,ikconfig))
+
+
+define KernelPackage/zram
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=ZRAM
+ DEPENDS:=+kmod-lib-lzo
+ KCONFIG:= \
+ CONFIG_ZSMALLOC \
+ CONFIG_ZRAM \
+ CONFIG_ZRAM_DEBUG=n \
+ CONFIG_PGTABLE_MAPPING=n \
+ CONFIG_ZRAM_WRITEBACK=n \
+ CONFIG_ZSMALLOC_STAT=n
+ FILES:= \
+ $(LINUX_DIR)/mm/zsmalloc.ko \
+ $(LINUX_DIR)/drivers/block/zram/zram.ko
+ AUTOLOAD:=$(call AutoLoad,20,zsmalloc zram)
+endef
+
+define KernelPackage/zram/description
+ Compressed RAM block device support
+endef
+
+$(eval $(call KernelPackage,zram))
+
+define KernelPackage/pps
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=PPS support
+ KCONFIG:=CONFIG_PPS
+ FILES:=$(LINUX_DIR)/drivers/pps/pps_core.ko
+ AUTOLOAD:=$(call AutoLoad,17,pps_core,1)
+endef
+
+define KernelPackage/pps/description
+ PPS (Pulse Per Second) is a special pulse provided by some GPS
+ antennae. Userland can use it to get a high-precision time
+ reference.
+endef
+
+$(eval $(call KernelPackage,pps))
+
+
+define KernelPackage/pps-gpio
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=PPS client using GPIO
+ DEPENDS:=+kmod-pps
+ KCONFIG:=CONFIG_PPS_CLIENT_GPIO
+ FILES:=$(LINUX_DIR)/drivers/pps/clients/pps-gpio.ko
+ AUTOLOAD:=$(call AutoLoad,18,pps-gpio,1)
+endef
+
+define KernelPackage/pps-gpio/description
+ Support for a PPS source using GPIO. To be useful you must
+ also register a platform device specifying the GPIO pin and
+ other options, usually in your board setup.
+endef
+
+$(eval $(call KernelPackage,pps-gpio))
+
+
+define KernelPackage/pps-ldisc
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=PPS line discipline
+ DEPENDS:=+kmod-pps
+ KCONFIG:=CONFIG_PPS_CLIENT_LDISC
+ FILES:=$(LINUX_DIR)/drivers/pps/clients/pps-ldisc.ko
+ AUTOLOAD:=$(call AutoLoad,18,pps-ldisc,1)
+endef
+
+define KernelPackage/pps-ldisc/description
+ Support for a PPS source connected with the CD (Carrier
+ Detect) pin of your serial port.
+endef
+
+$(eval $(call KernelPackage,pps-ldisc))
+
+
+define KernelPackage/ptp
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=PTP clock support
+ DEPENDS:=+kmod-pps
+ KCONFIG:= \
+ CONFIG_PTP_1588_CLOCK \
+ CONFIG_NET_PTP_CLASSIFY=y
+ FILES:=$(LINUX_DIR)/drivers/ptp/ptp.ko
+ AUTOLOAD:=$(call AutoLoad,18,ptp,1)
+endef
+
+define KernelPackage/ptp/description
+ The IEEE 1588 standard defines a method to precisely
+ synchronize distributed clocks over Ethernet networks.
+endef
+
+$(eval $(call KernelPackage,ptp))
+
+
+define KernelPackage/ptp-qoriq
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Freescale QorIQ PTP support
+ DEPENDS:=@(TARGET_mpc85xx||TARGET_qoriq) +kmod-ptp
+ KCONFIG:=CONFIG_PTP_1588_CLOCK_QORIQ
+ FILES:=$(LINUX_DIR)/drivers/ptp/ptp-qoriq.ko
+ AUTOLOAD:=$(call AutoProbe,ptp-qoriq)
+endef
+
+
+define KernelPackage/ptp-qoriq/description
+ Kernel module for IEEE 1588 support for Freescale
+ QorIQ Ethernet drivers
+endef
+
+$(eval $(call KernelPackage,ptp-qoriq))
+
+define KernelPackage/random-core
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Hardware Random Number Generator Core support
+ KCONFIG:=CONFIG_HW_RANDOM
+ FILES:=$(LINUX_DIR)/drivers/char/hw_random/rng-core.ko
+endef
+
+define KernelPackage/random-core/description
+ Kernel module for the HW random number generator core infrastructure
+endef
+
+$(eval $(call KernelPackage,random-core))
+
+
+define KernelPackage/thermal
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Thermal driver
+ DEPENDS:=+kmod-hwmon-core
+ HIDDEN:=1
+ KCONFIG:= \
+ CONFIG_THERMAL=y \
+ CONFIG_THERMAL_OF=y \
+ CONFIG_CPU_THERMAL=y \
+ CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y \
+ CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE=n \
+ CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE=n \
+ CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 \
+ CONFIG_THERMAL_GOV_FAIR_SHARE=n \
+ CONFIG_THERMAL_GOV_STEP_WISE=y \
+ CONFIG_THERMAL_GOV_USER_SPACE=n \
+ CONFIG_THERMAL_HWMON=y \
+ CONFIG_THERMAL_EMULATION=n
+endef
+
+define KernelPackage/thermal/description
+ Thermal driver offers a generic mechanism for thermal management.
+ Usually it's made up of one or more thermal zone and cooling device.
+endef
+
+$(eval $(call KernelPackage,thermal))
+
+
+define KernelPackage/echo
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Line Echo Canceller
+ KCONFIG:=CONFIG_ECHO
+ FILES:=$(LINUX_DIR)/drivers/misc/echo/echo.ko
+ AUTOLOAD:=$(call AutoLoad,50,echo)
+endef
+
+define KernelPackage/echo/description
+ This driver provides line echo cancelling support for mISDN and
+ DAHDI drivers
+endef
+
+$(eval $(call KernelPackage,echo))
+
+
+define KernelPackage/keys-encrypted
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=encrypted keys on kernel keyring
+ DEPENDS:=@KERNEL_KEYS +kmod-crypto-cbc +kmod-crypto-hmac +kmod-crypto-rng \
+ +kmod-crypto-sha256 +kmod-keys-trusted
+ KCONFIG:=CONFIG_ENCRYPTED_KEYS
+ FILES:=$(LINUX_DIR)/security/keys/encrypted-keys/encrypted-keys.ko
+ AUTOLOAD:=$(call AutoLoad,01,encrypted-keys,1)
+endef
+
+define KernelPackage/keys-encrypted/description
+ This module provides support for create/encrypting/decrypting keys
+ in the kernel. Encrypted keys are kernel generated random numbers,
+ which are encrypted/decrypted with a 'master' symmetric key. The
+ 'master' key can be either a trusted-key or user-key type.
+ Userspace only ever sees/stores encrypted blobs.
+endef
+
+$(eval $(call KernelPackage,keys-encrypted))
+
+
+define KernelPackage/keys-trusted
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=TPM trusted keys on kernel keyring
+ DEPENDS:=@KERNEL_KEYS +kmod-crypto-hash +kmod-crypto-hmac +kmod-crypto-sha1 +kmod-tpm
+ KCONFIG:=CONFIG_TRUSTED_KEYS
+ FILES:= \
+ $(LINUX_DIR)/security/keys/trusted.ko@lt5.10 \
+ $(LINUX_DIR)/security/keys/trusted-keys/trusted.ko@ge5.10
+ AUTOLOAD:=$(call AutoLoad,01,trusted-keys,1)
+endef
+
+define KernelPackage/keys-trusted/description
+ This module provides support for creating, sealing, and unsealing
+ keys in the kernel. Trusted keys are random number symmetric keys,
+ generated and RSA-sealed by the TPM. The TPM only unseals the keys,
+ if the boot PCRs and other criteria match. Userspace will only ever
+ see encrypted blobs.
+endef
+
+$(eval $(call KernelPackage,keys-trusted))
+
+
+define KernelPackage/tpm
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=TPM Hardware Support
+ DEPENDS:= +kmod-random-core +kmod-asn1-decoder \
+ +kmod-asn1-encoder +kmod-oid-registry
+ KCONFIG:= CONFIG_TCG_TPM
+ FILES:= $(LINUX_DIR)/drivers/char/tpm/tpm.ko
+ AUTOLOAD:=$(call AutoLoad,10,tpm,1)
+endef
+
+define KernelPackage/tpm/description
+ This enables TPM Hardware Support.
+endef
+
+$(eval $(call KernelPackage,tpm))
+
+define KernelPackage/tpm-tis
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=TPM TIS 1.2 Interface / TPM 2.0 FIFO Interface
+ DEPENDS:= @TARGET_x86 +kmod-tpm
+ KCONFIG:= CONFIG_TCG_TIS
+ FILES:= \
+ $(LINUX_DIR)/drivers/char/tpm/tpm_tis.ko \
+ $(LINUX_DIR)/drivers/char/tpm/tpm_tis_core.ko
+ AUTOLOAD:=$(call AutoLoad,20,tpm_tis,1)
+endef
+
+define KernelPackage/tpm-tis/description
+ If you have a TPM security chip that is compliant with the
+ TCG TIS 1.2 TPM specification (TPM1.2) or the TCG PTP FIFO
+ specification (TPM2.0) say Yes and it will be accessible from
+ within Linux.
+endef
+
+$(eval $(call KernelPackage,tpm-tis))
+
+define KernelPackage/tpm-i2c-atmel
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=TPM I2C Atmel Support
+ DEPENDS:= +kmod-tpm +kmod-i2c-core
+ KCONFIG:= CONFIG_TCG_TIS_I2C_ATMEL
+ FILES:= $(LINUX_DIR)/drivers/char/tpm/tpm_i2c_atmel.ko
+ AUTOLOAD:=$(call AutoLoad,40,tpm_i2c_atmel,1)
+endef
+
+define KernelPackage/tpm-i2c-atmel/description
+ This enables the TPM Interface Specification 1.2 Interface (I2C - Atmel)
+endef
+
+$(eval $(call KernelPackage,tpm-i2c-atmel))
+
+define KernelPackage/tpm-i2c-infineon
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:= TPM I2C Infineon driver
+ DEPENDS:= +kmod-tpm +kmod-i2c-core
+ KCONFIG:= CONFIG_TCG_TIS_I2C_INFINEON
+ FILES:= $(LINUX_DIR)/drivers/char/tpm/tpm_i2c_infineon.ko
+ AUTOLOAD:= $(call AutoLoad,40,tpm_i2c_infineon,1)
+endef
+
+define KernelPackage/tpm-i2c-infineon/description
+ This enables the TPM Interface Specification 1.2 Interface (I2C - Infineon)
+endef
+
+$(eval $(call KernelPackage,tpm-i2c-infineon))
+
+
+define KernelPackage/i6300esb-wdt
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Intel 6300ESB Timer/Watchdog
+ DEPENDS:=@PCI_SUPPORT @!SMALL_FLASH
+ KCONFIG:=CONFIG_I6300ESB_WDT \
+ CONFIG_WATCHDOG_CORE=y
+ FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/i6300esb.ko
+ AUTOLOAD:=$(call AutoLoad,50,i6300esb,1)
+endef
+
+define KernelPackage/i6300esb-wdt/description
+ Kernel module for the watchdog timer built into the Intel
+ 6300ESB controller hub. Also used by QEMU/libvirt.
+endef
+
+$(eval $(call KernelPackage,i6300esb-wdt))
+
+
+define KernelPackage/itco-wdt
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Intel iTCO Watchdog Timer
+ KCONFIG:=CONFIG_ITCO_WDT \
+ CONFIG_ITCO_VENDOR_SUPPORT=y
+ FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/iTCO_wdt.ko \
+ $(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/iTCO_vendor_support.ko
+ AUTOLOAD:=$(call AutoLoad,50,iTCO_vendor_support iTCO_wdt,1)
+endef
+
+define KernelPackage/itco-wdt/description
+ Kernel module for Intel iTCO Watchdog Timer
+endef
+
+$(eval $(call KernelPackage,itco-wdt))
+
+
+define KernelPackage/mhi-bus
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=MHI bus
+ DEPENDS:=@(LINUX_5_15||LINUX_6_1||LINUX_6_6)
+ KCONFIG:=CONFIG_MHI_BUS \
+ CONFIG_MHI_BUS_DEBUG=y
+ FILES:=$(LINUX_DIR)/drivers/bus/mhi/host/mhi.ko
+ AUTOLOAD:=$(call AutoProbe,mhi)
+endef
+
+define KernelPackage/mhi-bus/description
+ Kernel module for the Qualcomm MHI bus.
+endef
+
+$(eval $(call KernelPackage,mhi-bus))
+
+define KernelPackage/mhi-pci-generic
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=MHI PCI controller driver
+ DEPENDS:=@PCI_SUPPORT +kmod-mhi-bus
+ KCONFIG:=CONFIG_MHI_BUS_PCI_GENERIC
+ FILES:=$(LINUX_DIR)/drivers/bus/mhi/host/mhi_pci_generic.ko
+ AUTOLOAD:=$(call AutoProbe,mhi_pci_generic)
+endef
+
+define KernelPackage/mhi-pci-generic/description
+ Kernel module for the MHI PCI controller driver.
+endef
+
+$(eval $(call KernelPackage,mhi-pci-generic))
+
+define KernelPackage/hw_breakpoint
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=HW breakpoint/watchpoint sample
+ KCONFIG:= \
+ CONFIG_HAVE_HW_BREAKPOINT
+ FILES:= \
+ $(LINUX_DIR)/samples/hw_breakpoint/data_breakpoint.ko
+endef
+
+define KernelPackage/hw_breakpoint/description
+ Kernel module of HW breakpoint/watchpoint sample
+endef
+
+$(eval $(call KernelPackage,hw_breakpoint))
+
diff --git a/package/kernel/linux/modules/pcmcia.mk b/package/kernel/linux/modules/pcmcia.mk
new file mode 100644
index 0000000..11c2106
--- /dev/null
+++ b/package/kernel/linux/modules/pcmcia.mk
@@ -0,0 +1,113 @@
+#
+# Copyright (C) 2006-2010 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+PCMCIA_MENU:=PCMCIA support
+
+define KernelPackage/pcmcia-core
+ SUBMENU:=$(PCMCIA_MENU)
+ TITLE:=PCMCIA/CardBus support
+ DEPENDS:=@PCMCIA_SUPPORT
+ KCONFIG:= \
+ CONFIG_PCMCIA \
+ CONFIG_PCMCIA_LOAD_CIS=y \
+ CONFIG_CARDBUS \
+ CONFIG_PCCARD \
+ PCMCIA_DEBUG=n
+ FILES:= \
+ $(LINUX_DIR)/drivers/pcmcia/pcmcia_core.ko \
+ $(LINUX_DIR)/drivers/pcmcia/pcmcia.ko
+ AUTOLOAD:=$(call AutoLoad,25,pcmcia_core pcmcia)
+endef
+
+define KernelPackage/pcmcia-core/description
+ Kernel support for PCMCIA/CardBus controllers
+endef
+
+$(eval $(call KernelPackage,pcmcia-core))
+
+
+define AddDepends/pcmcia
+ SUBMENU:=$(PCMCIA_MENU)
+ DEPENDS+=kmod-pcmcia-core $(1)
+endef
+
+
+define KernelPackage/pcmcia-rsrc
+ TITLE:=PCMCIA resource support
+ KCONFIG:=CONFIG_PCCARD_NONSTATIC=y
+ FILES:=$(LINUX_DIR)/drivers/pcmcia/pcmcia_rsrc.ko
+ AUTOLOAD:=$(call AutoLoad,26,pcmcia_rsrc)
+ $(call AddDepends/pcmcia)
+endef
+
+define KernelPackage/pcmcia-rsrc/description
+ Kernel support for PCMCIA resource allocation
+endef
+
+$(eval $(call KernelPackage,pcmcia-rsrc))
+
+
+define KernelPackage/pcmcia-yenta
+ TITLE:=yenta socket driver
+ KCONFIG:=CONFIG_YENTA
+ FILES:=$(LINUX_DIR)/drivers/pcmcia/yenta_socket.ko
+ AUTOLOAD:=$(call AutoLoad,41,yenta_socket)
+ DEPENDS:=+kmod-pcmcia-rsrc
+ $(call AddDepends/pcmcia)
+endef
+
+$(eval $(call KernelPackage,pcmcia-yenta))
+
+
+define KernelPackage/pcmcia-serial
+ TITLE:=Serial devices support
+ KCONFIG:= \
+ CONFIG_PCMCIA_SERIAL_CS \
+ CONFIG_SERIAL_8250_CS
+ FILES:=$(LINUX_DIR)/drivers/tty/serial/8250/serial_cs.ko
+ AUTOLOAD:=$(call AutoLoad,45,serial_cs)
+ DEPENDS:=+kmod-serial-8250
+ $(call AddDepends/pcmcia)
+endef
+
+define KernelPackage/pcmcia-serial/description
+ Kernel support for PCMCIA/CardBus serial devices
+endef
+
+$(eval $(call KernelPackage,pcmcia-serial))
+
+
+define KernelPackage/pcmcia-pd6729
+ TITLE:=Cirrus PD6729 compatible bridge support
+ KCONFIG:=CONFIG_PD6729
+ FILES:=$(LINUX_DIR)/drivers/pcmcia/pd6729.ko
+ AUTOLOAD:=$(call AutoLoad,41,pd6729)
+ DEPENDS:=+kmod-pcmcia-rsrc
+ $(call AddDepends/pcmcia)
+endef
+
+define KernelPackage/pcmcia-pd6729/description
+ Kernel support for the Cirrus PD6729 PCI-to-PCMCIA bridge
+endef
+
+$(eval $(call KernelPackage,pcmcia-pd6729))
+
+
+define KernelPackage/pcmcia-nozomi
+ TITLE:=Option Fusion+ card
+ KCONFIG:=CONFIG_NOZOMI
+ FILES:=$(LINUX_DIR)/drivers/tty/nozomi.ko
+ AUTOLOAD:=$(call AutoLoad,60,nozomi)
+ DEPENDS:=+kmod-pcmcia-rsrc
+ $(call AddDepends/pcmcia)
+endef
+
+define KernelPackage/pcmcia-nozomi/description
+ Kernel support for Option Fusion+ card
+endef
+
+$(eval $(call KernelPackage,pcmcia-nozomi))
diff --git a/package/kernel/linux/modules/sound.mk b/package/kernel/linux/modules/sound.mk
new file mode 100644
index 0000000..3d39815
--- /dev/null
+++ b/package/kernel/linux/modules/sound.mk
@@ -0,0 +1,578 @@
+#
+# Copyright (C) 2006-2013 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+SOUND_MENU:=Sound Support
+
+# allow targets to override the soundcore stuff
+SOUNDCORE_LOAD ?= \
+ soundcore \
+ snd \
+ snd-hwdep \
+ snd-seq-device \
+ snd-rawmidi \
+ snd-timer \
+ snd-pcm \
+ snd-compress
+
+SOUNDCORE_FILES ?= \
+ $(LINUX_DIR)/sound/soundcore.ko \
+ $(LINUX_DIR)/sound/core/snd.ko \
+ $(LINUX_DIR)/sound/core/snd-hwdep.ko \
+ $(LINUX_DIR)/sound/core/snd-seq-device.ko \
+ $(LINUX_DIR)/sound/core/snd-rawmidi.ko \
+ $(LINUX_DIR)/sound/core/snd-timer.ko \
+ $(LINUX_DIR)/sound/core/snd-pcm.ko \
+ $(LINUX_DIR)/sound/core/snd-compress.ko
+
+SOUNDCORE_LOAD += \
+ $(if $(CONFIG_SND_DMAENGINE_PCM),snd-pcm-dmaengine)
+
+SOUNDCORE_FILES += \
+ $(if $(CONFIG_SND_DMAENGINE_PCM),$(LINUX_DIR)/sound/core/snd-pcm-dmaengine.ko)
+
+define KernelPackage/sound-core
+ SUBMENU:=$(SOUND_MENU)
+ TITLE:=Sound support
+ DEPENDS:=@AUDIO_SUPPORT +kmod-input-core
+ KCONFIG:= \
+ CONFIG_SOUND \
+ CONFIG_SND \
+ CONFIG_SND_HWDEP \
+ CONFIG_SND_RAWMIDI \
+ CONFIG_SND_TIMER \
+ CONFIG_SND_PCM \
+ CONFIG_SND_PCM_TIMER=y \
+ CONFIG_SND_SEQUENCER \
+ CONFIG_SND_VIRMIDI \
+ CONFIG_SND_SEQ_DUMMY \
+ CONFIG_SND_SEQUENCER_OSS=y \
+ CONFIG_HOSTAUDIO \
+ CONFIG_SND_PCM_OSS \
+ CONFIG_SND_MIXER_OSS \
+ CONFIG_SOUND_OSS_CORE_PRECLAIM=y \
+ CONFIG_SND_COMPRESS_OFFLOAD
+ FILES:=$(SOUNDCORE_FILES)
+ AUTOLOAD:=$(call AutoLoad,30,$(SOUNDCORE_LOAD))
+endef
+
+define KernelPackage/sound-core/uml
+ FILES:= \
+ $(LINUX_DIR)/sound/soundcore.ko \
+ $(LINUX_DIR)/arch/um/drivers/hostaudio.ko
+ AUTOLOAD+=$(call AutoLoad,30,soundcore hostaudio)
+endef
+
+define KernelPackage/sound-core/description
+ Kernel modules for sound support
+endef
+
+$(eval $(call KernelPackage,sound-core))
+
+
+define AddDepends/sound
+ SUBMENU:=$(SOUND_MENU)
+ DEPENDS+=kmod-sound-core $(1) @!TARGET_uml
+endef
+
+
+define KernelPackage/ac97
+ TITLE:=ac97 controller
+ KCONFIG:=CONFIG_SND_AC97_CODEC
+ FILES:= \
+ $(LINUX_DIR)/sound/ac97_bus.ko \
+ $(LINUX_DIR)/sound/pci/ac97/snd-ac97-codec.ko
+ AUTOLOAD:=$(call AutoLoad,35,ac97_bus snd-ac97-codec)
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/ac97/description
+ The ac97 controller
+endef
+
+$(eval $(call KernelPackage,ac97))
+
+
+define KernelPackage/sound-mpu401
+ TITLE:=MPU-401 uart driver
+ KCONFIG:=CONFIG_SND_MPU401_UART
+ FILES:= \
+ $(LINUX_DIR)/sound/drivers/mpu401/snd-mpu401-uart.ko
+ AUTOLOAD:=$(call AutoLoad,35,snd-mpu401-uart)
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-mpu401/description
+ support for MIDI ports compatible with the Roland MPU-401
+ interface in UART mode.
+endef
+
+$(eval $(call KernelPackage,sound-mpu401))
+
+
+define KernelPackage/sound-seq
+ TITLE:=Sequencer support
+ FILES:= \
+ $(LINUX_DIR)/sound/core/seq/snd-seq.ko \
+ $(LINUX_DIR)/sound/core/seq/snd-seq-midi-event.ko \
+ $(LINUX_DIR)/sound/core/seq/snd-seq-midi.ko
+ AUTOLOAD:=$(call AutoLoad,35,snd-seq snd-seq-midi-event snd-seq-midi)
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-seq/description
+ Kernel modules for sequencer support
+endef
+
+$(eval $(call KernelPackage,sound-seq))
+
+
+define KernelPackage/sound-ens1371
+ TITLE:=(Creative) Ensoniq AudioPCI 1371
+ KCONFIG:=CONFIG_SND_ENS1371
+ DEPENDS:=@PCI_SUPPORT +kmod-ac97
+ FILES:=$(LINUX_DIR)/sound/pci/snd-ens1371.ko
+ AUTOLOAD:=$(call AutoLoad,36,snd-ens1371)
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-ens1371/description
+ support for (Creative) Ensoniq AudioPCI 1371 chips
+endef
+
+$(eval $(call KernelPackage,sound-ens1371))
+
+
+define KernelPackage/sound-i8x0
+ TITLE:=Intel/SiS/nVidia/AMD/ALi AC97 Controller
+ DEPENDS:=+kmod-ac97
+ KCONFIG:=CONFIG_SND_INTEL8X0
+ FILES:=$(LINUX_DIR)/sound/pci/snd-intel8x0.ko
+ AUTOLOAD:=$(call AutoLoad,36,snd-intel8x0)
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-i8x0/description
+ support for the integrated AC97 sound device on motherboards
+ with Intel/SiS/nVidia/AMD chipsets, or ALi chipsets using
+ the M5455 Audio Controller.
+endef
+
+$(eval $(call KernelPackage,sound-i8x0))
+
+
+define KernelPackage/sound-via82xx
+ TITLE:=VIA 82xx AC97 Controller
+ DEPENDS:=+kmod-ac97 +kmod-sound-mpu401
+ KCONFIG:=CONFIG_SND_VIA82XX
+ FILES:=$(LINUX_DIR)/sound/pci/snd-via82xx.ko
+ AUTOLOAD:=$(call AutoLoad,36,snd-via82xx)
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-via82xx/description
+ support for the integrated AC97 sound device on motherboards
+ with VIA chipsets.
+endef
+
+$(eval $(call KernelPackage,sound-via82xx))
+
+
+define KernelPackage/sound-soc-core
+ TITLE:=SoC sound support
+ DEPENDS:=+kmod-regmap-core +kmod-ac97
+ KCONFIG:= \
+ CONFIG_SND_SOC \
+ CONFIG_SND_SOC_ADI=n \
+ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y \
+ CONFIG_SND_SOC_ALL_CODECS=n
+ FILES:=$(LINUX_DIR)/sound/soc/snd-soc-core.ko
+ AUTOLOAD:=$(call AutoLoad,55,snd-soc-core)
+ $(call AddDepends/sound)
+endef
+
+$(eval $(call KernelPackage,sound-soc-core))
+
+
+define KernelPackage/sound-soc-ac97
+ TITLE:=AC97 Codec support
+ KCONFIG:=CONFIG_SND_SOC_AC97_CODEC
+ FILES:=$(LINUX_DIR)/sound/soc/codecs/snd-soc-ac97.ko
+ AUTOLOAD:=$(call AutoLoad,57,snd-soc-ac97)
+ DEPENDS:=+kmod-ac97 +kmod-sound-soc-core
+ $(call AddDepends/sound)
+endef
+
+$(eval $(call KernelPackage,sound-soc-ac97))
+
+
+define KernelPackage/sound-soc-imx
+ TITLE:=IMX SoC support
+ KCONFIG:=\
+ CONFIG_SND_IMX_SOC \
+ CONFIG_SND_SOC_IMX_AUDMUX \
+ CONFIG_SND_SOC_FSL_SSI \
+ CONFIG_SND_SOC_IMX_PCM_DMA
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/fsl/snd-soc-imx-audmux.ko \
+ $(LINUX_DIR)/sound/soc/fsl/snd-soc-fsl-ssi.ko \
+ $(LINUX_DIR)/sound/soc/fsl/imx-pcm-dma.ko
+ AUTOLOAD:=$(call AutoLoad,56,snd-soc-imx-audmux snd-soc-fsl-ssi snd-soc-imx-pcm)
+ DEPENDS:=@TARGET_imx +kmod-sound-soc-core
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-imx/description
+ Support for i.MX Platform sound (ssi/audmux/pcm)
+endef
+
+$(eval $(call KernelPackage,sound-soc-imx))
+
+
+define KernelPackage/sound-soc-mt7986
+ TITLE:=MediaTek MT7986 Audio support
+ KCONFIG:=CONFIG_SND_SOC_MT7986 CONFIG_SND_SOC_MT7986_WM8960
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/mediatek/common/snd-soc-mtk-common.ko \
+ $(LINUX_DIR)/sound/soc/mediatek/mt7986/snd-soc-mt7986-afe.ko
+ AUTOLOAD:=$(call AutoLoad,56,snd-soc-mtk-common snd-soc-mt7986-afe)
+ DEPENDS:=@TARGET_mediatek_filogic +kmod-sound-soc-core
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-mt7986/description
+ Support for audio on systems using the MediaTek MT7986 SoC.
+endef
+
+$(eval $(call KernelPackage,sound-soc-mt7986))
+
+
+define KernelPackage/sound-soc-mt7986-wm8960
+ TITLE:=MediaTek MT7986 Audio support
+ KCONFIG:=CONFIG_SND_SOC_MT7986_WM8960
+ FILES:=$(LINUX_DIR)/sound/soc/mediatek/mt7986/mt7986-wm8960.ko
+ AUTOLOAD:=$(call AutoLoad,57,mt7986-wm8960)
+ DEPENDS:=@TARGET_mediatek_filogic +kmod-sound-soc-wm8960 +kmod-sound-soc-mt7986
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-mt7986-wm8960/description
+ Support for use of the Wolfson Audio WM8960 codec with the MediaTek MT7986 SoC.
+endef
+
+$(eval $(call KernelPackage,sound-soc-mt7986-wm8960))
+
+
+define KernelPackage/sound-soc-imx-sgtl5000
+ TITLE:=IMX SoC support for SGTL5000
+ KCONFIG:=CONFIG_SND_SOC_IMX_SGTL5000
+ FILES:=\
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-sgtl5000.ko \
+ $(LINUX_DIR)/sound/soc/fsl/snd-soc-imx-sgtl5000.ko
+ AUTOLOAD:=$(call AutoLoad,57,snd-soc-sgtl5000 snd-soc-imx-sgtl5000)
+ DEPENDS:=@TARGET_imx +kmod-sound-soc-imx +kmod-regmap-i2c
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-imx-sgtl5000/description
+ Support for i.MX Platform sound SGTL5000 codec
+endef
+
+$(eval $(call KernelPackage,sound-soc-imx-sgtl5000))
+
+
+define KernelPackage/sound-soc-wm8960
+ TITLE:=SoC WM8960 codec support
+ KCONFIG:=CONFIG_SND_SOC_WM8960
+ FILES:=$(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8960.ko
+ DEPENDS:=+kmod-sound-soc-core +kmod-i2c-core +kmod-regmap-i2c
+ AUTOLOAD:=$(call AutoProbe,snd-soc-wm8960)
+ $(call AddDepends/sound)
+endef
+
+$(eval $(call KernelPackage,sound-soc-wm8960))
+
+
+define KernelPackage/sound-soc-spdif
+ TITLE:=SoC S/PDIF codec support
+ KCONFIG:=CONFIG_SND_SOC_SPDIF
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-spdif-tx.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-spdif-rx.ko
+ DEPENDS:=+kmod-sound-soc-core
+ AUTOLOAD:=$(call AutoProbe,snd-soc-spdif-tx snd-soc-spdif-rx)
+ $(call AddDepends/sound)
+endef
+
+$(eval $(call KernelPackage,sound-soc-spdif))
+
+
+define KernelPackage/pcspkr
+ DEPENDS:=@TARGET_x86 +kmod-input-core
+ TITLE:=PC speaker support
+ KCONFIG:= \
+ CONFIG_SND_PCSP
+ FILES:= \
+ $(LINUX_DIR)/sound/drivers/pcsp/snd-pcsp.ko
+ AUTOLOAD:=$(call AutoLoad,50,snd-pcsp)
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/pcspkr/description
+ This enables sounds (tones) through the pc speaker
+endef
+
+$(eval $(call KernelPackage,pcspkr))
+
+define KernelPackage/sound-dummy
+ $(call AddDepends/sound)
+ TITLE:=Null sound output driver (sink)
+ KCONFIG:= \
+ CONFIG_SND_DUMMY
+ FILES:= \
+ $(LINUX_DIR)/sound/drivers/snd-dummy.ko
+ AUTOLOAD:=$(call AutoLoad,32,snd-dummy)
+endef
+
+define KernelPackage/sound-dummy/description
+ Dummy sound device for Alsa when no hardware present
+endef
+
+$(eval $(call KernelPackage,sound-dummy))
+
+define KernelPackage/sound-hda-core
+ SUBMENU:=$(SOUND_MENU)
+ TITLE:=HD Audio Sound Core Support
+ DEPENDS:=+kmod-ledtrig-audio
+ KCONFIG:= \
+ CONFIG_SND_HDA_CORE \
+ CONFIG_SND_HDA_HWDEP=y \
+ CONFIG_SND_HDA_RECONFIG=n \
+ CONFIG_SND_HDA_INPUT_BEEP=n \
+ CONFIG_SND_HDA_PATCH_LOADER=n \
+ CONFIG_SND_HDA_GENERIC
+ FILES:= \
+ $(LINUX_DIR)/sound/hda/snd-hda-core.ko \
+ $(LINUX_DIR)/sound/pci/hda/snd-hda-codec.ko \
+ $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-generic.ko
+ AUTOLOAD:=$(call AutoProbe,snd-hda-core snd-hda-codec snd-hda-codec-generic)
+ $(call AddDepends/sound,+kmod-regmap-core)
+endef
+
+define KernelPackage/sound-hda-core/description
+ Kernel modules for HD Audio sound support
+endef
+
+$(eval $(call KernelPackage,sound-hda-core))
+
+define KernelPackage/sound-hda-codec-realtek
+ SUBMENU:=$(SOUND_MENU)
+ TITLE:= HD Audio Realtek Codec
+ KCONFIG:= \
+ CONFIG_SND_HDA_CODEC_REALTEK
+ FILES:= \
+ $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-realtek.ko
+ AUTOLOAD:=$(call AutoProbe,snd-hda-codec-realtek)
+ $(call AddDepends/sound,kmod-sound-hda-core)
+endef
+
+define KernelPackage/sound-hda-codec-realtek/description
+ Kernel modules for Intel HDA Realtek codec support
+endef
+
+$(eval $(call KernelPackage,sound-hda-codec-realtek))
+
+define KernelPackage/sound-hda-codec-cmedia
+ SUBMENU:=$(SOUND_MENU)
+ TITLE:=HD Audio C-Media Codec
+ KCONFIG:= \
+ CONFIG_SND_HDA_CODEC_CMEDIA
+ FILES:= \
+ $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-cmedia.ko
+ AUTOLOAD:=$(call AutoProbe,snd-hda-codec-cmedia)
+ $(call AddDepends/sound,kmod-sound-hda-core)
+endef
+
+define KernelPackage/sound-hda-codec-cmedia/description
+ Kernel modules for HD Audio C-Media codec support
+endef
+
+$(eval $(call KernelPackage,sound-hda-codec-cmedia))
+
+define KernelPackage/sound-hda-codec-analog
+ SUBMENU:=$(SOUND_MENU)
+ TITLE:=HD Audio Analog Devices Codec
+ KCONFIG:= \
+ CONFIG_SND_HDA_CODEC_ANALOG
+ FILES:= \
+ $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-analog.ko
+ AUTOLOAD:=$(call AutoProbe,snd-hda-codec-analog)
+ $(call AddDepends/sound,kmod-sound-hda-core)
+endef
+
+define KernelPackage/sound-hda-codec-analog/description
+ Kernel modules for HD Audio Analog Devices codec support
+endef
+
+$(eval $(call KernelPackage,sound-hda-codec-analog))
+
+define KernelPackage/sound-hda-codec-idt
+ SUBMENU:=$(SOUND_MENU)
+ TITLE:=HD Audio Sigmatel IDT Codec
+ KCONFIG:= \
+ CONFIG_SND_HDA_CODEC_SIGMATEL
+ FILES:= \
+ $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-idt.ko
+ AUTOLOAD:=$(call AutoProbe,snd-hda-codec-idt)
+ $(call AddDepends/sound,kmod-sound-hda-core)
+endef
+
+define KernelPackage/sound-hda-codec-idt/description
+ Kernel modules for HD Audio Sigmatel IDT codec support
+endef
+
+$(eval $(call KernelPackage,sound-hda-codec-idt))
+
+define KernelPackage/sound-hda-codec-si3054
+ SUBMENU:=$(SOUND_MENU)
+ TITLE:=HD Audio Silicon Labs 3054 Codec
+ KCONFIG:= \
+ CONFIG_SND_HDA_CODEC_SI3054
+ FILES:= \
+ $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-si3054.ko
+ AUTOLOAD:=$(call AutoProbe,snd-hda-codec-si3054)
+ $(call AddDepends/sound,kmod-sound-hda-core)
+endef
+
+define KernelPackage/sound-hda-codec-si3054/description
+ Kernel modules for HD Audio Silicon Labs 3054 codec support
+endef
+
+$(eval $(call KernelPackage,sound-hda-codec-si3054))
+
+define KernelPackage/sound-hda-codec-cirrus
+ SUBMENU:=$(SOUND_MENU)
+ TITLE:=HD Audio Cirrus Logic Codec
+ KCONFIG:= \
+ CONFIG_SND_HDA_CODEC_CIRRUS
+ FILES:= \
+ $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-cirrus.ko
+ AUTOLOAD:=$(call AutoProbe,snd-hda-codec-cirrus)
+ $(call AddDepends/sound,kmod-sound-hda-core)
+endef
+
+define KernelPackage/sound-hda-codec-cirrus/description
+ Kernel modules for HD Audio Cirrus Logic codec support
+endef
+
+$(eval $(call KernelPackage,sound-hda-codec-cirrus))
+
+define KernelPackage/sound-hda-codec-ca0110
+ SUBMENU:=$(SOUND_MENU)
+ TITLE:=HD Audio Creative CA0110 Codec
+ KCONFIG:= \
+ CONFIG_SND_HDA_CODEC_CA0110
+ FILES:= \
+ $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-ca0110.ko
+ AUTOLOAD:=$(call AutoProbe,snd-hda-codec-ca0110)
+ $(call AddDepends/sound,kmod-sound-hda-core)
+endef
+
+define KernelPackage/sound-hda-codec-ca0110/description
+ Kernel modules for HD Audio Creative CA0110 codec support
+endef
+
+$(eval $(call KernelPackage,sound-hda-codec-ca0110))
+
+define KernelPackage/sound-hda-codec-ca0132
+ SUBMENU:=$(SOUND_MENU)
+ TITLE:=HD Audio Creative CA0132 Codec
+ KCONFIG:= \
+ CONFIG_SND_HDA_CODEC_CA0132 \
+ CONFIG_SND_HDA_CODEC_CA0132_DSP=n
+ FILES:= \
+ $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-ca0132.ko
+ AUTOLOAD:=$(call AutoProbe,snd-hda-codec-ca0132)
+ $(call AddDepends/sound,kmod-sound-hda-core)
+endef
+
+define KernelPackage/sound-hda-codec-ca0132/description
+ Kernel modules for HD Audio Creative CA0132 codec support
+endef
+
+$(eval $(call KernelPackage,sound-hda-codec-ca0132))
+
+define KernelPackage/sound-hda-codec-conexant
+ SUBMENU:=$(SOUND_MENU)
+ TITLE:=HD Audio Conexant Codec
+ KCONFIG:= \
+ CONFIG_SND_HDA_CODEC_CONEXANT
+ FILES:= \
+ $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-conexant.ko
+ AUTOLOAD:=$(call AutoProbe,snd-hda-codec-conexant)
+ $(call AddDepends/sound,kmod-sound-hda-core)
+endef
+
+define KernelPackage/sound-hda-codec-conexant/description
+ Kernel modules for HD Audio Conexant codec support
+endef
+
+$(eval $(call KernelPackage,sound-hda-codec-conexant))
+
+define KernelPackage/sound-hda-codec-via
+ SUBMENU:=$(SOUND_MENU)
+ TITLE:=HD Audio Via Codec
+ KCONFIG:= \
+ CONFIG_SND_HDA_CODEC_VIA
+ FILES:= \
+ $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-via.ko
+ AUTOLOAD:=$(call AutoProbe,snd-hda-codec-via)
+ $(call AddDepends/sound,kmod-sound-hda-core)
+endef
+
+define KernelPackage/sound-hda-codec-via/description
+ Kernel modules for HD Audio VIA codec support
+endef
+
+$(eval $(call KernelPackage,sound-hda-codec-via))
+
+define KernelPackage/sound-hda-codec-hdmi
+ SUBMENU:=$(SOUND_MENU)
+ TITLE:=HD Audio HDMI/DisplayPort Codec
+ KCONFIG:= \
+ CONFIG_SND_HDA_CODEC_HDMI
+ FILES:= \
+ $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-hdmi.ko
+ AUTOLOAD:=$(call AutoProbe,snd-hda-codec-hdmi)
+ $(call AddDepends/sound,kmod-sound-hda-core)
+endef
+
+define KernelPackage/sound-hda-codec-hdmi/description
+ Kernel modules for HD Audio HDMI codec support
+endef
+
+$(eval $(call KernelPackage,sound-hda-codec-hdmi))
+
+define KernelPackage/sound-hda-intel
+ SUBMENU:=$(SOUND_MENU)
+ TITLE:=HD Audio Intel Driver
+ DEPENDS:=@TARGET_x86
+ KCONFIG:= \
+ CONFIG_SOUND_PCI \
+ CONFIG_SND_HDA_INTEL
+ FILES:= \
+ $(LINUX_DIR)/sound/pci/hda/snd-hda-intel.ko \
+ $(LINUX_DIR)/sound/hda/snd-intel-nhlt.ko@lt5.5 \
+ $(LINUX_DIR)/sound/hda/snd-intel-dspcfg.ko@ge5.5
+ AUTOLOAD:=$(call AutoProbe,snd-hda-intel)
+ $(call AddDepends/sound,kmod-sound-hda-core)
+endef
+
+define KernelPackage/sound-hda-intel/description
+ Kernel modules for HD Audio Intel driver support
+endef
+
+$(eval $(call KernelPackage,sound-hda-intel))
diff --git a/package/kernel/linux/modules/spi.mk b/package/kernel/linux/modules/spi.mk
new file mode 100644
index 0000000..5cdfc3b
--- /dev/null
+++ b/package/kernel/linux/modules/spi.mk
@@ -0,0 +1,76 @@
+#
+# Copyright (C) 2006-2011 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+SPI_MENU:=SPI Support
+
+define KernelPackage/mmc-spi
+ SUBMENU:=$(SPI_MENU)
+ TITLE:=MMC/SD over SPI Support
+ DEPENDS:=+kmod-mmc +kmod-lib-crc-itu-t +kmod-lib-crc7
+ KCONFIG:=CONFIG_MMC_SPI \
+ CONFIG_SPI=y \
+ CONFIG_SPI_MASTER=y
+ FILES:=\
+ $(if $(CONFIG_OF),$(LINUX_DIR)/drivers/mmc/host/of_mmc_spi.ko@lt5.13) \
+ $(LINUX_DIR)/drivers/mmc/host/of_mmc_spi.ko@ge5.13 \
+ $(LINUX_DIR)/drivers/mmc/host/mmc_spi.ko
+ AUTOLOAD:=$(call AutoProbe,$(if $(CONFIG_OF),of_mmc_spi@lt5.13) of_mmc_spi@ge5.13 mmc_spi)
+endef
+
+define KernelPackage/mmc-spi/description
+ Kernel support for MMC/SD over SPI
+endef
+
+$(eval $(call KernelPackage,mmc-spi))
+
+
+define KernelPackage/spi-bitbang
+ SUBMENU:=$(SPI_MENU)
+ TITLE:=Serial Peripheral Interface bitbanging library
+ KCONFIG:=CONFIG_SPI_BITBANG \
+ CONFIG_SPI=y \
+ CONFIG_SPI_MASTER=y
+ FILES:=$(LINUX_DIR)/drivers/spi/spi-bitbang.ko
+endef
+
+define KernelPackage/spi-bitbang/description
+ This package contains the SPI bitbanging library
+endef
+
+$(eval $(call KernelPackage,spi-bitbang))
+
+
+define KernelPackage/spi-gpio
+ SUBMENU:=$(SPI_MENU)
+ TITLE:=GPIO-based bitbanging SPI Master
+ DEPENDS:=@GPIO_SUPPORT +kmod-spi-bitbang
+ KCONFIG:=CONFIG_SPI_GPIO
+ FILES:=$(LINUX_DIR)/drivers/spi/spi-gpio.ko
+ AUTOLOAD:=$(call AutoProbe,spi-gpio)
+endef
+
+define KernelPackage/spi-gpio/description
+ This package contains the GPIO-based bitbanging SPI Master
+endef
+
+$(eval $(call KernelPackage,spi-gpio))
+
+define KernelPackage/spi-dev
+ SUBMENU:=$(SPI_MENU)
+ TITLE:=User mode SPI device driver
+ KCONFIG:=CONFIG_SPI_SPIDEV \
+ CONFIG_SPI=y \
+ CONFIG_SPI_MASTER=y
+ FILES:=$(LINUX_DIR)/drivers/spi/spidev.ko
+ AUTOLOAD:=$(call AutoProbe,spidev)
+endef
+
+define KernelPackage/spi-dev/description
+ This package contains the user mode SPI device driver
+endef
+
+$(eval $(call KernelPackage,spi-dev))
diff --git a/package/kernel/linux/modules/usb.mk b/package/kernel/linux/modules/usb.mk
new file mode 100644
index 0000000..5055702
--- /dev/null
+++ b/package/kernel/linux/modules/usb.mk
@@ -0,0 +1,1919 @@
+#
+# Copyright (C) 2006-2014 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+USB_MENU:=USB Support
+
+USBNET_DIR:=net/usb
+USBHID_DIR?=hid/usbhid
+USBINPUT_DIR?=input/misc
+
+define KernelPackage/usb-core
+ SUBMENU:=$(USB_MENU)
+ TITLE:=Support for USB
+ DEPENDS:=@USB_SUPPORT
+ KCONFIG:=CONFIG_USB CONFIG_XPS_USB_HCD_XILINX=n CONFIG_USB_FHCI_HCD=n
+ FILES:= \
+ $(LINUX_DIR)/drivers/usb/core/usbcore.ko \
+ $(LINUX_DIR)/drivers/usb/common/usb-common.ko
+ AUTOLOAD:=$(call AutoLoad,20,usb-common usbcore,1)
+ $(call AddDepends/nls)
+endef
+
+define KernelPackage/usb-core/description
+ Kernel support for USB
+endef
+
+$(eval $(call KernelPackage,usb-core))
+
+
+define AddDepends/usb
+ SUBMENU:=$(USB_MENU)
+ DEPENDS+=+kmod-usb-core $(1)
+endef
+
+
+define KernelPackage/usb-ledtrig-usbport
+ TITLE:=LED trigger for USB ports
+ KCONFIG:=CONFIG_USB_LEDS_TRIGGER_USBPORT
+ FILES:=$(LINUX_DIR)/drivers/usb/core/ledtrig-usbport.ko
+ AUTOLOAD:=$(call AutoLoad,50,ledtrig-usbport)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-ledtrig-usbport/description
+ This driver allows LEDs to be controlled by USB events. Enabling this
+ trigger allows specifying list of USB ports that should turn on LED
+ when some USB device gets connected.
+ If possible it should be prefered over similar ledtrig-usbdev.
+endef
+
+$(eval $(call KernelPackage,usb-ledtrig-usbport))
+
+
+define KernelPackage/usb-phy-nop
+ TITLE:=Support for USB NOP transceiver
+ KCONFIG:=CONFIG_NOP_USB_XCEIV
+ HIDDEN:=1
+ FILES:=$(LINUX_DIR)/drivers/usb/phy/phy-generic.ko
+ AUTOLOAD:=$(call AutoLoad,21,phy-generic,1)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-phy-nop/description
+ Support for USB NOP transceiver
+endef
+
+$(eval $(call KernelPackage,usb-phy-nop))
+
+
+define KernelPackage/phy-ath79-usb
+ TITLE:=Support for ATH79 USB PHY
+ KCONFIG:=CONFIG_PHY_AR7100_USB \
+ CONFIG_PHY_AR7200_USB
+ DEPENDS:=@TARGET_ath79
+ HIDDEN:=1
+ FILES:=$(LINUX_DIR)/drivers/phy/phy-ar7100-usb.ko \
+ $(LINUX_DIR)/drivers/phy/phy-ar7200-usb.ko
+ AUTOLOAD:=$(call AutoLoad,21,phy-ar7100-usb phy-ar7200-usb,1)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/phy-ath79-usb/description
+ Support for ATH79 USB transceiver
+endef
+
+$(eval $(call KernelPackage,phy-ath79-usb))
+
+
+define KernelPackage/usb-gadget
+ TITLE:=USB Gadget support
+ KCONFIG:=CONFIG_USB_GADGET
+ HIDDEN:=1
+ FILES:=\
+ $(LINUX_DIR)/drivers/usb/gadget/udc/udc-core.ko
+ AUTOLOAD:=$(call AutoLoad,21,udc-core,1)
+ DEPENDS:=@USB_GADGET_SUPPORT
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-gadget/description
+ Kernel support for USB Gadget mode
+endef
+
+$(eval $(call KernelPackage,usb-gadget))
+
+define KernelPackage/usb-lib-composite
+ TITLE:=USB lib composite
+ KCONFIG:=CONFIG_USB_LIBCOMPOSITE
+ DEPENDS:=+kmod-usb-gadget +kmod-fs-configfs
+ HIDDEN:=1
+ FILES:=$(LINUX_DIR)/drivers/usb/gadget/libcomposite.ko
+ AUTOLOAD:=$(call AutoLoad,50,libcomposite)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-lib-composite/description
+ Lib Composite
+endef
+
+$(eval $(call KernelPackage,usb-lib-composite))
+
+define KernelPackage/usb-gadget-hid
+ TITLE:=USB HID Gadget Support
+ KCONFIG:=CONFIG_USB_G_HID
+ DEPENDS:=+kmod-usb-gadget +kmod-usb-lib-composite
+ FILES:= \
+ $(LINUX_DIR)/drivers/usb/gadget/legacy/g_hid.ko \
+ $(LINUX_DIR)/drivers/usb/gadget/function/usb_f_hid.ko
+ AUTOLOAD:=$(call AutoLoad,52,usb_f_hid)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-gadget-hid/description
+ Kernel support for USB HID Gadget.
+endef
+
+$(eval $(call KernelPackage,usb-gadget-hid))
+
+define KernelPackage/usb-gadget-ehci-debug
+ TITLE:=USB EHCI debug port Gadget support
+ KCONFIG:=\
+ CONFIG_USB_G_DBGP \
+ CONFIG_USB_G_DBGP_SERIAL=y \
+ CONFIG_USB_G_DBGP_PRINTK=n
+ DEPENDS:=+kmod-usb-gadget +kmod-usb-lib-composite +kmod-usb-gadget-serial
+ FILES:=$(LINUX_DIR)/drivers/usb/gadget/legacy/g_dbgp.ko
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-gadget-ehci-debug/description
+ Kernel support for USB EHCI debug port Gadget.
+endef
+
+$(eval $(call KernelPackage,usb-gadget-ehci-debug))
+
+define KernelPackage/usb-gadget-eth
+ TITLE:=USB Ethernet Gadget support
+ KCONFIG:= \
+ CONFIG_USB_ETH \
+ CONFIG_USB_ETH_RNDIS=y \
+ CONFIG_USB_ETH_EEM=n
+ DEPENDS:=+kmod-usb-gadget +kmod-usb-lib-composite
+ FILES:= \
+ $(LINUX_DIR)/drivers/usb/gadget/function/u_ether.ko \
+ $(LINUX_DIR)/drivers/usb/gadget/function/usb_f_ecm.ko \
+ $(LINUX_DIR)/drivers/usb/gadget/function/usb_f_ecm_subset.ko \
+ $(LINUX_DIR)/drivers/usb/gadget/function/usb_f_rndis.ko \
+ $(LINUX_DIR)/drivers/usb/gadget/legacy/g_ether.ko
+ AUTOLOAD:=$(call AutoLoad,52,usb_f_ecm)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-gadget-eth/description
+ Kernel support for USB Ethernet Gadget
+endef
+
+$(eval $(call KernelPackage,usb-gadget-eth))
+
+define KernelPackage/usb-gadget-ncm
+ TITLE:=USB Network Control Model (NCM) Gadget support
+ KCONFIG:=CONFIG_USB_G_NCM
+ DEPENDS:=+kmod-usb-gadget +kmod-usb-lib-composite \
+ +kmod-usb-gadget-eth
+ FILES:= \
+ $(LINUX_DIR)/drivers/usb/gadget/function/usb_f_ncm.ko \
+ $(LINUX_DIR)/drivers/usb/gadget/legacy/g_ncm.ko
+ AUTOLOAD:=$(call AutoLoad,52,usb_f_ncm)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-gadget-ncm/description
+ Kernel support for USB Network Control Model (NCM) Gadget
+endef
+
+$(eval $(call KernelPackage,usb-gadget-ncm))
+
+define KernelPackage/usb-gadget-serial
+ TITLE:=USB Serial Gadget support
+ KCONFIG:=CONFIG_USB_G_SERIAL
+ DEPENDS:=+kmod-usb-gadget +kmod-usb-lib-composite
+ FILES:= \
+ $(LINUX_DIR)/drivers/usb/gadget/function/u_serial.ko \
+ $(LINUX_DIR)/drivers/usb/gadget/function/usb_f_acm.ko \
+ $(LINUX_DIR)/drivers/usb/gadget/function/usb_f_obex.ko \
+ $(LINUX_DIR)/drivers/usb/gadget/function/usb_f_serial.ko \
+ $(LINUX_DIR)/drivers/usb/gadget/legacy/g_serial.ko
+ AUTOLOAD:=$(call AutoLoad,52,usb_f_acm)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-gadget-serial/description
+ Kernel support for USB Serial Gadget.
+endef
+
+$(eval $(call KernelPackage,usb-gadget-serial))
+
+define KernelPackage/usb-gadget-mass-storage
+ TITLE:=USB Mass Storage support
+ KCONFIG:=CONFIG_USB_MASS_STORAGE
+ DEPENDS:=+kmod-usb-gadget +kmod-usb-lib-composite
+ FILES:= \
+ $(LINUX_DIR)/drivers/usb/gadget/function/usb_f_mass_storage.ko \
+ $(LINUX_DIR)/drivers/usb/gadget/legacy/g_mass_storage.ko
+ AUTOLOAD:=$(call AutoLoad,52,usb_f_mass_storage)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-gadget-mass-storage/description
+ Kernel support for USB Gadget Mass Storage
+endef
+
+$(eval $(call KernelPackage,usb-gadget-mass-storage))
+
+define KernelPackage/usb-gadget-cdc-composite
+ TITLE:= USB CDC Composite (Ethernet + ACM)
+ KCONFIG:=CONFIG_USB_CDC_COMPOSITE
+ DEPENDS:=+kmod-usb-gadget +kmod-usb-lib-composite \
+ +kmod-usb-gadget-eth +kmod-usb-gadget-serial
+ FILES:= $(LINUX_DIR)/drivers/usb/gadget/legacy/g_cdc.ko
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-gadget-cdc-composite/description
+ Kernel support for the USB CDC Composite gadget.
+ This appears as an ethernet + ACM serial gadget.
+endef
+
+$(eval $(call KernelPackage,usb-gadget-cdc-composite))
+
+
+define KernelPackage/usb-uhci
+ TITLE:=Support for UHCI controllers
+ KCONFIG:= \
+ CONFIG_USB_PCI=y \
+ CONFIG_USB_UHCI_ALT \
+ CONFIG_USB_UHCI_HCD
+ FILES:=$(LINUX_DIR)/drivers/usb/host/uhci-hcd.ko
+ AUTOLOAD:=$(call AutoLoad,50,uhci-hcd,1)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-uhci/description
+ Kernel support for USB UHCI controllers
+endef
+
+$(eval $(call KernelPackage,usb-uhci,1))
+
+
+define KernelPackage/usb-ohci
+ TITLE:=Support for OHCI controllers
+ DEPENDS:= \
+ +TARGET_bcm53xx:kmod-usb-bcma \
+ +TARGET_bcm47xx:kmod-usb-bcma \
+ +TARGET_bcm47xx:kmod-usb-ssb
+ KCONFIG:= \
+ CONFIG_USB_OHCI \
+ CONFIG_USB_OHCI_HCD \
+ CONFIG_USB_OHCI_ATH79=y \
+ CONFIG_USB_OHCI_HCD_AT91=y \
+ CONFIG_USB_OHCI_BCM63XX=y \
+ CONFIG_USB_OCTEON_OHCI=y \
+ CONFIG_USB_OHCI_HCD_OMAP3=y \
+ CONFIG_USB_OHCI_HCD_PLATFORM=y
+ FILES:= \
+ $(LINUX_DIR)/drivers/usb/host/ohci-hcd.ko \
+ $(LINUX_DIR)/drivers/usb/host/ohci-platform.ko
+ ifneq ($(wildcard $(LINUX_DIR)/drivers/usb/host/ohci-at91.ko),)
+ FILES+=$(LINUX_DIR)/drivers/usb/host/ohci-at91.ko
+ endif
+ AUTOLOAD:=$(call AutoLoad,50,ohci-hcd ohci-platform ohci-at91,1)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-ohci/description
+ Kernel support for USB OHCI controllers
+endef
+
+$(eval $(call KernelPackage,usb-ohci,1))
+
+
+define KernelPackage/usb-ohci-pci
+ TITLE:=Support for PCI OHCI controllers
+ DEPENDS:=@PCI_SUPPORT +kmod-usb-ohci
+ KCONFIG:= \
+ CONFIG_USB_PCI=y \
+ CONFIG_USB_OHCI_HCD_PCI
+ FILES:=$(LINUX_DIR)/drivers/usb/host/ohci-pci.ko
+ AUTOLOAD:=$(call AutoLoad,51,ohci-pci,1)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-ohci-pci/description
+ Kernel support for PCI OHCI controllers
+endef
+
+$(eval $(call KernelPackage,usb-ohci-pci))
+
+
+define KernelPackage/usb-bcma
+ TITLE:=Support for BCMA USB controllers
+ DEPENDS:=@USB_SUPPORT @TARGET_bcm47xx||TARGET_bcm53xx
+ HIDDEN:=1
+ KCONFIG:=CONFIG_USB_HCD_BCMA
+ FILES:= \
+ $(if $(CONFIG_USB_HCD_BCMA),$(LINUX_DIR)/drivers/usb/host/bcma-hcd.ko)
+ AUTOLOAD:=$(call AutoLoad,19,$(if $(CONFIG_USB_HCD_BCMA),bcma-hcd),1)
+ $(call AddDepends/usb)
+endef
+$(eval $(call KernelPackage,usb-bcma))
+
+define KernelPackage/usb-ssb
+ TITLE:=Support for SSB USB controllers
+ DEPENDS:=@USB_SUPPORT @TARGET_bcm47xx
+ HIDDEN:=1
+ KCONFIG:=CONFIG_USB_HCD_SSB
+ FILES:= \
+ $(if $(CONFIG_USB_HCD_SSB),$(LINUX_DIR)/drivers/usb/host/ssb-hcd.ko)
+ AUTOLOAD:=$(call AutoLoad,19,$(if $(CONFIG_USB_HCD_SSB),ssb-hcd),1)
+ $(call AddDepends/usb)
+endef
+$(eval $(call KernelPackage,usb-ssb))
+
+define KernelPackage/usb-ehci
+ TITLE:=EHCI controller support
+ HIDDEN:=1
+ KCONFIG:= \
+ CONFIG_USB_EHCI_HCD
+ FILES:= \
+ $(LINUX_DIR)/drivers/usb/host/ehci-hcd.ko
+ AUTOLOAD:=$(call AutoLoad,35,ehci-hcd,1)
+ $(call AddDepends/usb)
+endef
+$(eval $(call KernelPackage,usb-ehci))
+
+define KernelPackage/usb2
+ TITLE:=Support for USB2 controllers
+ DEPENDS:=\
+ +TARGET_bcm47xx:kmod-usb-bcma \
+ +TARGET_bcm47xx:kmod-usb-ssb \
+ +TARGET_bcm53xx:kmod-usb-bcma \
+ +TARGET_bcm53xx:kmod-phy-bcm-ns-usb2 \
+ +TARGET_ath79:kmod-phy-ath79-usb \
+ +kmod-usb-ehci
+ KCONFIG:=\
+ CONFIG_USB_EHCI_HCD_PLATFORM \
+ CONFIG_USB_EHCI_BCM63XX=y \
+ CONFIG_USB_IMX21_HCD=y \
+ CONFIG_USB_EHCI_MXC=y \
+ CONFIG_USB_OCTEON_EHCI=y \
+ CONFIG_USB_EHCI_HCD_ORION=y \
+ CONFIG_USB_EHCI_HCD_AT91=y \
+ CONFIG_USB_EHCI_FSL
+ FILES:= \
+ $(LINUX_DIR)/drivers/usb/host/ehci-platform.ko
+ ifneq ($(wildcard $(LINUX_DIR)/drivers/usb/host/ehci-orion.ko),)
+ FILES+=$(LINUX_DIR)/drivers/usb/host/ehci-orion.ko
+ endif
+ ifneq ($(wildcard $(LINUX_DIR)/drivers/usb/host/ehci-atmel.ko),)
+ FILES+=$(LINUX_DIR)/drivers/usb/host/ehci-atmel.ko
+ endif
+ ifneq ($(wildcard $(LINUX_DIR)/drivers/usb/host/ehci-fsl.ko),)
+ FILES+=$(LINUX_DIR)/drivers/usb/host/ehci-fsl.ko
+ endif
+ ifneq ($(wildcard $(LINUX_DIR)/drivers/usb/host/fsl-mph-dr-of.ko),)
+ FILES+=$(LINUX_DIR)/drivers/usb/host/fsl-mph-dr-of.ko
+ endif
+ AUTOLOAD:=$(call AutoLoad,40,ehci-hcd ehci-platform ehci-orion ehci-atmel ehci-fsl fsl-mph-dr-of,1)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb2/description
+ Kernel support for USB2 (EHCI) controllers
+endef
+
+$(eval $(call KernelPackage,usb2))
+
+
+define KernelPackage/usb2-pci
+ TITLE:=Support for PCI USB2 controllers
+ DEPENDS:=@PCI_SUPPORT +kmod-usb2
+ KCONFIG:= \
+ CONFIG_USB_PCI=y \
+ CONFIG_USB_EHCI_PCI
+ FILES:=$(LINUX_DIR)/drivers/usb/host/ehci-pci.ko
+ AUTOLOAD:=$(call AutoLoad,42,ehci-pci,1)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb2-pci/description
+ Kernel support for PCI USB2 (EHCI) controllers
+endef
+
+$(eval $(call KernelPackage,usb2-pci))
+
+
+define KernelPackage/usb-dwc2
+ TITLE:=DWC2 USB controller driver
+ DEPENDS:=+USB_GADGET_SUPPORT:kmod-usb-gadget +kmod-usb-roles
+ KCONFIG:= \
+ CONFIG_USB_DWC2 \
+ CONFIG_USB_DWC2_DEBUG=n \
+ CONFIG_USB_DWC2_VERBOSE=n \
+ CONFIG_USB_DWC2_TRACK_MISSED_SOFS=n \
+ CONFIG_USB_DWC2_DEBUG_PERIODIC=n
+ FILES:= \
+ $(LINUX_DIR)/drivers/usb/dwc2/dwc2.ko
+ AUTOLOAD:=$(call AutoLoad,54,dwc2,1)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-dwc2/description
+ This driver provides USB Device Controller support for the
+ Synopsys DesignWare USB OTG Core
+endef
+
+$(eval $(call KernelPackage,usb-dwc2))
+
+
+define KernelPackage/usb-dwc2-pci
+ TITLE:=DWC2 USB controller driver (PCI)
+ DEPENDS:=@PCI_SUPPORT +kmod-usb-dwc2 +kmod-usb-phy-nop
+ KCONFIG:= \
+ CONFIG_USB_PCI=y \
+ CONFIG_USB_DWC2_PCI
+ FILES:= \
+ $(LINUX_DIR)/drivers/usb/dwc2/dwc2_pci.ko
+ AUTOLOAD:=$(call AutoLoad,54,dwc2_pci,1)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-dwc2-pci/description
+ The Designware USB2.0 PCI interface module for controllers
+ connected to a PCI bus.
+endef
+
+$(eval $(call KernelPackage,usb-dwc2-pci))
+
+
+define KernelPackage/usb-cdns
+ TITLE:=Cadence USB USB controller driver
+ DEPENDS:=+USB_GADGET_SUPPORT:kmod-usb-gadget +kmod-usb-roles
+ KCONFIG:= \
+ CONFIG_USB_CDNS_SUPPORT
+ FILES:= $(LINUX_DIR)/drivers/usb/cdns3/cdns-usb-common.ko
+ AUTOLOAD:=$(call AutoLoad,50,cdns-usb-common,1)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-cdns/description
+ This driver provides USB Device Controller support for the
+ Cadence USB Core
+endef
+
+$(eval $(call KernelPackage,usb-cdns))
+
+
+define KernelPackage/usb-cdns3
+ TITLE:=Cadence USB3 USB controller driver
+ DEPENDS:=+kmod-usb-cdns
+ KCONFIG:= \
+ CONFIG_USB_CDNS3 \
+ CONFIG_USB_CDNS3_GADGET=y \
+ CONFIG_USB_CDNS3_HOST=y
+ FILES:= $(LINUX_DIR)/drivers/usb/cdns3/cdns3.ko
+ AUTOLOAD:=$(call AutoLoad,54,cdns3,1)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-cdns3/description
+ This driver provides support for the Dual Role SuperSpeed
+ USB Controller based on the Cadence USB3 IP Core
+endef
+
+$(eval $(call KernelPackage,usb-cdns3))
+
+
+define KernelPackage/usb-dwc3
+ TITLE:=DWC3 USB controller driver
+ KCONFIG:= \
+ CONFIG_USB_DWC3 \
+ CONFIG_USB_DWC3_HOST=y \
+ CONFIG_USB_DWC3_GADGET=n \
+ CONFIG_USB_DWC3_DUAL_ROLE=n \
+ CONFIG_USB_DWC3_DEBUG=n \
+ CONFIG_USB_DWC3_VERBOSE=n
+ FILES:= $(LINUX_DIR)/drivers/usb/dwc3/dwc3.ko
+ AUTOLOAD:=$(call AutoLoad,54,dwc3,1)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-dwc3/description
+ This driver provides support for the Dual Role SuperSpeed
+ USB Controller based on the Synopsys DesignWare USB3 IP Core
+endef
+
+$(eval $(call KernelPackage,usb-dwc3))
+
+
+define KernelPackage/usb-dwc3-qcom
+ TITLE:=DWC3 Qualcomm USB driver
+ DEPENDS:=@(TARGET_ipq40xx||TARGET_ipq806x||TARGET_qualcommax) +kmod-usb-dwc3
+ KCONFIG:= CONFIG_USB_DWC3_QCOM
+ FILES:= $(LINUX_DIR)/drivers/usb/dwc3/dwc3-qcom.ko
+ AUTOLOAD:=$(call AutoLoad,53,dwc3-qcom,1)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-dwc3-qcom/description
+ Some Qualcomm SoCs use DesignWare Core IP for USB2/3 functionality.
+ This driver also handles Qscratch wrapper which is needed for
+ peripheral mode support.
+endef
+
+
+$(eval $(call KernelPackage,usb-dwc3-qcom))
+
+
+define KernelPackage/usb-acm
+ TITLE:=Support for modems/isdn controllers
+ KCONFIG:=CONFIG_USB_ACM
+ FILES:=$(LINUX_DIR)/drivers/usb/class/cdc-acm.ko
+ AUTOLOAD:=$(call AutoProbe,cdc-acm)
+$(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-acm/description
+ Kernel support for USB ACM devices (modems/isdn controllers)
+endef
+
+$(eval $(call KernelPackage,usb-acm))
+
+
+define KernelPackage/usb-wdm
+ TITLE:=USB Wireless Device Management
+ KCONFIG:=CONFIG_USB_WDM
+ FILES:=$(LINUX_DIR)/drivers/usb/class/cdc-wdm.ko
+ AUTOLOAD:=$(call AutoProbe,cdc-wdm)
+$(call AddDepends/usb)
+$(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-wdm/description
+ USB Wireless Device Management support
+endef
+
+$(eval $(call KernelPackage,usb-wdm))
+
+
+define KernelPackage/usb-audio
+ TITLE:=Support for USB audio devices
+ KCONFIG:= \
+ CONFIG_SND_USB=y \
+ CONFIG_SND_USB_AUDIO
+ $(call AddDepends/usb)
+ $(call AddDepends/sound)
+ DEPENDS+=+(LINUX_6_1||LINUX_6_6):kmod-media-core
+ FILES:= \
+ $(LINUX_DIR)/sound/usb/snd-usbmidi-lib.ko \
+ $(LINUX_DIR)/sound/usb/snd-usb-audio.ko
+ AUTOLOAD:=$(call AutoProbe,snd-usbmidi-lib snd-usb-audio)
+endef
+
+define KernelPackage/usb-audio/description
+ Kernel support for USB audio devices
+endef
+
+$(eval $(call KernelPackage,usb-audio))
+
+
+define KernelPackage/usb-printer
+ TITLE:=Support for printers
+ KCONFIG:=CONFIG_USB_PRINTER
+ FILES:=$(LINUX_DIR)/drivers/usb/class/usblp.ko
+ AUTOLOAD:=$(call AutoProbe,usblp)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-printer/description
+ Kernel support for USB printers
+endef
+
+$(eval $(call KernelPackage,usb-printer))
+
+
+define KernelPackage/usb-serial
+ TITLE:=Support for USB-to-Serial converters
+ KCONFIG:=CONFIG_USB_SERIAL
+ FILES:=$(LINUX_DIR)/drivers/usb/serial/usbserial.ko
+ AUTOLOAD:=$(call AutoProbe,usbserial)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-serial/description
+ Kernel support for USB-to-Serial converters
+endef
+
+$(eval $(call KernelPackage,usb-serial))
+
+
+define AddDepends/usb-serial
+ SUBMENU:=$(USB_MENU)
+ DEPENDS+=+kmod-usb-serial $(1)
+endef
+
+
+define KernelPackage/usb-serial-belkin
+ TITLE:=Support for Belkin devices
+ KCONFIG:=CONFIG_USB_SERIAL_BELKIN
+ FILES:=$(LINUX_DIR)/drivers/usb/serial/belkin_sa.ko
+ AUTOLOAD:=$(call AutoProbe,belkin_sa)
+ $(call AddDepends/usb-serial)
+endef
+
+define KernelPackage/usb-serial-belkin/description
+ Kernel support for Belkin USB-to-Serial converters
+endef
+
+$(eval $(call KernelPackage,usb-serial-belkin))
+
+
+define KernelPackage/usb-serial-ch341
+ TITLE:=Support for CH341 devices
+ KCONFIG:=CONFIG_USB_SERIAL_CH341
+ FILES:=$(LINUX_DIR)/drivers/usb/serial/ch341.ko
+ AUTOLOAD:=$(call AutoProbe,ch341)
+ $(call AddDepends/usb-serial)
+endef
+
+define KernelPackage/usb-serial-ch341/description
+ Kernel support for Winchiphead CH341 USB-to-Serial converters
+endef
+
+$(eval $(call KernelPackage,usb-serial-ch341))
+
+
+define KernelPackage/usb-serial-ch348
+ TITLE:=Support for CH348 devices
+ KCONFIG:=CONFIG_USB_SERIAL_CH348
+ FILES:=$(LINUX_DIR)/drivers/usb/serial/ch348.ko
+ AUTOLOAD:=$(call AutoProbe,ch348)
+ DEPENDS:=@(LINUX_6_1||LINUX_6_6)
+ $(call AddDepends/usb-serial)
+endef
+
+define KernelPackage/usb-serial-ch348/description
+ Kernel support for Winchiphead CH348 USB-to-8x-Serial converters
+endef
+
+$(eval $(call KernelPackage,usb-serial-ch348))
+
+
+define KernelPackage/usb-serial-edgeport
+ TITLE:=Support for Digi Edgeport devices
+ KCONFIG:=CONFIG_USB_SERIAL_EDGEPORT
+ FILES:=$(LINUX_DIR)/drivers/usb/serial/io_edgeport.ko
+ AUTOLOAD:=$(call AutoProbe,io_edgeport)
+ $(call AddDepends/usb-serial)
+ DEPENDS+=+edgeport-firmware
+endef
+
+define KernelPackage/usb-serial-edgeport/description
+ Kernel support for Inside Out Networks (Digi)
+ Edgeport/4
+ Rapidport/4
+ Edgeport/4t
+ Edgeport/2
+ Edgeport/4i
+ Edgeport/2i
+ Edgeport/421
+ Edgeport/21
+ Edgeport/8
+ Edgeport/8 Dual
+ Edgeport/2D8
+ Edgeport/4D8
+ Edgeport/8i
+ Edgeport/2 DIN
+ Edgeport/4 DIN
+ Edgeport/16 Dual
+endef
+
+$(eval $(call KernelPackage,usb-serial-edgeport))
+
+
+define KernelPackage/usb-serial-ftdi
+ TITLE:=Support for FTDI devices
+ KCONFIG:=CONFIG_USB_SERIAL_FTDI_SIO
+ FILES:=$(LINUX_DIR)/drivers/usb/serial/ftdi_sio.ko
+ AUTOLOAD:=$(call AutoProbe,ftdi_sio)
+ $(call AddDepends/usb-serial)
+endef
+
+define KernelPackage/usb-serial-ftdi/description
+ Kernel support for FTDI USB-to-Serial converters
+endef
+
+$(eval $(call KernelPackage,usb-serial-ftdi))
+
+
+define KernelPackage/usb-serial-garmin
+ TITLE:=Support for Garmin GPS devices
+ KCONFIG:=CONFIG_USB_SERIAL_GARMIN
+ FILES:=$(LINUX_DIR)/drivers/usb/serial/garmin_gps.ko
+ AUTOLOAD:=$(call AutoProbe,garmin_gps)
+ $(call AddDepends/usb-serial)
+endef
+
+define KernelPackage/usb-serial-garmin/description
+ Should work with most Garmin GPS devices which have a native USB port.
+endef
+
+$(eval $(call KernelPackage,usb-serial-garmin))
+
+
+define KernelPackage/usb-serial-simple
+ TITLE:=USB Serial Simple (Motorola phone)
+ KCONFIG:=CONFIG_USB_SERIAL_SIMPLE
+ FILES:=$(LINUX_DIR)/drivers/usb/serial/usb-serial-simple.ko
+ AUTOLOAD:=$(call AutoProbe,usb-serial-simple)
+ $(call AddDepends/usb-serial)
+endef
+
+define KernelPackage/usb-serial-simple/description
+ Kernel support for "very simple devices".
+
+Specifically, it supports:
+ - Suunto ANT+ USB device.
+ - Medtronic CareLink USB device (3.18)
+ - Fundamental Software dongle.
+ - Google USB serial devices (3.19)
+ - HP4x calculators
+ - a number of Motorola phones
+ - Novatel Wireless GPS receivers (3.18)
+ - Siemens USB/MPI adapter.
+ - ViVOtech ViVOpay USB device.
+ - Infineon Modem Flashloader USB interface
+ - ZIO Motherboard USB serial interface
+endef
+
+$(eval $(call KernelPackage,usb-serial-simple))
+
+
+define KernelPackage/usb-serial-ti-usb
+ TITLE:=Support for TI USB 3410/5052
+ KCONFIG:=CONFIG_USB_SERIAL_TI
+ FILES:=$(LINUX_DIR)/drivers/usb/serial/ti_usb_3410_5052.ko
+ AUTOLOAD:=$(call AutoProbe,ti_usb_3410_5052)
+ $(call AddDepends/usb-serial)
+endef
+
+define KernelPackage/usb-serial-ti-usb/description
+ Kernel support for TI USB 3410/5052 devices
+endef
+
+$(eval $(call KernelPackage,usb-serial-ti-usb))
+
+
+define KernelPackage/usb-serial-ipw
+ TITLE:=Support for IPWireless 3G devices
+ KCONFIG:=CONFIG_USB_SERIAL_IPW
+ FILES:=$(LINUX_DIR)/drivers/usb/serial/ipw.ko
+ AUTOLOAD:=$(call AutoProbe,ipw)
+ $(call AddDepends/usb-serial,+kmod-usb-serial-wwan)
+endef
+
+$(eval $(call KernelPackage,usb-serial-ipw))
+
+
+define KernelPackage/usb-serial-mct
+ TITLE:=Support for Magic Control Tech. devices
+ KCONFIG:=CONFIG_USB_SERIAL_MCT_U232
+ FILES:=$(LINUX_DIR)/drivers/usb/serial/mct_u232.ko
+ AUTOLOAD:=$(call AutoProbe,mct_u232)
+ $(call AddDepends/usb-serial)
+endef
+
+define KernelPackage/usb-serial-mct/description
+ Kernel support for Magic Control Technology USB-to-Serial converters
+endef
+
+$(eval $(call KernelPackage,usb-serial-mct))
+
+
+define KernelPackage/usb-serial-mos7720
+ TITLE:=Support for Moschip MOS7720 devices
+ KCONFIG:= \
+ CONFIG_USB_SERIAL_MOS7720 \
+ CONFIG_USB_SERIAL_MOS7715_PARPORT=y
+ FILES:=$(LINUX_DIR)/drivers/usb/serial/mos7720.ko
+ DEPENDS:=+kmod-ppdev
+ AUTOLOAD:=$(call AutoProbe,mos7720)
+ $(call AddDepends/usb-serial)
+endef
+
+define KernelPackage/usb-serial-mos7720/description
+ Kernel support for Moschip MOS7720 USB-to-Serial converters
+endef
+
+$(eval $(call KernelPackage,usb-serial-mos7720))
+
+
+define KernelPackage/usb-serial-mos7840
+ TITLE:=Support for Moschip MOS7840 devices
+ KCONFIG:=CONFIG_USB_SERIAL_MOS7840
+ FILES:=$(LINUX_DIR)/drivers/usb/serial/mos7840.ko
+ AUTOLOAD:=$(call AutoProbe,mos7840)
+ $(call AddDepends/usb-serial)
+endef
+
+define KernelPackage/usb-serial-mos7840/description
+ Kernel support for Moschip MOS7840 USB-to-Serial converters
+endef
+
+$(eval $(call KernelPackage,usb-serial-mos7840))
+
+
+define KernelPackage/usb-serial-pl2303
+ TITLE:=Support for Prolific PL2303 devices
+ KCONFIG:=CONFIG_USB_SERIAL_PL2303
+ FILES:=$(LINUX_DIR)/drivers/usb/serial/pl2303.ko
+ AUTOLOAD:=$(call AutoProbe,pl2303)
+ $(call AddDepends/usb-serial)
+endef
+
+define KernelPackage/usb-serial-pl2303/description
+ Kernel support for Prolific PL2303 USB-to-Serial converters
+endef
+
+$(eval $(call KernelPackage,usb-serial-pl2303))
+
+
+define KernelPackage/usb-serial-cp210x
+ TITLE:=Support for Silicon Labs cp210x devices
+ KCONFIG:=CONFIG_USB_SERIAL_CP210X
+ FILES:=$(LINUX_DIR)/drivers/usb/serial/cp210x.ko
+ AUTOLOAD:=$(call AutoProbe,cp210x)
+ $(call AddDepends/usb-serial)
+endef
+
+define KernelPackage/usb-serial-cp210x/description
+ Kernel support for Silicon Labs cp210x USB-to-Serial converters
+endef
+
+$(eval $(call KernelPackage,usb-serial-cp210x))
+
+
+define KernelPackage/usb-serial-ark3116
+ TITLE:=Support for ArkMicroChips ARK3116 devices
+ KCONFIG:=CONFIG_USB_SERIAL_ARK3116
+ FILES:=$(LINUX_DIR)/drivers/usb/serial/ark3116.ko
+ AUTOLOAD:=$(call AutoProbe,ark3116)
+ $(call AddDepends/usb-serial)
+endef
+
+define KernelPackage/usb-serial-ark3116/description
+ Kernel support for ArkMicroChips ARK3116 USB-to-Serial converters
+endef
+
+$(eval $(call KernelPackage,usb-serial-ark3116))
+
+
+define KernelPackage/usb-serial-oti6858
+ TITLE:=Support for Ours Technology OTI6858 devices
+ KCONFIG:=CONFIG_USB_SERIAL_OTI6858
+ FILES:=$(LINUX_DIR)/drivers/usb/serial/oti6858.ko
+ AUTOLOAD:=$(call AutoProbe,oti6858)
+ $(call AddDepends/usb-serial)
+endef
+
+define KernelPackage/usb-serial-oti6858/description
+ Kernel support for Ours Technology OTI6858 USB-to-Serial converters
+endef
+
+$(eval $(call KernelPackage,usb-serial-oti6858))
+
+
+define KernelPackage/usb-serial-sierrawireless
+ TITLE:=Support for Sierra Wireless devices
+ KCONFIG:=CONFIG_USB_SERIAL_SIERRAWIRELESS
+ FILES:=$(LINUX_DIR)/drivers/usb/serial/sierra.ko
+ AUTOLOAD:=$(call AutoProbe,sierra)
+ $(call AddDepends/usb-serial)
+endef
+
+define KernelPackage/usb-serial-sierrawireless/description
+ Kernel support for Sierra Wireless devices
+endef
+
+$(eval $(call KernelPackage,usb-serial-sierrawireless))
+
+
+define KernelPackage/usb-serial-visor
+ TITLE:=Support for Handspring Visor devices
+ KCONFIG:=CONFIG_USB_SERIAL_VISOR
+ FILES:=$(LINUX_DIR)/drivers/usb/serial/visor.ko
+ AUTOLOAD:=$(call AutoProbe,visor)
+ $(call AddDepends/usb-serial)
+endef
+
+define KernelPackage/usb-serial-visor/description
+ Kernel support for Handspring Visor PDAs
+endef
+
+$(eval $(call KernelPackage,usb-serial-visor))
+
+
+define KernelPackage/usb-serial-cypress-m8
+ TITLE:=Support for CypressM8 USB-Serial
+ KCONFIG:=CONFIG_USB_SERIAL_CYPRESS_M8
+ FILES:=$(LINUX_DIR)/drivers/usb/serial/cypress_m8.ko
+ AUTOLOAD:=$(call AutoProbe,cypress_m8)
+ $(call AddDepends/usb-serial)
+endef
+
+define KernelPackage/usb-serial-cypress-m8/description
+ Kernel support for devices with Cypress M8 USB to Serial chip
+ (for example, the Delorme Earthmate LT-20 GPS)
+ Supported microcontrollers in the CY4601 family are:
+ CY7C63741 CY7C63742 CY7C63743 CY7C64013
+endef
+
+$(eval $(call KernelPackage,usb-serial-cypress-m8))
+
+
+define KernelPackage/usb-serial-keyspan
+ TITLE:=Support for Keyspan USB-to-Serial devices
+ KCONFIG:= \
+ CONFIG_USB_SERIAL_KEYSPAN \
+ CONFIG_USB_SERIAL_KEYSPAN_USA28 \
+ CONFIG_USB_SERIAL_KEYSPAN_USA28X \
+ CONFIG_USB_SERIAL_KEYSPAN_USA28XA \
+ CONFIG_USB_SERIAL_KEYSPAN_USA28XB \
+ CONFIG_USB_SERIAL_KEYSPAN_USA19 \
+ CONFIG_USB_SERIAL_KEYSPAN_USA18X \
+ CONFIG_USB_SERIAL_KEYSPAN_USA19W \
+ CONFIG_USB_SERIAL_KEYSPAN_USA19QW \
+ CONFIG_USB_SERIAL_KEYSPAN_USA19QI \
+ CONFIG_USB_SERIAL_KEYSPAN_MPR \
+ CONFIG_USB_SERIAL_KEYSPAN_USA49W \
+ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC
+ FILES:= \
+ $(LINUX_DIR)/drivers/usb/serial/keyspan.ko \
+ $(wildcard $(LINUX_DIR)/drivers/usb/misc/ezusb.ko)
+ AUTOLOAD:=$(call AutoProbe,ezusb keyspan)
+ $(call AddDepends/usb-serial)
+endef
+
+define KernelPackage/usb-serial-keyspan/description
+ Kernel support for Keyspan USB-to-Serial devices
+endef
+
+$(eval $(call KernelPackage,usb-serial-keyspan))
+
+
+define KernelPackage/usb-serial-wwan
+ TITLE:=Support for GSM and CDMA modems
+ KCONFIG:=CONFIG_USB_SERIAL_WWAN
+ FILES:=$(LINUX_DIR)/drivers/usb/serial/usb_wwan.ko
+ HIDDEN:=1
+ AUTOLOAD:=$(call AutoProbe,usb_wwan)
+ $(call AddDepends/usb-serial)
+endef
+
+define KernelPackage/usb-serial-wwan/description
+ Kernel support for USB GSM and CDMA modems
+endef
+
+$(eval $(call KernelPackage,usb-serial-wwan))
+
+
+define KernelPackage/usb-serial-option
+ TITLE:=Support for Option HSDPA modems
+ KCONFIG:=CONFIG_USB_SERIAL_OPTION
+ FILES:=$(LINUX_DIR)/drivers/usb/serial/option.ko
+ AUTOLOAD:=$(call AutoProbe,option)
+ $(call AddDepends/usb-serial,+kmod-usb-serial-wwan)
+endef
+
+define KernelPackage/usb-serial-option/description
+ Kernel support for Option HSDPA modems
+endef
+
+$(eval $(call KernelPackage,usb-serial-option))
+
+
+define KernelPackage/usb-serial-qualcomm
+ TITLE:=Support for Qualcomm USB serial
+ KCONFIG:=CONFIG_USB_SERIAL_QUALCOMM
+ FILES:=$(LINUX_DIR)/drivers/usb/serial/qcserial.ko
+ AUTOLOAD:=$(call AutoProbe,qcserial)
+ $(call AddDepends/usb-serial,+kmod-usb-serial-wwan)
+endef
+
+define KernelPackage/usb-serial-qualcomm/description
+ Kernel support for Qualcomm USB Serial devices (Gobi)
+endef
+
+$(eval $(call KernelPackage,usb-serial-qualcomm))
+
+
+define KernelPackage/usb-storage
+ TITLE:=USB Storage support
+ DEPENDS:= +kmod-scsi-core
+ KCONFIG:=CONFIG_USB_STORAGE
+ FILES:=$(LINUX_DIR)/drivers/usb/storage/usb-storage.ko
+ AUTOLOAD:=$(call AutoProbe,usb-storage,1)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-storage/description
+ Kernel support for USB Mass Storage devices
+endef
+
+$(eval $(call KernelPackage,usb-storage))
+
+
+define KernelPackage/usb-storage-extras
+ SUBMENU:=$(USB_MENU)
+ TITLE:=Extra drivers for usb-storage
+ DEPENDS:=+kmod-usb-storage
+ KCONFIG:= \
+ CONFIG_USB_STORAGE_ALAUDA \
+ CONFIG_USB_STORAGE_CYPRESS_ATACB \
+ CONFIG_USB_STORAGE_DATAFAB \
+ CONFIG_USB_STORAGE_FREECOM \
+ CONFIG_USB_STORAGE_ISD200 \
+ CONFIG_USB_STORAGE_JUMPSHOT \
+ CONFIG_USB_STORAGE_KARMA \
+ CONFIG_USB_STORAGE_SDDR09 \
+ CONFIG_USB_STORAGE_SDDR55 \
+ CONFIG_USB_STORAGE_USBAT
+ FILES:= \
+ $(LINUX_DIR)/drivers/usb/storage/ums-alauda.ko \
+ $(LINUX_DIR)/drivers/usb/storage/ums-cypress.ko \
+ $(LINUX_DIR)/drivers/usb/storage/ums-datafab.ko \
+ $(LINUX_DIR)/drivers/usb/storage/ums-freecom.ko \
+ $(LINUX_DIR)/drivers/usb/storage/ums-isd200.ko \
+ $(LINUX_DIR)/drivers/usb/storage/ums-jumpshot.ko \
+ $(LINUX_DIR)/drivers/usb/storage/ums-karma.ko \
+ $(LINUX_DIR)/drivers/usb/storage/ums-sddr09.ko \
+ $(LINUX_DIR)/drivers/usb/storage/ums-sddr55.ko \
+ $(LINUX_DIR)/drivers/usb/storage/ums-usbat.ko
+ AUTOLOAD:=$(call AutoProbe,ums-alauda ums-cypress ums-datafab \
+ ums-freecom ums-isd200 ums-jumpshot \
+ ums-karma ums-sddr09 ums-sddr55 ums-usbat)
+endef
+
+define KernelPackage/usb-storage-extras/description
+ Say Y here if you want to have some more drivers,
+ such as for SmartMedia card readers
+endef
+
+$(eval $(call KernelPackage,usb-storage-extras))
+
+
+define KernelPackage/usb-storage-uas
+ SUBMENU:=$(USB_MENU)
+ TITLE:=USB Attached SCSI (UASP) support
+ DEPENDS:=+kmod-usb-storage
+ KCONFIG:=CONFIG_USB_UAS
+ FILES:=$(LINUX_DIR)/drivers/usb/storage/uas.ko
+ AUTOLOAD:=$(call AutoProbe,uas,1)
+endef
+
+define KernelPackage/usb-storage-uas/description
+ Say Y here if you want to include support for
+ USB Attached SCSI (UAS/UASP), a higher
+ performance protocol available on many
+ newer USB 3.0 storage devices
+endef
+
+$(eval $(call KernelPackage,usb-storage-uas))
+
+
+define KernelPackage/usb-atm
+ TITLE:=Support for ATM on USB bus
+ DEPENDS:=+kmod-atm
+ KCONFIG:=CONFIG_USB_ATM
+ FILES:=$(LINUX_DIR)/drivers/usb/atm/usbatm.ko
+ AUTOLOAD:=$(call AutoProbe,usbatm)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-atm/description
+ Kernel support for USB DSL modems
+endef
+
+$(eval $(call KernelPackage,usb-atm))
+
+
+define AddDepends/usb-atm
+ SUBMENU:=$(USB_MENU)
+ DEPENDS+=kmod-usb-atm $(1)
+endef
+
+
+define KernelPackage/usb-atm-speedtouch
+ TITLE:=SpeedTouch USB ADSL modems support
+ KCONFIG:=CONFIG_USB_SPEEDTOUCH
+ FILES:=$(LINUX_DIR)/drivers/usb/atm/speedtch.ko
+ AUTOLOAD:=$(call AutoProbe,speedtch)
+ $(call AddDepends/usb-atm)
+endef
+
+define KernelPackage/usb-atm-speedtouch/description
+ Kernel support for SpeedTouch USB ADSL modems
+endef
+
+$(eval $(call KernelPackage,usb-atm-speedtouch))
+
+
+define KernelPackage/usb-atm-ueagle
+ TITLE:=Eagle 8051 based USB ADSL modems support
+ FILES:=$(LINUX_DIR)/drivers/usb/atm/ueagle-atm.ko
+ KCONFIG:=CONFIG_USB_UEAGLEATM
+ AUTOLOAD:=$(call AutoProbe,ueagle-atm)
+ $(call AddDepends/usb-atm)
+endef
+
+define KernelPackage/usb-atm-ueagle/description
+ Kernel support for Eagle 8051 based USB ADSL modems
+endef
+
+$(eval $(call KernelPackage,usb-atm-ueagle))
+
+
+define KernelPackage/usb-atm-cxacru
+ TITLE:=cxacru
+ FILES:=$(LINUX_DIR)/drivers/usb/atm/cxacru.ko
+ KCONFIG:=CONFIG_USB_CXACRU
+ AUTOLOAD:=$(call AutoProbe,cxacru)
+ $(call AddDepends/usb-atm)
+endef
+
+define KernelPackage/usb-atm-cxacru/description
+ Kernel support for cxacru based USB ADSL modems
+endef
+
+$(eval $(call KernelPackage,usb-atm-cxacru))
+
+
+define KernelPackage/usb-net
+ TITLE:=Kernel modules for USB-to-Ethernet convertors
+ DEPENDS:=+kmod-mii
+ KCONFIG:=CONFIG_USB_USBNET \
+ CONFIG_USB_NET_DRIVERS
+ AUTOLOAD:=$(call AutoProbe,usbnet)
+ FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/usbnet.ko
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-net/description
+ Kernel modules for USB-to-Ethernet convertors
+endef
+
+$(eval $(call KernelPackage,usb-net))
+
+
+define AddDepends/usb-net
+ SUBMENU:=$(USB_MENU)
+ DEPENDS+=+kmod-usb-net $(1)
+endef
+
+
+define KernelPackage/usb-net-aqc111
+ TITLE:=Support for USB-to-Ethernet Aquantia AQtion 5/2.5GbE
+ KCONFIG:=CONFIG_USB_NET_AQC111
+ FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/aqc111.ko
+ AUTOLOAD:=$(call AutoProbe,aqc111)
+ $(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-net-aqc111/description
+ Support for USB-to-Ethernet Aquantia AQtion 5/2.5GbE
+endef
+
+$(eval $(call KernelPackage,usb-net-aqc111))
+
+
+define KernelPackage/usb-net-asix
+ TITLE:=Kernel module for USB-to-Ethernet Asix convertors
+ DEPENDS:=+kmod-phy-ax88796b +(LINUX_6_1||LINUX_6_6):kmod-phylink \
+ +(LINUX_5_15||LINUX_6_1||LINUX_6_6):kmod-mdio-devres \
+ +(LINUX_5_15||LINUX_6_1||LINUX_6_6):kmod-net-selftests
+ KCONFIG:=CONFIG_USB_NET_AX8817X
+ FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/asix.ko
+ AUTOLOAD:=$(call AutoProbe,asix)
+ $(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-net-asix/description
+ Kernel module for USB-to-Ethernet Asix convertors
+endef
+
+$(eval $(call KernelPackage,usb-net-asix))
+
+
+define KernelPackage/usb-net-asix-ax88179
+ TITLE:=Kernel module for USB-to-Gigabit-Ethernet Asix convertors
+ DEPENDS:=+kmod-libphy
+ KCONFIG:=CONFIG_USB_NET_AX88179_178A
+ FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/ax88179_178a.ko
+ AUTOLOAD:=$(call AutoProbe,ax88179_178a)
+ $(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-net-asix-ax88179/description
+ Kernel module for USB-to-Ethernet ASIX AX88179 based USB 3.0/2.0
+ to Gigabit Ethernet adapters.
+endef
+
+$(eval $(call KernelPackage,usb-net-asix-ax88179))
+
+
+define KernelPackage/usb-net-hso
+ TITLE:=Kernel module for Option USB High Speed Mobile Devices
+ KCONFIG:=CONFIG_USB_HSO
+ FILES:= \
+ $(LINUX_DIR)/drivers/$(USBNET_DIR)/hso.ko
+ AUTOLOAD:=$(call AutoProbe,hso)
+ $(call AddDepends/usb-net)
+ $(call AddDepends/rfkill)
+endef
+
+define KernelPackage/usb-net-hso/description
+ Kernel module for Option USB High Speed Mobile Devices
+endef
+
+$(eval $(call KernelPackage,usb-net-hso))
+
+
+define KernelPackage/usb-net-kaweth
+ TITLE:=Kernel module for USB-to-Ethernet Kaweth convertors
+ KCONFIG:=CONFIG_USB_KAWETH
+ FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/kaweth.ko
+ AUTOLOAD:=$(call AutoProbe,kaweth)
+ $(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-net-kaweth/description
+ Kernel module for USB-to-Ethernet Kaweth convertors
+endef
+
+$(eval $(call KernelPackage,usb-net-kaweth))
+
+
+define KernelPackage/usb-net-lan78xx
+ TITLE:=USB-To-Ethernet Microchip LAN78XX convertors
+ DEPENDS:=+kmod-fixed-phy +kmod-phy-microchip +PACKAGE_kmod-of-mdio:kmod-of-mdio
+ KCONFIG:=CONFIG_USB_LAN78XX
+ FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/lan78xx.ko
+ AUTOLOAD:=$(call AutoProbe,lan78xx)
+ $(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-net-lan78xx/description
+ Kernel module for Microchip LAN78XX based USB 2 & USB 3
+ 10/100/1000 Ethernet adapters.
+endef
+
+$(eval $(call KernelPackage,usb-net-lan78xx))
+
+
+define KernelPackage/usb-net-pegasus
+ TITLE:=Kernel module for USB-to-Ethernet Pegasus convertors
+ KCONFIG:=CONFIG_USB_PEGASUS
+ FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/pegasus.ko
+ AUTOLOAD:=$(call AutoProbe,pegasus)
+ $(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-net-pegasus/description
+ Kernel module for USB-to-Ethernet Pegasus convertors
+endef
+
+$(eval $(call KernelPackage,usb-net-pegasus))
+
+
+define KernelPackage/usb-net-mcs7830
+ TITLE:=Kernel module for USB-to-Ethernet MCS7830 convertors
+ KCONFIG:=CONFIG_USB_NET_MCS7830
+ FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/mcs7830.ko
+ AUTOLOAD:=$(call AutoProbe,mcs7830)
+ $(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-net-mcs7830/description
+ Kernel module for USB-to-Ethernet MCS7830 convertors
+endef
+
+$(eval $(call KernelPackage,usb-net-mcs7830))
+
+
+define KernelPackage/usb-net-smsc75xx
+ TITLE:=SMSC LAN75XX based USB 2.0 Gigabit ethernet devices
+ DEPENDS:=+!LINUX_5_4:kmod-libphy
+ KCONFIG:=CONFIG_USB_NET_SMSC75XX
+ FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/smsc75xx.ko
+ AUTOLOAD:=$(call AutoProbe,smsc75xx)
+ $(call AddDepends/usb-net, +kmod-lib-crc16)
+endef
+
+define KernelPackage/usb-net-smsc75xx/description
+ Kernel module for SMSC LAN75XX based devices
+endef
+
+$(eval $(call KernelPackage,usb-net-smsc75xx))
+
+
+define KernelPackage/usb-net-smsc95xx
+ TITLE:=SMSC LAN95XX based USB 2.0 10/100 ethernet devices
+ DEPENDS:=+!LINUX_5_4:kmod-libphy +kmod-phy-smsc \
+ +(LINUX_6_1||LINUX_6_6):kmod-net-selftests
+ KCONFIG:=CONFIG_USB_NET_SMSC95XX
+ FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/smsc95xx.ko
+ AUTOLOAD:=$(call AutoProbe,smsc95xx)
+ $(call AddDepends/usb-net, +kmod-lib-crc16)
+endef
+
+define KernelPackage/usb-net-smsc95xx/description
+ Kernel module for SMSC LAN95XX based devices
+endef
+
+$(eval $(call KernelPackage,usb-net-smsc95xx))
+
+
+define KernelPackage/usb-net-dm9601-ether
+ TITLE:=Support for DM9601 ethernet connections
+ KCONFIG:=CONFIG_USB_NET_DM9601
+ FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/dm9601.ko
+ AUTOLOAD:=$(call AutoProbe,dm9601)
+ $(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-net-dm9601-ether/description
+ Kernel support for USB DM9601 devices
+endef
+
+$(eval $(call KernelPackage,usb-net-dm9601-ether))
+
+define KernelPackage/usb-net-cdc-ether
+ TITLE:=Support for cdc ethernet connections
+ KCONFIG:=CONFIG_USB_NET_CDCETHER
+ FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/cdc_ether.ko
+ AUTOLOAD:=$(call AutoProbe,cdc_ether)
+ $(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-net-cdc-ether/description
+ Kernel support for USB CDC Ethernet devices
+endef
+
+$(eval $(call KernelPackage,usb-net-cdc-ether))
+
+
+define KernelPackage/usb-net-cdc-eem
+ TITLE:=Support for CDC EEM connections
+ KCONFIG:=CONFIG_USB_NET_CDC_EEM
+ FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/cdc_eem.ko
+ AUTOLOAD:=$(call AutoProbe,cdc_eem)
+ $(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-net-cdc-eem/description
+ Kernel support for USB CDC EEM
+endef
+
+$(eval $(call KernelPackage,usb-net-cdc-eem))
+
+
+define KernelPackage/usb-net-cdc-subset
+ TITLE:=Support for CDC Ethernet subset connections
+ KCONFIG:= \
+ CONFIG_USB_NET_CDC_SUBSET \
+ CONFIG_USB_ARMLINUX
+ FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/cdc_subset.ko
+ AUTOLOAD:=$(call AutoProbe,cdc_subset)
+ $(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-net-cdc-subset/description
+ Kernel support for Simple USB Network Links (CDC Ethernet subset)
+endef
+
+$(eval $(call KernelPackage,usb-net-cdc-subset))
+
+
+define KernelPackage/usb-net-qmi-wwan
+ TITLE:=QMI WWAN driver
+ KCONFIG:=CONFIG_USB_NET_QMI_WWAN
+ FILES:= $(LINUX_DIR)/drivers/$(USBNET_DIR)/qmi_wwan.ko
+ AUTOLOAD:=$(call AutoProbe,qmi_wwan)
+ $(call AddDepends/usb-net,+kmod-usb-wdm)
+endef
+
+define KernelPackage/usb-net-qmi-wwan/description
+ QMI WWAN driver for Qualcomm MSM based 3G and LTE modems
+endef
+
+$(eval $(call KernelPackage,usb-net-qmi-wwan))
+
+
+define KernelPackage/usb-net-rtl8150
+ TITLE:=Kernel module for USB-to-Ethernet Realtek convertors
+ KCONFIG:=CONFIG_USB_RTL8150
+ FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/rtl8150.ko
+ AUTOLOAD:=$(call AutoProbe,rtl8150)
+ $(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-net-rtl8150/description
+ Kernel module for USB-to-Ethernet Realtek 8150 convertors
+endef
+
+$(eval $(call KernelPackage,usb-net-rtl8150))
+
+
+define KernelPackage/usb-net-rtl8152
+ TITLE:=Kernel module for USB-to-Ethernet Realtek convertors
+ DEPENDS:=+r8152-firmware +kmod-crypto-sha256 +kmod-usb-net-cdc-ncm
+ KCONFIG:=CONFIG_USB_RTL8152
+ FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/r8152.ko
+ AUTOLOAD:=$(call AutoProbe,r8152)
+ $(call AddDepends/usb-net, +LINUX_5_10:kmod-crypto-hash)
+endef
+
+define KernelPackage/usb-net-rtl8152/description
+ Kernel module for USB-to-Ethernet Realtek 8152 USB2.0/3.0 convertors
+endef
+
+$(eval $(call KernelPackage,usb-net-rtl8152))
+
+
+define KernelPackage/usb-net-sr9700
+ TITLE:=Support for CoreChip SR9700 ethernet devices
+ KCONFIG:=CONFIG_USB_NET_SR9700
+ FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/sr9700.ko
+ AUTOLOAD:=$(call AutoProbe,sr9700)
+ $(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-net-sr9700/description
+ Kernel module for CoreChip-sz SR9700 based USB 1.1 10/100 ethernet devices
+endef
+
+$(eval $(call KernelPackage,usb-net-sr9700))
+
+
+define KernelPackage/usb-net-rndis
+ TITLE:=Support for RNDIS connections
+ KCONFIG:=CONFIG_USB_NET_RNDIS_HOST
+ FILES:= $(LINUX_DIR)/drivers/$(USBNET_DIR)/rndis_host.ko
+ AUTOLOAD:=$(call AutoProbe,rndis_host)
+ $(call AddDepends/usb-net,+kmod-usb-net-cdc-ether)
+endef
+
+define KernelPackage/usb-net-rndis/description
+ Kernel support for RNDIS connections
+endef
+
+$(eval $(call KernelPackage,usb-net-rndis))
+
+
+define KernelPackage/usb-net-cdc-mbim
+ SUBMENU:=$(USB_MENU)
+ TITLE:=Kernel module for MBIM Devices
+ KCONFIG:=CONFIG_USB_NET_CDC_MBIM
+ FILES:= \
+ $(LINUX_DIR)/drivers/$(USBNET_DIR)/cdc_mbim.ko
+ AUTOLOAD:=$(call AutoProbe,cdc_mbim)
+ $(call AddDepends/usb-net,+kmod-usb-wdm +kmod-usb-net-cdc-ncm)
+endef
+
+define KernelPackage/usb-net-cdc-mbim/description
+ Kernel module for CDC MBIM (Mobile Broadband Interface Model) devices
+endef
+
+$(eval $(call KernelPackage,usb-net-cdc-mbim))
+
+
+define KernelPackage/usb-net-cdc-ncm
+ TITLE:=Support for CDC NCM connections
+ KCONFIG:=CONFIG_USB_NET_CDC_NCM
+ FILES:= $(LINUX_DIR)/drivers/$(USBNET_DIR)/cdc_ncm.ko
+ AUTOLOAD:=$(call AutoProbe,cdc_ncm)
+ $(call AddDepends/usb-net,+!LINUX_5_4:kmod-usb-net-cdc-ether)
+endef
+
+define KernelPackage/usb-net-cdc-ncm/description
+ Kernel support for CDC NCM connections
+endef
+
+$(eval $(call KernelPackage,usb-net-cdc-ncm))
+
+
+define KernelPackage/usb-net-huawei-cdc-ncm
+ TITLE:=Support for Huawei CDC NCM connections
+ KCONFIG:=CONFIG_USB_NET_HUAWEI_CDC_NCM
+ FILES:= $(LINUX_DIR)/drivers/$(USBNET_DIR)/huawei_cdc_ncm.ko
+ AUTOLOAD:=$(call AutoProbe,huawei_cdc_ncm)
+ $(call AddDepends/usb-net,+kmod-usb-net-cdc-ncm +kmod-usb-wdm)
+endef
+
+define KernelPackage/usb-net-huawei-cdc-ncm/description
+ Kernel support for Huawei CDC NCM connections
+endef
+
+$(eval $(call KernelPackage,usb-net-huawei-cdc-ncm))
+
+
+define KernelPackage/usb-net-sierrawireless
+ TITLE:=Support for Sierra Wireless devices
+ KCONFIG:=CONFIG_USB_SIERRA_NET
+ FILES:=$(LINUX_DIR)/drivers/net/usb/sierra_net.ko
+ AUTOLOAD:=$(call AutoProbe,sierra_net)
+ $(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-net-sierrawireless/description
+ Kernel support for Sierra Wireless devices
+endef
+
+$(eval $(call KernelPackage,usb-net-sierrawireless))
+
+
+define KernelPackage/usb-net-ipheth
+ TITLE:=Apple iPhone USB Ethernet driver
+ KCONFIG:=CONFIG_USB_IPHETH
+ FILES:=$(LINUX_DIR)/drivers/net/usb/ipheth.ko
+ AUTOLOAD:=$(call AutoProbe,ipheth)
+ $(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-net-ipheth/description
+ Kernel support for Apple iPhone USB Ethernet driver
+endef
+
+$(eval $(call KernelPackage,usb-net-ipheth))
+
+
+define KernelPackage/usb-net-kalmia
+ TITLE:=Samsung Kalmia based LTE USB modem
+ KCONFIG:=CONFIG_USB_NET_KALMIA
+ FILES:=$(LINUX_DIR)/drivers/net/usb/kalmia.ko
+ AUTOLOAD:=$(call AutoProbe,kalmia)
+ $(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-net-kalmia/description
+ Kernel support for Samsung Kalmia based LTE USB modem
+endef
+
+$(eval $(call KernelPackage,usb-net-kalmia))
+
+define KernelPackage/usb-net-pl
+ TITLE:=Prolific PL-2301/2302/25A1 based cables
+ KCONFIG:=CONFIG_USB_NET_PLUSB
+ FILES:=$(LINUX_DIR)/drivers/net/usb/plusb.ko
+ AUTOLOAD:=$(call AutoProbe,plusb)
+ $(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-net-pl/description
+ Kernel support for Prolific PL-2301/2302/25A1 based cables
+endef
+
+$(eval $(call KernelPackage,usb-net-pl))
+
+define KernelPackage/usb-hid
+ TITLE:=Support for USB Human Input Devices
+ KCONFIG:=CONFIG_HID_SUPPORT=y CONFIG_USB_HID CONFIG_USB_HIDDEV=y
+ DEPENDS:=+kmod-hid +kmod-hid-generic +kmod-input-evdev
+ FILES:=$(LINUX_DIR)/drivers/$(USBHID_DIR)/usbhid.ko
+ AUTOLOAD:=$(call AutoProbe,usbhid)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-hid/description
+ Kernel support for USB HID devices such as keyboards and mice
+endef
+
+$(eval $(call KernelPackage,usb-hid))
+
+
+define KernelPackage/usb-hid-cp2112
+ SUBMENU:=$(USB_MENU)
+ TITLE:=Silicon Labs CP2112 HID USB to SMBus Master Bridge
+ KCONFIG:=CONFIG_HID_CP2112
+ DEPENDS:=@GPIO_SUPPORT +kmod-usb-hid +kmod-i2c-core
+ FILES:=$(LINUX_DIR)/drivers/hid/hid-cp2112.ko
+ AUTOLOAD:=$(call AutoProbe,hid-cp2112)
+endef
+
+define KernelPackage/usb-hid-cp2112/description
+ HID device driver which registers as an i2c adapter and gpiochip to expose
+ these functions of the CP2112.
+endef
+
+$(eval $(call KernelPackage,usb-hid-cp2112))
+
+
+define KernelPackage/usb-hid-mcp2221
+ SUBMENU:=$(USB_MENU)
+ TITLE:=Microchip USB 2.0 to I2C/UART Protocol Converter with GPIO
+ KCONFIG:=CONFIG_HID_MCP2221
+ DEPENDS:=@GPIO_SUPPORT +kmod-usb-hid +kmod-i2c-core +LINUX_6_6:kmod-iio-core
+ FILES:=$(LINUX_DIR)/drivers/hid/hid-mcp2221.ko
+ AUTOLOAD:=$(call AutoProbe,hid-mcp2221)
+endef
+
+define KernelPackage/usb-hid-mcp2221/description
+ HID device driver which registers as an i2c adapter and gpiochip to expose
+ these functions of the MCP2221.
+endef
+
+$(eval $(call KernelPackage,usb-hid-mcp2221))
+
+
+define KernelPackage/usb-yealink
+ TITLE:=USB Yealink VOIP phone
+ DEPENDS:=+kmod-input-evdev
+ KCONFIG:=CONFIG_USB_YEALINK CONFIG_INPUT_YEALINK CONFIG_INPUT=m CONFIG_INPUT_MISC=y
+ FILES:=$(LINUX_DIR)/drivers/$(USBINPUT_DIR)/yealink.ko
+ AUTOLOAD:=$(call AutoProbe,yealink)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-yealink/description
+ Kernel support for Yealink VOIP phone
+endef
+
+$(eval $(call KernelPackage,usb-yealink))
+
+
+define KernelPackage/usb-cm109
+ TITLE:=Support for CM109 device
+ DEPENDS:=+kmod-input-evdev
+ KCONFIG:=CONFIG_USB_CM109 CONFIG_INPUT_CM109 CONFIG_INPUT=m CONFIG_INPUT_MISC=y
+ FILES:=$(LINUX_DIR)/drivers/$(USBINPUT_DIR)/cm109.ko
+ AUTOLOAD:=$(call AutoProbe,cm109)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-cm109/description
+ Kernel support for CM109 VOIP phone
+endef
+
+$(eval $(call KernelPackage,usb-cm109))
+
+
+define KernelPackage/usb-test
+ TITLE:=USB Testing Driver
+ DEPENDS:=@DEVEL
+ KCONFIG:=CONFIG_USB_TEST
+ FILES:=$(LINUX_DIR)/drivers/usb/misc/usbtest.ko
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-test/description
+ Kernel support for testing USB Host Controller software
+endef
+
+$(eval $(call KernelPackage,usb-test))
+
+
+define KernelPackage/usbip
+ TITLE := USB-over-IP kernel support
+ KCONFIG:= \
+ CONFIG_USBIP_CORE \
+ CONFIG_USBIP_DEBUG=n
+ FILES:=$(LINUX_DIR)/drivers/usb/usbip/usbip-core.ko
+ AUTOLOAD:=$(call AutoProbe,usbip-core)
+ $(call AddDepends/usb)
+endef
+
+$(eval $(call KernelPackage,usbip))
+
+
+define KernelPackage/usbip-client
+ TITLE := USB-over-IP client driver
+ DEPENDS := +kmod-usbip
+ KCONFIG := CONFIG_USBIP_VHCI_HCD
+ FILES :=$(LINUX_DIR)/drivers/usb/usbip/vhci-hcd.ko
+ AUTOLOAD := $(call AutoProbe,vhci-hcd)
+ $(call AddDepends/usb)
+endef
+
+$(eval $(call KernelPackage,usbip-client))
+
+
+define KernelPackage/usbip-server
+$(call KernelPackage/usbip/Default)
+ TITLE := USB-over-IP host driver
+ DEPENDS := +kmod-usbip
+ KCONFIG := CONFIG_USBIP_HOST
+ FILES :=$(LINUX_DIR)/drivers/usb/usbip/usbip-host.ko
+ AUTOLOAD := $(call AutoProbe,usbip-host)
+ $(call AddDepends/usb)
+endef
+
+$(eval $(call KernelPackage,usbip-server))
+
+define KernelPackage/usb-chipidea
+ TITLE:=Host and device support for Chipidea controllers
+ DEPENDS:=+USB_GADGET_SUPPORT:kmod-usb-gadget @TARGET_ath79 +kmod-usb-ehci +kmod-usb-phy-nop +kmod-usb-roles
+ KCONFIG:= \
+ CONFIG_EXTCON \
+ CONFIG_USB_CHIPIDEA \
+ CONFIG_USB_CHIPIDEA_GENERIC \
+ CONFIG_USB_CHIPIDEA_HOST=y \
+ CONFIG_USB_CHIPIDEA_UDC=y \
+ CONFIG_USB_CHIPIDEA_DEBUG=y
+ FILES:= \
+ $(LINUX_DIR)/drivers/extcon/extcon-core.ko \
+ $(LINUX_DIR)/drivers/usb/chipidea/ci_hdrc.ko \
+ $(LINUX_DIR)/drivers/usb/common/ulpi.ko
+ AUTOLOAD:=$(call AutoLoad,39,ci_hdrc,1)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-chipidea/description
+ Kernel support for USB Chipidea controllers
+endef
+
+$(eval $(call KernelPackage,usb-chipidea))
+
+
+define KernelPackage/usb-chipidea2
+ TITLE:=Host and device support for Chipidea2 controllers
+ DEPENDS:=+kmod-usb-chipidea
+ KCONFIG:= \
+ CONFIG_EXTCON \
+ CONFIG_USB_CHIPIDEA \
+ CONFIG_USB_CHIPIDEA_HOST=y \
+ CONFIG_USB_CHIPIDEA_UDC=y \
+ CONFIG_USB_CHIPIDEA_DEBUG=y
+ FILES:= \
+ $(LINUX_DIR)/drivers/extcon/extcon-core.ko \
+ $(LINUX_DIR)/drivers/usb/chipidea/ci_hdrc_usb2.ko
+ AUTOLOAD:=$(call AutoLoad,39,ci_hdrc_usb2,1)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-chipidea2/description
+ Kernel support for USB Chipidea controllers
+endef
+
+$(eval $(call KernelPackage,usb-chipidea2))
+
+
+define KernelPackage/usbmon
+ TITLE:=USB traffic monitor
+ KCONFIG:=CONFIG_USB_MON
+ $(call AddDepends/usb)
+ FILES:=$(LINUX_DIR)/drivers/usb/mon/usbmon.ko
+ AUTOLOAD:=$(call AutoProbe,usbmon)
+endef
+
+define KernelPackage/usbmon/description
+ Kernel support for USB traffic monitoring
+endef
+
+$(eval $(call KernelPackage,usbmon))
+
+XHCI_MODULES := xhci-pci xhci-plat-hcd
+XHCI_FILES := $(wildcard $(patsubst %,$(LINUX_DIR)/drivers/usb/host/%.ko,$(XHCI_MODULES)))
+XHCI_AUTOLOAD := $(patsubst $(LINUX_DIR)/drivers/usb/host/%.ko,%,$(XHCI_FILES))
+
+define KernelPackage/usb3
+ TITLE:=Support for USB3 controllers
+ DEPENDS:= \
+ +kmod-usb-xhci-hcd \
+ +TARGET_bcm53xx:kmod-usb-bcma \
+ +TARGET_bcm53xx:kmod-phy-bcm-ns-usb3 \
+ +TARGET_ramips_mt7621:kmod-usb-xhci-mtk \
+ +TARGET_mediatek:kmod-usb-xhci-mtk \
+ +TARGET_apm821xx_nand:kmod-usb-xhci-pci-renesas \
+ +TARGET_lantiq_xrx200:kmod-usb-xhci-pci-renesas \
+ +TARGET_mvebu_cortexa9:kmod-usb-xhci-pci-renesas
+ KCONFIG:= \
+ CONFIG_USB_PCI=y \
+ CONFIG_USB_XHCI_PCI \
+ CONFIG_USB_XHCI_PLATFORM
+ FILES:= \
+ $(XHCI_FILES)
+ AUTOLOAD:=$(call AutoLoad,54,$(XHCI_AUTOLOAD),1)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb3/description
+ Kernel support for USB3 (XHCI) controllers
+endef
+
+$(eval $(call KernelPackage,usb3))
+
+
+define KernelPackage/usb-net2280
+ TITLE:=Support for NetChip 228x PCI USB peripheral controller
+ KCONFIG:= \
+ CONFIG_USB_PCI=y \
+ CONFIG_USB_NET2280
+ DEPENDS:=@PCI_SUPPORT +kmod-usb-gadget
+ FILES:=$(LINUX_DIR)/drivers/usb/gadget/udc/net2280.ko
+ AUTOLOAD:=$(call AutoLoad,46,net2280)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-net2280/description
+ Kernel support for NetChip 228x / PLX USB338x PCI USB peripheral controller.
+endef
+
+$(eval $(call KernelPackage,usb-net2280))
+
+define KernelPackage/usb-roles
+ TITLE:=USB Role Switch Library Module
+ KCONFIG:=CONFIG_USB_ROLE_SWITCH
+ HIDDEN:=1
+ FILES:=$(LINUX_DIR)/drivers/usb/roles/roles.ko
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-roles/description
+ Support for USB Role Switch
+endef
+
+$(eval $(call KernelPackage,usb-roles))
+
+
+define KernelPackage/usb-xhci-hcd
+ TITLE:=xHCI HCD (USB 3.0) support
+ KCONFIG:= CONFIG_USB_XHCI_HCD
+ HIDDEN:=1
+ FILES:=$(LINUX_DIR)/drivers/usb/host/xhci-hcd.ko
+ AUTOLOAD:=$(call AutoLoad,54,xhci-hcd,1)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-xhci-hcd/description
+ The eXtensible Host Controller Interface (xHCI) is standard for USB 3.0
+ "SuperSpeed" host controller hardware.
+endef
+
+$(eval $(call KernelPackage,usb-xhci-hcd))
+
+
+define KernelPackage/usb-xhci-mtk
+ TITLE:=xHCI support for MediaTek SoCs
+ DEPENDS:=+kmod-usb-xhci-hcd
+ KCONFIG:=CONFIG_USB_XHCI_MTK
+ HIDDEN:=1
+ FILES:= \
+ $(LINUX_DIR)/drivers/usb/host/xhci-mtk.ko@lt5.13 \
+ $(LINUX_DIR)/drivers/usb/host/xhci-mtk-hcd.ko@ge5.13
+ AUTOLOAD:=$(call AutoLoad,54,xhci-mtk@lt5.13 xhci-mtk-hcd@gt5.13,1)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-xhci-mtk/description
+ Kernel support for the xHCI host controller found in MediaTek SoCs.
+endef
+
+$(eval $(call KernelPackage,usb-xhci-mtk))
+
+
+define KernelPackage/usb-xhci-pci-renesas
+ TITLE:=Support for additional Renesas xHCI controller with firmware
+ KCONFIG:=CONFIG_USB_XHCI_PCI_RENESAS
+ HIDDEN:=1
+ FILES:=$(LINUX_DIR)/drivers/usb/host/xhci-pci-renesas.ko
+ AUTOLOAD:=$(call AutoLoad,54,xhci-pci-renesas,1)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-xhci-pci-renesas/description
+ Kernel support for the Renesas xHCI controller with firmware. Make sure you have
+ the firwmare for the device and installed on your system for this device to work.
+endef
+
+$(eval $(call KernelPackage,usb-xhci-pci-renesas))
+
+
+define KernelPackage/chaoskey
+ SUBMENU:=$(USB_MENU)
+ TITLE:=Chaoskey hardware RNG support
+ DEPENDS:=+kmod-random-core
+ KCONFIG:=CONFIG_USB_CHAOSKEY
+ FILES:=$(LINUX_DIR)/drivers/usb/misc/chaoskey.ko
+ AUTOLOAD:=$(call AutoProbe,chaoskey)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/chaoskey/description
+ Kernel module for chaoskey, USB attached true random number generator
+endef
+
+$(eval $(call KernelPackage,chaoskey))
+
diff --git a/package/kernel/linux/modules/video.mk b/package/kernel/linux/modules/video.mk
new file mode 100644
index 0000000..9a0f86e
--- /dev/null
+++ b/package/kernel/linux/modules/video.mk
@@ -0,0 +1,1343 @@
+#
+# Copyright (C) 2009 David Cooper <dave@kupesoft.com>
+# Copyright (C) 2006-2010 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+VIDEO_MENU:=Video Support
+
+V4L2_DIR=v4l2-core
+V4L2_USB_DIR=usb
+V4L2_MEM2MEM_DIR=platform
+
+#
+# Video Display
+#
+
+define KernelPackage/acpi-video
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=ACPI Extensions For Display Adapters
+ DEPENDS:=@TARGET_x86||TARGET_loongarch64 +kmod-backlight
+ HIDDEN:=1
+ KCONFIG:=CONFIG_ACPI_VIDEO
+ FILES:=$(LINUX_DIR)/drivers/acpi/video.ko
+ AUTOLOAD:=$(call AutoProbe,video)
+endef
+
+define KernelPackage/acpi-video/description
+ Kernel support for integrated graphics devices.
+endef
+
+define KernelPackage/acpi-video/x86
+ KCONFIG+=CONFIG_ACPI_WMI
+ FILES+=$(LINUX_DIR)/drivers/platform/x86/wmi.ko
+ AUTOLOAD:=$(call AutoProbe,wmi video)
+endef
+
+$(eval $(call KernelPackage,acpi-video))
+
+define KernelPackage/backlight
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=Backlight support
+ DEPENDS:=@DISPLAY_SUPPORT
+ HIDDEN:=1
+ KCONFIG:=CONFIG_BACKLIGHT_CLASS_DEVICE \
+ CONFIG_BACKLIGHT_LCD_SUPPORT=y \
+ CONFIG_LCD_CLASS_DEVICE=n \
+ CONFIG_BACKLIGHT_GENERIC=n \
+ CONFIG_BACKLIGHT_ADP8860=n \
+ CONFIG_BACKLIGHT_ADP8870=n \
+ CONFIG_BACKLIGHT_OT200=n \
+ CONFIG_BACKLIGHT_PM8941_WLED=n
+ FILES:=$(LINUX_DIR)/drivers/video/backlight/backlight.ko
+ AUTOLOAD:=$(call AutoProbe,video backlight)
+endef
+
+define KernelPackage/backlight/description
+ Kernel module for Backlight support.
+endef
+
+$(eval $(call KernelPackage,backlight))
+
+define KernelPackage/backlight-pwm
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=PWM Backlight support
+ DEPENDS:=+kmod-backlight
+ KCONFIG:=CONFIG_BACKLIGHT_PWM
+ FILES:=$(LINUX_DIR)/drivers/video/backlight/pwm_bl.ko
+ AUTOLOAD:=$(call AutoProbe,video pwm_bl)
+endef
+
+define KernelPackage/backlight-pwm/description
+ Kernel module for PWM based Backlight support.
+endef
+
+$(eval $(call KernelPackage,backlight-pwm))
+
+
+define KernelPackage/fb
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=Framebuffer and framebuffer console support
+ DEPENDS:=@DISPLAY_SUPPORT
+ KCONFIG:= \
+ CONFIG_FB \
+ CONFIG_FB_DEVICE=y \
+ CONFIG_FB_MXS=n \
+ CONFIG_FB_SM750=n \
+ CONFIG_FRAMEBUFFER_CONSOLE=y \
+ CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y \
+ CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y \
+ CONFIG_FONTS=y \
+ CONFIG_FONT_8x8=y \
+ CONFIG_FONT_8x16=y \
+ CONFIG_FONT_6x11=n \
+ CONFIG_FONT_7x14=n \
+ CONFIG_FONT_PEARL_8x8=n \
+ CONFIG_FONT_ACORN_8x8=n \
+ CONFIG_FONT_MINI_4x6=n \
+ CONFIG_FONT_6x10=n \
+ CONFIG_FONT_SUN8x16=n \
+ CONFIG_FONT_SUN12x22=n \
+ CONFIG_FONT_10x18=n \
+ CONFIG_VT=y \
+ CONFIG_CONSOLE_TRANSLATIONS=y \
+ CONFIG_VT_CONSOLE=y \
+ CONFIG_VT_HW_CONSOLE_BINDING=y
+ FILES:=$(LINUX_DIR)/drivers/video/fbdev/core/fb.ko \
+ $(LINUX_DIR)/lib/fonts/font.ko \
+ $(LINUX_DIR)/drivers/video/fbdev/core/fb_io_fops.ko@ge6.6
+ AUTOLOAD:=$(call AutoLoad,06,fb font)
+endef
+
+define KernelPackage/fb/description
+ Kernel support for framebuffers and framebuffer console.
+endef
+
+define KernelPackage/fb/x86
+ FILES+=$(LINUX_DIR)/arch/x86/video/fbdev.ko
+ AUTOLOAD:=$(call AutoLoad,06,fbdev fb font)
+endef
+
+$(eval $(call KernelPackage,fb))
+
+
+define KernelPackage/fb-cfb-fillrect
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=Framebuffer software rectangle filling support
+ DEPENDS:=+kmod-fb
+ KCONFIG:=CONFIG_FB_CFB_FILLRECT
+ FILES:=$(LINUX_DIR)/drivers/video/fbdev/core/cfbfillrect.ko
+ AUTOLOAD:=$(call AutoLoad,07,cfbfillrect)
+endef
+
+define KernelPackage/fb-cfb-fillrect/description
+ Kernel support for software rectangle filling
+endef
+
+$(eval $(call KernelPackage,fb-cfb-fillrect))
+
+
+define KernelPackage/fb-cfb-copyarea
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=Framebuffer software copy area support
+ DEPENDS:=+kmod-fb
+ KCONFIG:=CONFIG_FB_CFB_COPYAREA
+ FILES:=$(LINUX_DIR)/drivers/video/fbdev/core/cfbcopyarea.ko
+ AUTOLOAD:=$(call AutoLoad,07,cfbcopyarea)
+endef
+
+define KernelPackage/fb-cfb-copyarea/description
+ Kernel support for software copy area
+endef
+
+$(eval $(call KernelPackage,fb-cfb-copyarea))
+
+define KernelPackage/fb-cfb-imgblt
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=Framebuffer software image blit support
+ DEPENDS:=+kmod-fb
+ KCONFIG:=CONFIG_FB_CFB_IMAGEBLIT
+ FILES:=$(LINUX_DIR)/drivers/video/fbdev/core/cfbimgblt.ko
+ AUTOLOAD:=$(call AutoLoad,07,cfbimgblt)
+endef
+
+define KernelPackage/fb-cfb-imgblt/description
+ Kernel support for software image blitting
+endef
+
+$(eval $(call KernelPackage,fb-cfb-imgblt))
+
+
+define KernelPackage/fb-sys-fops
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=Framebuffer software sys ops support
+ DEPENDS:=+kmod-fb
+ KCONFIG:=CONFIG_FB_SYS_FOPS
+ FILES:=$(LINUX_DIR)/drivers/video/fbdev/core/fb_sys_fops.ko
+ AUTOLOAD:=$(call AutoLoad,07,fb_sys_fops)
+endef
+
+define KernelPackage/fb-sys-fops/description
+ Kernel support for framebuffer sys ops
+endef
+
+$(eval $(call KernelPackage,fb-sys-fops))
+
+
+define KernelPackage/fb-sys-ram
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=Framebuffer in system RAM support
+ DEPENDS:=+kmod-fb
+ KCONFIG:= \
+ CONFIG_FB_SYS_COPYAREA \
+ CONFIG_FB_SYS_FILLRECT \
+ CONFIG_FB_SYS_IMAGEBLIT
+ FILES:= \
+ $(LINUX_DIR)/drivers/video/fbdev/core/syscopyarea.ko \
+ $(LINUX_DIR)/drivers/video/fbdev/core/sysfillrect.ko \
+ $(LINUX_DIR)/drivers/video/fbdev/core/sysimgblt.ko
+ AUTOLOAD:=$(call AutoLoad,07,syscopyarea sysfillrect sysimgblt)
+endef
+
+define KernelPackage/fb-sys-ram/description
+ Kernel support for framebuffers in system RAM
+endef
+
+$(eval $(call KernelPackage,fb-sys-ram))
+
+
+define KernelPackage/fb-tft
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=Support for small TFT LCD display modules
+ DEPENDS:= \
+ @GPIO_SUPPORT +kmod-backlight \
+ +kmod-fb +kmod-fb-sys-fops +kmod-fb-sys-ram +kmod-spi-bitbang
+ KCONFIG:= \
+ CONFIG_FB_BACKLIGHT=y \
+ CONFIG_FB_DEFERRED_IO=y \
+ CONFIG_FB_TFT
+ FILES:= \
+ $(LINUX_DIR)/drivers/staging/fbtft/fbtft.ko
+ AUTOLOAD:=$(call AutoLoad,08,fbtft)
+endef
+
+define KernelPackage/fb-tft/description
+ Support for small TFT LCD display modules
+endef
+
+$(eval $(call KernelPackage,fb-tft))
+
+
+define KernelPackage/fb-tft-ili9486
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=FB driver for the ILI9486 LCD Controller
+ DEPENDS:=+kmod-fb-tft
+ KCONFIG:=CONFIG_FB_TFT_ILI9486
+ FILES:=$(LINUX_DIR)/drivers/staging/fbtft/fb_ili9486.ko
+ AUTOLOAD:=$(call AutoLoad,09,fb_ili9486)
+endef
+
+define KernelPackage/fb-tft-ili9486/description
+ FB driver for the ILI9486 LCD Controller
+endef
+
+$(eval $(call KernelPackage,fb-tft-ili9486))
+
+define KernelPackage/media-core
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE=Multimedia support
+ HIDDEN:=1
+ KCONFIG:= \
+ CONFIG_MEDIA_SUPPORT \
+ CONFIG_MEDIA_CONTROLLER=y \
+ CONFIG_MEDIA_CAMERA_SUPPORT=y \
+ CONFIG_MEDIA_PLATFORM_DRIVERS=y@ge6.1
+ FILES:=$(LINUX_DIR)/drivers/media/mc/mc.ko
+ AUTOLOAD:=$(call AutoProbe,mc)
+endef
+
+define KernelPackage/media-core/description
+ Kernel modules for media controller support
+endef
+
+$(eval $(call KernelPackage,media-core))
+
+define KernelPackage/multimedia-input
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=Multimedia input support
+ DEPENDS:=+kmod-input-core
+ KCONFIG:=CONFIG_RC_CORE \
+ CONFIG_LIRC=y \
+ CONFIG_RC_DECODERS=y \
+ CONFIG_RC_DEVICES=y
+ FILES:=$(LINUX_DIR)/drivers/media/rc/rc-core.ko
+ AUTOLOAD:=$(call AutoProbe,rc-core)
+endef
+
+define KernelPackage/multimedia-input/description
+ Enable multimedia input.
+endef
+
+$(eval $(call KernelPackage,multimedia-input))
+
+define KernelPackage/drm
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=Direct Rendering Manager (DRM) support
+ HIDDEN:=1
+ DEPENDS:=+kmod-dma-buf +kmod-i2c-core +PACKAGE_kmod-backlight:kmod-backlight \
+ +(LINUX_5_15||LINUX_6_1||LINUX_6_6):kmod-fb
+ KCONFIG:=CONFIG_DRM
+ FILES:= \
+ $(LINUX_DIR)/drivers/gpu/drm/drm.ko \
+ $(LINUX_DIR)/drivers/gpu/drm/drm_panel_orientation_quirks.ko
+ AUTOLOAD:=$(call AutoLoad,05,drm)
+endef
+
+define KernelPackage/drm/description
+ Direct Rendering Manager (DRM) core support
+endef
+
+$(eval $(call KernelPackage,drm))
+
+define KernelPackage/drm-buddy
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=A page based buddy allocator
+ DEPENDS:=@DISPLAY_SUPPORT +kmod-drm @LINUX_6_1||LINUX_6_6
+ KCONFIG:=CONFIG_DRM_BUDDY
+ FILES:= $(LINUX_DIR)/drivers/gpu/drm/drm_buddy.ko
+ AUTOLOAD:=$(call AutoProbe,drm_buddy)
+endef
+
+define KernelPackage/drm-buddy/description
+ A page based buddy allocator
+endef
+
+$(eval $(call KernelPackage,drm-buddy))
+
+define KernelPackage/drm-display-helper
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=DRM helpers for display adapters drivers
+ DEPENDS:=@DISPLAY_SUPPORT +kmod-drm-kms-helper @LINUX_6_1||LINUX_6_6
+ KCONFIG:=CONFIG_DRM_DISPLAY_HELPER
+ FILES:=$(LINUX_DIR)/drivers/gpu/drm/display/drm_display_helper.ko
+ AUTOLOAD:=$(call AutoProbe,drm_display_helper)
+endef
+
+define KernelPackage/drm-display-helper/description
+ DRM helpers for display adapters drivers.
+endef
+
+$(eval $(call KernelPackage,drm-display-helper))
+
+define KernelPackage/drm-exec
+ SUBMENU:=$(VIDEO_MENU)
+ HIDDEN:=1
+ TITLE:=Execution context for command submissions
+ DEPENDS:=@DISPLAY_SUPPORT +kmod-drm @LINUX_6_6
+ KCONFIG:=CONFIG_DRM_EXEC
+ FILES:=$(LINUX_DIR)/drivers/gpu/drm/drm_exec.ko
+ AUTOLOAD:=$(call AutoProbe,drm_exec)
+endef
+
+define KernelPackage/drm-exec/description
+ Execution context for command submissions.
+endef
+
+$(eval $(call KernelPackage,drm-exec))
+
+define KernelPackage/drm-ttm
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=GPU memory management subsystem
+ DEPENDS:=@DISPLAY_SUPPORT +kmod-drm
+ KCONFIG:=CONFIG_DRM_TTM
+ FILES:=$(LINUX_DIR)/drivers/gpu/drm/ttm/ttm.ko
+ AUTOLOAD:=$(call AutoProbe,ttm)
+endef
+
+define KernelPackage/drm-ttm/description
+ GPU memory management subsystem for devices with multiple GPU memory types.
+ Will be enabled automatically if a device driver uses it.
+endef
+
+$(eval $(call KernelPackage,drm-ttm))
+
+
+define KernelPackage/drm-ttm-helper
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=Helpers for ttm-based gem objects
+ HIDDEN:=1
+ DEPENDS:=@DISPLAY_SUPPORT +kmod-drm-ttm
+ KCONFIG:=CONFIG_DRM_TTM_HELPER
+ FILES:=$(LINUX_DIR)/drivers/gpu/drm/drm_ttm_helper.ko
+ AUTOLOAD:=$(call AutoProbe,drm_ttm_helper)
+endef
+
+$(eval $(call KernelPackage,drm-ttm-helper))
+
+
+define KernelPackage/drm-kms-helper
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=CRTC helpers for KMS drivers
+ DEPENDS:=@DISPLAY_SUPPORT +kmod-drm +kmod-fb +kmod-fb-sys-fops +kmod-fb-cfb-copyarea \
+ +kmod-fb-cfb-fillrect +kmod-fb-cfb-imgblt +kmod-fb-sys-ram
+ KCONFIG:= \
+ CONFIG_DRM_KMS_HELPER \
+ CONFIG_DRM_KMS_FB_HELPER=y
+ FILES:=$(LINUX_DIR)/drivers/gpu/drm/drm_kms_helper.ko
+ AUTOLOAD:=$(call AutoProbe,drm_kms_helper)
+endef
+
+define KernelPackage/drm-kms-helper/description
+ CRTC helpers for KMS drivers.
+endef
+
+$(eval $(call KernelPackage,drm-kms-helper))
+
+define KernelPackage/drm-suballoc-helper
+ SUBMENU:=$(VIDEO_MENU)
+ HIDDEN:=1
+ TITLE:=DRM suballocation helper
+ DEPENDS:=@DISPLAY_SUPPORT +kmod-drm @LINUX_6_6
+ KCONFIG:=CONFIG_DRM_SUBALLOC_HELPER
+ FILES:=$(LINUX_DIR)/drivers/gpu/drm/drm_suballoc_helper.ko
+ AUTOLOAD:=$(call AutoProbe,drm_suballoc_helper)
+endef
+
+define KernelPackage/drm-suballoc-helper/description
+ DRM suballocation helper.
+endef
+
+$(eval $(call KernelPackage,drm-suballoc-helper))
+
+define KernelPackage/drm-amdgpu
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=AMDGPU DRM support
+ DEPENDS:=@TARGET_x86 @DISPLAY_SUPPORT +kmod-backlight +kmod-drm-ttm \
+ +kmod-drm-ttm-helper +kmod-drm-kms-helper +kmod-i2c-algo-bit +amdgpu-firmware \
+ +kmod-drm-display-helper +kmod-drm-buddy +kmod-acpi-video \
+ +LINUX_6_6:kmod-drm-exec +LINUX_6_6:kmod-drm-suballoc-helper
+ KCONFIG:=CONFIG_DRM_AMDGPU \
+ CONFIG_DRM_AMDGPU_SI=y \
+ CONFIG_DRM_AMDGPU_CIK=y \
+ CONFIG_DRM_AMD_DC=y \
+ CONFIG_DEBUG_KERNEL_DC=n
+ FILES:=$(LINUX_DIR)/drivers/gpu/drm/amd/amdgpu/amdgpu.ko \
+ $(LINUX_DIR)/drivers/gpu/drm/amd/amdxcp/amdxcp.ko@ge6.5 \
+ $(LINUX_DIR)/drivers/gpu/drm/scheduler/gpu-sched.ko
+ AUTOLOAD:=$(call AutoProbe,amdgpu)
+endef
+
+define KernelPackage/drm-amdgpu/description
+ Direct Rendering Manager (DRM) support for AMDGPU Cards
+endef
+
+$(eval $(call KernelPackage,drm-amdgpu))
+
+
+define KernelPackage/drm-imx
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=Freescale i.MX DRM support
+ DEPENDS:=@TARGET_imx +kmod-drm-kms-helper
+ KCONFIG:=CONFIG_DRM_IMX \
+ CONFIG_DRM_FBDEV_EMULATION=y \
+ CONFIG_DRM_FBDEV_OVERALLOC=100 \
+ CONFIG_IMX_IPUV3_CORE \
+ CONFIG_RESET_CONTROLLER=y \
+ CONFIG_DRM_IMX_IPUV3 \
+ CONFIG_IMX_IPUV3 \
+ CONFIG_DRM_GEM_CMA_HELPER=y \
+ CONFIG_DRM_KMS_CMA_HELPER=y \
+ CONFIG_DRM_IMX_FB_HELPER \
+ CONFIG_DRM_IMX_PARALLEL_DISPLAY=n \
+ CONFIG_DRM_IMX_TVE=n \
+ CONFIG_DRM_IMX_LDB=n \
+ CONFIG_DRM_IMX_HDMI=n
+ FILES:= \
+ $(LINUX_DIR)/drivers/gpu/drm/imx/imxdrm.ko \
+ $(LINUX_DIR)/drivers/gpu/drm/drm_dma_helper.ko@ge6.1 \
+ $(LINUX_DIR)/drivers/gpu/ipu-v3/imx-ipu-v3.ko
+ AUTOLOAD:=$(call AutoLoad,08,imxdrm imx-ipu-v3 imx-ipuv3-crtc)
+endef
+
+define KernelPackage/drm-imx/description
+ Direct Rendering Manager (DRM) support for Freescale i.MX
+endef
+
+$(eval $(call KernelPackage,drm-imx))
+
+define KernelPackage/drm-imx-hdmi
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=Freescale i.MX HDMI DRM support
+ DEPENDS:=+kmod-sound-core kmod-drm-imx +LINUX_6_1:kmod-drm-display-helper
+ KCONFIG:=CONFIG_DRM_IMX_HDMI \
+ CONFIG_DRM_DW_HDMI_AHB_AUDIO \
+ CONFIG_DRM_DW_HDMI_I2S_AUDIO
+ FILES:= \
+ $(LINUX_DIR)/drivers/gpu/drm/bridge/synopsys/dw-hdmi.ko \
+ $(LINUX_DIR)/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.ko \
+ $(LINUX_DIR)/drivers/gpu/drm/imx/dw_hdmi-imx.ko
+ AUTOLOAD:=$(call AutoLoad,08,dw-hdmi dw-hdmi-ahb-audio.ko dw_hdmi-imx)
+endef
+
+define KernelPackage/drm-imx-hdmi/description
+ Direct Rendering Manager (DRM) support for Freescale i.MX HDMI
+endef
+
+$(eval $(call KernelPackage,drm-imx-hdmi))
+
+define KernelPackage/drm-imx-ldb
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=Freescale i.MX LVDS DRM support
+ DEPENDS:=+kmod-backlight kmod-drm-imx
+ KCONFIG:=CONFIG_DRM_IMX_LDB \
+ CONFIG_DRM_PANEL_SIMPLE \
+ CONFIG_DRM_PANEL=y \
+ CONFIG_DRM_PANEL_SAMSUNG_LD9040=n \
+ CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=n \
+ CONFIG_DRM_PANEL_LG_LG4573=n \
+ CONFIG_DRM_PANEL_LD9040=n \
+ CONFIG_DRM_PANEL_LVDS=n \
+ CONFIG_DRM_PANEL_S6E8AA0=n \
+ CONFIG_DRM_PANEL_SITRONIX_ST7789V=n
+ FILES:=$(LINUX_DIR)/drivers/gpu/drm/imx/imx-ldb.ko \
+ $(LINUX_DIR)/drivers/gpu/drm/panel/panel-simple.ko \
+ $(LINUX_DIR)/drivers/gpu/drm/drm_dp_aux_bus.ko@lt6.1
+ AUTOLOAD:=$(call AutoLoad,08,imx-ldb)
+endef
+
+define KernelPackage/drm-imx-ldb/description
+ Direct Rendering Manager (DRM) support for Freescale i.MX LVDS
+endef
+
+$(eval $(call KernelPackage,drm-imx-ldb))
+
+define KernelPackage/drm-lima
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=DRM support for ARM Mali 400/450 GPU
+ DEPENDS:=@(TARGET_rockchip||TARGET_sunxi) +kmod-drm-sched
+ KCONFIG:=CONFIG_DRM_LIMA
+ FILES:=$(LINUX_DIR)/drivers/gpu/drm/lima/lima.ko
+ AUTOLOAD:=$(call AutoProbe,lima)
+endef
+
+define KernelPackage/drm-lima/description
+ DRM driver for ARM Mali 400/450 GPUs
+endef
+
+$(eval $(call KernelPackage,drm-lima))
+
+define KernelPackage/drm-panfrost
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=DRM support for ARM Mali Midgard/Bifrost GPUs
+ DEPENDS:=@(TARGET_rockchip||TARGET_sunxi) +kmod-drm-sched
+ KCONFIG:=CONFIG_DRM_PANFROST
+ FILES:=$(LINUX_DIR)/drivers/gpu/drm/panfrost/panfrost.ko
+ AUTOLOAD:=$(call AutoProbe,panfrost)
+endef
+
+define KernelPackage/drm-panfrost/description
+ DRM driver for ARM Mali Midgard (T6xx, T7xx, T8xx) and
+ Bifrost (G3x, G5x, G7x) GPUs
+endef
+
+$(eval $(call KernelPackage,drm-panfrost))
+
+define KernelPackage/drm-radeon
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=Radeon DRM support
+ DEPENDS:=@TARGET_x86 @DISPLAY_SUPPORT +kmod-backlight +kmod-drm-kms-helper \
+ +kmod-drm-ttm +kmod-drm-ttm-helper +kmod-i2c-algo-bit +radeon-firmware \
+ +kmod-drm-display-helper +(LINUX_6_1||LINUX_6_6):kmod-acpi-video \
+ +LINUX_6_6:kmod-drm-suballoc-helper
+ KCONFIG:=CONFIG_DRM_RADEON
+ FILES:=$(LINUX_DIR)/drivers/gpu/drm/radeon/radeon.ko
+ AUTOLOAD:=$(call AutoProbe,radeon)
+endef
+
+define KernelPackage/drm-radeon/description
+ Direct Rendering Manager (DRM) support for Radeon Cards
+endef
+
+$(eval $(call KernelPackage,drm-radeon))
+
+define KernelPackage/drm-sched
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=DRM helper for ARM GPUs
+ DEPENDS:=+kmod-drm
+ HIDDEN:=1
+ KCONFIG:=CONFIG_DRM_SCHED
+ FILES:= \
+ $(LINUX_DIR)/drivers/gpu/drm/drm_shmem_helper.ko@gt5.17 \
+ $(LINUX_DIR)/drivers/gpu/drm/scheduler/gpu-sched.ko
+ AUTOLOAD:=$(call AutoProbe,gpu-sched)
+endef
+
+$(eval $(call KernelPackage,drm-sched))
+
+define KernelPackage/drm-nouveau
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=nouveau DRM support
+ DEPENDS:=@TARGET_x86 @DISPLAY_SUPPORT +(LINUX_6_1||LINUX_6_6):kmod-drm-display-helper +(LINUX_6_1||LINUX_6_6):kmod-drm-exec +kmod-drm-kms-helper \
+ +(LINUX_6_1||LINUX_6_6):kmod-drm-sched +(LINUX_6_1||LINUX_6_6):kmod-acpi-video
+ KCONFIG:=CONFIG_DRM_NOUVEAU \
+ NOUVEAU_DEBUG=5 \
+ NOUVEAU_DEBUG_DEFAULT=3 \
+ NOUVEAU_DEBUG_MMU=n \
+ DRM_NOUVEAU_BACKLIGHT=y
+ FILES:=$(LINUX_DIR)/drivers/gpu/drm/nouveau/nouveau.ko
+ AUTOLOAD:=$(call AutoProbe,nouveau)
+endef
+
+define KernelPackage/drm-nouveau/description
+ Direct Rendering Manager (DRM) support for NVIDIA Cuda Video Cards
+endef
+
+$(eval $(call KernelPackage,drm-nouveau))
+
+#
+# Video Capture
+#
+
+define KernelPackage/video-core
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE=Video4Linux support
+ DEPENDS:=+PACKAGE_kmod-i2c-core:kmod-i2c-core \
+ +LINUX_6_1||LINUX_6_6:kmod-media-core
+ KCONFIG:= \
+ CONFIG_VIDEO_DEV \
+ CONFIG_V4L_PLATFORM_DRIVERS=y
+ FILES:= \
+ $(LINUX_DIR)/drivers/media/$(V4L2_DIR)/videodev.ko
+ AUTOLOAD:=$(call AutoLoad,60, videodev v4l2-common)
+endef
+
+define KernelPackage/video-core/description
+ Kernel modules for Video4Linux support
+endef
+
+$(eval $(call KernelPackage,video-core))
+
+
+define AddDepends/video
+ SUBMENU:=$(VIDEO_MENU)
+ DEPENDS+=kmod-video-core $(1)
+endef
+
+define AddDepends/camera
+$(AddDepends/video)
+ KCONFIG+=CONFIG_MEDIA_USB_SUPPORT=y \
+ CONFIG_MEDIA_CAMERA_SUPPORT=y
+endef
+
+define AddDepends/framegrabber
+$(AddDepends/video)
+ KCONFIG+=CONFIG_MEDIA_PCI_SUPPORT=y
+endef
+
+define KernelPackage/video-videobuf2
+ TITLE:=videobuf2 lib
+ DEPENDS:=+kmod-dma-buf
+ KCONFIG:= \
+ CONFIG_VIDEOBUF2_CORE \
+ CONFIG_VIDEOBUF2_MEMOPS \
+ CONFIG_VIDEOBUF2_V4L2 \
+ CONFIG_VIDEOBUF2_VMALLOC
+ FILES:= \
+ $(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-common.ko \
+ $(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-v4l2.ko \
+ $(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-memops.ko \
+ $(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-vmalloc.ko
+ AUTOLOAD:=$(call AutoLoad,65,videobuf2-core videobuf-v4l2 videobuf2-memops videobuf2-vmalloc)
+ $(call AddDepends/video)
+endef
+
+define KernelPackage/video-videobuf2/description
+ Kernel modules that implements three basic types of media buffers.
+endef
+
+$(eval $(call KernelPackage,video-videobuf2))
+
+
+define KernelPackage/video-cpia2
+ TITLE:=CPIA2 video driver
+ DEPENDS:=@USB_SUPPORT +kmod-usb-core @LINUX_5_15
+ KCONFIG:=CONFIG_VIDEO_CPIA2
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/cpia2/cpia2.ko
+ AUTOLOAD:=$(call AutoProbe,cpia2)
+ $(call AddDepends/camera)
+endef
+
+define KernelPackage/video-cpia2/description
+ Kernel modules for supporting CPIA2 USB based cameras
+endef
+
+$(eval $(call KernelPackage,video-cpia2))
+
+
+define KernelPackage/video-pwc
+ TITLE:=Philips USB webcam support
+ DEPENDS:=@USB_SUPPORT +kmod-usb-core +kmod-video-videobuf2
+ KCONFIG:= \
+ CONFIG_USB_PWC \
+ CONFIG_USB_PWC_DEBUG=n
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/pwc/pwc.ko
+ AUTOLOAD:=$(call AutoProbe,pwc)
+ $(call AddDepends/camera)
+endef
+
+define KernelPackage/video-pwc/description
+ Kernel modules for supporting Philips USB based cameras
+endef
+
+$(eval $(call KernelPackage,video-pwc))
+
+
+define KernelPackage/video-uvc
+ TITLE:=USB Video Class (UVC) support
+ DEPENDS:=@USB_SUPPORT +kmod-usb-core +kmod-video-videobuf2 +kmod-input-core
+ KCONFIG:= CONFIG_USB_VIDEO_CLASS CONFIG_UVC_COMMON@ge6.3
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/uvc/uvcvideo.ko \
+ $(LINUX_DIR)/drivers/media/common/uvc.ko@ge6.3
+ AUTOLOAD:=$(call AutoProbe,uvc@ge6.3 uvcvideo)
+ $(call AddDepends/camera)
+endef
+
+define KernelPackage/video-uvc/description
+ Kernel modules for supporting USB Video Class (UVC) devices
+endef
+
+$(eval $(call KernelPackage,video-uvc))
+
+
+define KernelPackage/video-gspca-core
+ MENU:=1
+ TITLE:=GSPCA webcam core support framework
+ DEPENDS:=@USB_SUPPORT +kmod-usb-core +kmod-input-core +kmod-video-videobuf2
+ KCONFIG:=CONFIG_USB_GSPCA
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_main.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_main)
+ $(call AddDepends/camera)
+endef
+
+define KernelPackage/video-gspca-core/description
+ Kernel modules for supporting GSPCA based webcam devices. Note this is just
+ the core of the driver, please select a submodule that supports your webcam.
+endef
+
+$(eval $(call KernelPackage,video-gspca-core))
+
+
+define AddDepends/camera-gspca
+ SUBMENU:=$(VIDEO_MENU)
+ DEPENDS+=kmod-video-gspca-core $(1)
+endef
+
+
+define KernelPackage/video-gspca-conex
+ TITLE:=conex webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_CONEX
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_conex.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_conex)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-conex/description
+ The Conexant Camera Driver (conex) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-conex))
+
+
+define KernelPackage/video-gspca-etoms
+ TITLE:=etoms webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_ETOMS
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_etoms.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_etoms)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-etoms/description
+ The Etoms USB Camera Driver (etoms) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-etoms))
+
+
+define KernelPackage/video-gspca-finepix
+ TITLE:=finepix webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_FINEPIX
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_finepix.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_finepix)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-finepix/description
+ The Fujifilm FinePix USB V4L2 driver (finepix) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-finepix))
+
+
+define KernelPackage/video-gspca-mars
+ TITLE:=mars webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_MARS
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_mars.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_mars)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-mars/description
+ The Mars USB Camera Driver (mars) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-mars))
+
+
+define KernelPackage/video-gspca-mr97310a
+ TITLE:=mr97310a webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_MR97310A
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_mr97310a.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_mr97310a)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-mr97310a/description
+ The Mars-Semi MR97310A USB Camera Driver (mr97310a) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-mr97310a))
+
+
+define KernelPackage/video-gspca-ov519
+ TITLE:=ov519 webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_OV519
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_ov519.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_ov519)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-ov519/description
+ The OV519 USB Camera Driver (ov519) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-ov519))
+
+
+define KernelPackage/video-gspca-ov534
+ TITLE:=ov534 webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_OV534
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_ov534.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_ov534)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-ov534/description
+ The OV534 USB Camera Driver (ov534) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-ov534))
+
+
+define KernelPackage/video-gspca-ov534-9
+ TITLE:=ov534-9 webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_OV534_9
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_ov534_9.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_ov534_9)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-ov534-9/description
+ The OV534-9 USB Camera Driver (ov534_9) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-ov534-9))
+
+
+define KernelPackage/video-gspca-pac207
+ TITLE:=pac207 webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_PAC207
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_pac207.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_pac207)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-pac207/description
+ The Pixart PAC207 USB Camera Driver (pac207) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-pac207))
+
+
+define KernelPackage/video-gspca-pac7311
+ TITLE:=pac7311 webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_PAC7311
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_pac7311.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_pac7311)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-pac7311/description
+ The Pixart PAC7311 USB Camera Driver (pac7311) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-pac7311))
+
+
+define KernelPackage/video-gspca-se401
+ TITLE:=se401 webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_SE401
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_se401.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_se401)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-se401/description
+ The SE401 USB Camera Driver kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-se401))
+
+
+define KernelPackage/video-gspca-sn9c20x
+ TITLE:=sn9c20x webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_SN9C20X
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sn9c20x.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_sn9c20x)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-sn9c20x/description
+ The SN9C20X USB Camera Driver (sn9c20x) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-sn9c20x))
+
+
+define KernelPackage/video-gspca-sonixb
+ TITLE:=sonixb webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_SONIXB
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sonixb.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_sonixb)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-sonixb/description
+ The SONIX Bayer USB Camera Driver (sonixb) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-sonixb))
+
+
+define KernelPackage/video-gspca-sonixj
+ TITLE:=sonixj webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_SONIXJ
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sonixj.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_sonixj)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-sonixj/description
+ The SONIX JPEG USB Camera Driver (sonixj) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-sonixj))
+
+
+define KernelPackage/video-gspca-spca500
+ TITLE:=spca500 webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_SPCA500
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_spca500.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_spca500)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-spca500/description
+ The SPCA500 USB Camera Driver (spca500) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-spca500))
+
+
+define KernelPackage/video-gspca-spca501
+ TITLE:=spca501 webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_SPCA501
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_spca501.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_spca501)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-spca501/description
+ The SPCA501 USB Camera Driver (spca501) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-spca501))
+
+
+define KernelPackage/video-gspca-spca505
+ TITLE:=spca505 webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_SPCA505
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_spca505.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_spca505)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-spca505/description
+ The SPCA505 USB Camera Driver (spca505) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-spca505))
+
+
+define KernelPackage/video-gspca-spca506
+ TITLE:=spca506 webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_SPCA506
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_spca506.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_spca506)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-spca506/description
+ The SPCA506 USB Camera Driver (spca506) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-spca506))
+
+
+define KernelPackage/video-gspca-spca508
+ TITLE:=spca508 webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_SPCA508
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_spca508.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_spca508)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-spca508/description
+ The SPCA508 USB Camera Driver (spca508) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-spca508))
+
+
+define KernelPackage/video-gspca-spca561
+ TITLE:=spca561 webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_SPCA561
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_spca561.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_spca561)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-spca561/description
+ The SPCA561 USB Camera Driver (spca561) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-spca561))
+
+
+define KernelPackage/video-gspca-sq905
+ TITLE:=sq905 webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_SQ905
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sq905.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_sq905)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-sq905/description
+ The SQ Technologies SQ905 based USB Camera Driver (sq905) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-sq905))
+
+
+define KernelPackage/video-gspca-sq905c
+ TITLE:=sq905c webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_SQ905C
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sq905c.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_sq905c)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-sq905c/description
+ The SQ Technologies SQ905C based USB Camera Driver (sq905c) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-sq905c))
+
+
+define KernelPackage/video-gspca-sq930x
+ TITLE:=sq930x webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_SQ930X
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sq930x.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_sq930x)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-sq930x/description
+ The SQ Technologies SQ930X based USB Camera Driver (sq930x) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-sq930x))
+
+
+define KernelPackage/video-gspca-stk014
+ TITLE:=stk014 webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_STK014
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_stk014.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_stk014)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-stk014/description
+ The Syntek DV4000 (STK014) USB Camera Driver (stk014) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-stk014))
+
+
+define KernelPackage/video-gspca-sunplus
+ TITLE:=sunplus webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_SUNPLUS
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sunplus.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_sunplus)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-sunplus/description
+ The SUNPLUS USB Camera Driver (sunplus) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-sunplus))
+
+
+define KernelPackage/video-gspca-t613
+ TITLE:=t613 webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_T613
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_t613.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_t613)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-t613/description
+ The T613 (JPEG Compliance) USB Camera Driver (t613) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-t613))
+
+
+define KernelPackage/video-gspca-tv8532
+ TITLE:=tv8532 webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_TV8532
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_tv8532.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_tv8532)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-tv8532/description
+ The TV8532 USB Camera Driver (tv8532) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-tv8532))
+
+
+define KernelPackage/video-gspca-vc032x
+ TITLE:=vc032x webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_VC032X
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_vc032x.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_vc032x)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-vc032x/description
+ The VC032X USB Camera Driver (vc032x) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-vc032x))
+
+
+define KernelPackage/video-gspca-zc3xx
+ TITLE:=zc3xx webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_ZC3XX
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_zc3xx.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_zc3xx)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-zc3xx/description
+ The ZC3XX USB Camera Driver (zc3xx) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-zc3xx))
+
+
+define KernelPackage/video-gspca-m5602
+ TITLE:=m5602 webcam support
+ KCONFIG:=CONFIG_USB_M5602
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/m5602/gspca_m5602.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_m5602)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-m5602/description
+ The ALi USB m5602 Camera Driver (m5602) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-m5602))
+
+
+define KernelPackage/video-gspca-stv06xx
+ TITLE:=stv06xx webcam support
+ KCONFIG:=CONFIG_USB_STV06XX
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/stv06xx/gspca_stv06xx.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_stv06xx)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-stv06xx/description
+ The STV06XX USB Camera Driver (stv06xx) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-stv06xx))
+
+
+define KernelPackage/video-gspca-gl860
+ TITLE:=gl860 webcam support
+ KCONFIG:=CONFIG_USB_GL860
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gl860/gspca_gl860.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_gl860)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-gl860/description
+ The GL860 USB Camera Driver (gl860) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-gl860))
+
+
+define KernelPackage/video-gspca-jeilinj
+ TITLE:=jeilinj webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_JEILINJ
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_jeilinj.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_jeilinj)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-jeilinj/description
+ The JEILINJ USB Camera Driver (jeilinj) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-jeilinj))
+
+
+define KernelPackage/video-gspca-konica
+ TITLE:=konica webcam support
+ KCONFIG:=CONFIG_USB_GSPCA_KONICA
+ FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_konica.ko
+ AUTOLOAD:=$(call AutoProbe,gspca_konica)
+ $(call AddDepends/camera-gspca)
+endef
+
+define KernelPackage/video-gspca-konica/description
+ The Konica USB Camera Driver (konica) kernel module
+endef
+
+$(eval $(call KernelPackage,video-gspca-konica))
+
+#
+# Video Processing
+#
+
+define KernelPackage/video-mem2mem
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=Memory 2 Memory device support
+ HIDDEN:=1
+ DEPENDS:=+kmod-video-videobuf2
+ KCONFIG:= \
+ CONFIG_V4L_MEM2MEM_DRIVERS=y \
+ CONFIG_V4L2_MEM2MEM_DEV
+ FILES:= $(LINUX_DIR)/drivers/media/$(V4L2_DIR)/v4l2-mem2mem.ko
+ AUTOLOAD:=$(call AutoLoad,66,v4l2-mem2mem)
+ $(call AddDepends/video)
+endef
+
+define KernelPackage/video-mem2mem/description
+ Memory 2 memory device support
+endef
+
+$(eval $(call KernelPackage,video-mem2mem))
+
+define KernelPackage/video-dma
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=Video DMA support
+ HIDDEN:=1
+ DEPENDS:=+kmod-video-videobuf2
+ KCONFIG:= \
+ CONFIG_VIDEOBUF2_DMA_CONTIG \
+ CONFIG_VIDEOBUF2_DMA_SG
+ FILES:= $(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-dma-*.ko
+ AUTOLOAD:=$(call AutoLoad,66,videobuf2-dma-contig videobuf2-dma-sg)
+ $(call AddDepends/video)
+endef
+
+define KernelPackage/video-dma/description
+ Video DMA support
+endef
+
+$(eval $(call KernelPackage,video-dma))
+
+define KernelPackage/video-coda
+ TITLE:=i.MX VPU support
+ DEPENDS:=@(TARGET_imx&&TARGET_imx_cortexa9) +kmod-video-mem2mem +kmod-video-dma
+ KCONFIG:= \
+ CONFIG_VIDEO_CODA \
+ CONFIG_VIDEO_IMX_VDOA
+ FILES:= \
+ $(LINUX_DIR)/drivers/media/$(V4L2_MEM2MEM_DIR)/coda/coda-vpu.ko@lt6.1 \
+ $(LINUX_DIR)/drivers/media/$(V4L2_MEM2MEM_DIR)/chips-media/coda-vpu.ko@ge6.1 \
+ $(LINUX_DIR)/drivers/media/$(V4L2_MEM2MEM_DIR)/coda/imx-vdoa.ko@lt6.1 \
+ $(LINUX_DIR)/drivers/media/$(V4L2_MEM2MEM_DIR)/chips-media/imx-vdoa.ko@ge6.1 \
+ $(LINUX_DIR)/drivers/media/$(V4L2_DIR)/v4l2-jpeg.ko
+ AUTOLOAD:=$(call AutoProbe,coda-vpu imx-vdoa v4l2-jpeg)
+ $(call AddDepends/video)
+endef
+
+define KernelPackage/video-coda/description
+ The i.MX Video Processing Unit (VPU) kernel module
+endef
+
+$(eval $(call KernelPackage,video-coda))
+
+define KernelPackage/video-pxp
+ TITLE:=i.MX PXP support
+ DEPENDS:=@TARGET_imx +kmod-video-mem2mem +kmod-video-dma
+ KCONFIG:= CONFIG_VIDEO_IMX_PXP
+ FILES:= $(LINUX_DIR)/drivers/media/$(V4L2_MEM2MEM_DIR)/imx-pxp.ko@lt6.1 \
+ $(LINUX_DIR)/drivers/media/platform/nxp/imx-pxp.ko@ge6.1
+ AUTOLOAD:=$(call AutoProbe,imx-pxp)
+ $(call AddDepends/video)
+endef
+
+define KernelPackage/video-pxp/description
+ The i.MX Pixel Pipeline (PXP) kernel module
+ This enables hardware accelerated support for image
+ Colour Conversion, Scaling and Rotation
+endef
+
+$(eval $(call KernelPackage,video-pxp))
+
+define KernelPackage/video-tw686x
+ TITLE:=TW686x support
+ DEPENDS:=@PCIE_SUPPORT +kmod-video-dma +kmod-sound-core
+ KCONFIG:= CONFIG_VIDEO_TW686X
+ FILES:= $(LINUX_DIR)/drivers/media/pci/tw686x/tw686x.ko
+ AUTOLOAD:=$(call AutoProbe,tw686x)
+ MODPARAMS.tw686x:=dma_mode=contig
+ $(call AddDepends/framegrabber)
+endef
+
+define KernelPackage/video-tw686x/description
+ The Intersil/Techwell TW686x kernel module
+endef
+
+$(eval $(call KernelPackage,video-tw686x))
diff --git a/package/kernel/linux/modules/virt.mk b/package/kernel/linux/modules/virt.mk
new file mode 100644
index 0000000..fb811d5
--- /dev/null
+++ b/package/kernel/linux/modules/virt.mk
@@ -0,0 +1,143 @@
+#
+# Copyright (C) 2016 Yousong Zhou <yszhou4tech@gmail.com>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+define KernelPackage/irqbypass
+ SUBMENU:=Virtualization
+ TITLE:=IRQ offload/bypass manager
+ KCONFIG:=CONFIG_IRQ_BYPASS_MANAGER
+ HIDDEN:=1
+ FILES:= $(LINUX_DIR)/virt/lib/irqbypass.ko
+ AUTOLOAD:=$(call AutoProbe,irqbypass.ko)
+endef
+$(eval $(call KernelPackage,irqbypass))
+
+
+define KernelPackage/kvm-x86
+ SUBMENU:=Virtualization
+ TITLE:=Kernel-based Virtual Machine (KVM) support
+ DEPENDS:=@TARGET_x86_generic||TARGET_x86_64 +kmod-irqbypass
+ KCONFIG:=\
+ CONFIG_KVM \
+ CONFIG_KVM_MMU_AUDIT=n \
+ CONFIG_KVM_SMM=y@ge6.6 \
+ CONFIG_VIRTUALIZATION=y
+ FILES:= $(LINUX_DIR)/arch/$(LINUX_KARCH)/kvm/kvm.ko
+ AUTOLOAD:=$(call AutoProbe,kvm.ko)
+endef
+
+define KernelPackage/kvm-x86/description
+ Support hosting fully virtualized guest machines using hardware
+ virtualization extensions. You will need a fairly recent
+ processor equipped with virtualization extensions. You will also
+ need to select one or more of the processor modules.
+
+ This module provides access to the hardware capabilities through
+ a character device node named /dev/kvm.
+endef
+
+$(eval $(call KernelPackage,kvm-x86))
+
+
+define KernelPackage/kvm-intel
+ SUBMENU:=Virtualization
+ TITLE:=KVM for Intel processors support
+ DEPENDS:=+kmod-kvm-x86
+ KCONFIG:=CONFIG_KVM_INTEL
+ FILES:= $(LINUX_DIR)/arch/$(LINUX_KARCH)/kvm/kvm-intel.ko
+ AUTOLOAD:=$(call AutoProbe,kvm-intel.ko)
+endef
+
+define KernelPackage/kvm-intel/description
+ Provides support for KVM on Intel processors equipped with the VT
+ extensions.
+endef
+
+$(eval $(call KernelPackage,kvm-intel))
+
+
+define KernelPackage/kvm-amd
+ SUBMENU:=Virtualization
+ TITLE:=KVM for AMD processors support
+ DEPENDS:=+kmod-kvm-x86
+ KCONFIG:=CONFIG_KVM_AMD
+ FILES:= $(LINUX_DIR)/arch/$(LINUX_KARCH)/kvm/kvm-amd.ko
+ AUTOLOAD:=$(call AutoProbe,kvm-amd.ko)
+endef
+
+define KernelPackage/kvm-amd/description
+ Provides support for KVM on AMD processors equipped with the AMD-V
+ (SVM) extensions.
+endef
+
+$(eval $(call KernelPackage,kvm-amd))
+
+
+define KernelPackage/vfio
+ SUBMENU:=Virtualization
+ TITLE:=VFIO Non-Privileged userspace driver framework
+ DEPENDS:=@TARGET_x86_64||TARGET_armvirt_64
+ KCONFIG:= \
+ CONFIG_VFIO \
+ CONFIG_VFIO_NOIOMMU=n \
+ CONFIG_VFIO_MDEV=n
+ MODPARAMS.vfio:=enable_unsafe_noiommu_mode=n
+ FILES:= \
+ $(LINUX_DIR)/drivers/vfio/vfio.ko \
+ $(LINUX_DIR)/drivers/vfio/vfio_virqfd.ko@lt6.2 \
+ $(LINUX_DIR)/drivers/vfio/vfio_iommu_type1.ko
+ AUTOLOAD:=$(call AutoProbe,vfio vfio_iommu_type1 vfio_virqfd)
+endef
+
+define KernelPackage/vfio/description
+ VFIO provides a framework for secure userspace device drivers.
+endef
+
+$(eval $(call KernelPackage,vfio))
+
+
+define KernelPackage/vfio-pci
+ SUBMENU:=Virtualization
+ TITLE:=Generic VFIO support for any PCI device
+ DEPENDS:=@TARGET_x86_64 @PCI_SUPPORT +kmod-vfio +kmod-irqbypass
+ KCONFIG:= \
+ CONFIG_VFIO_PCI \
+ CONFIG_VFIO_PCI_IGD=n
+ FILES:= \
+ $(LINUX_DIR)/drivers/vfio/pci/vfio-pci-core.ko \
+ $(LINUX_DIR)/drivers/vfio/pci/vfio-pci.ko
+ AUTOLOAD:=$(call AutoProbe,vfio-pci)
+endef
+
+define KernelPackage/vfio-pci/description
+ Support for the generic PCI VFIO bus driver which can connect any PCI
+ device to the VFIO framework.
+endef
+
+$(eval $(call KernelPackage,vfio-pci))
+
+
+define KernelPackage/vhost
+ SUBMENU:=Virtualization
+ TITLE:=Host kernel accelerator for virtio (base)
+ KCONFIG:=CONFIG_VHOST
+ FILES:=$(LINUX_DIR)/drivers/vhost/vhost.ko \
+ $(LINUX_DIR)/drivers/vhost/vhost_iotlb.ko
+ AUTOLOAD:=$(call AutoProbe,vhost vhost_iotlb)
+endef
+
+$(eval $(call KernelPackage,vhost))
+
+
+define KernelPackage/vhost-net
+ SUBMENU:=Virtualization
+ TITLE:=Host kernel accelerator for virtio-net
+ DEPENDS:=+kmod-tun +kmod-vhost
+ KCONFIG:=CONFIG_VHOST_NET
+ FILES:=$(LINUX_DIR)/drivers/vhost/vhost_net.ko
+ AUTOLOAD:=$(call AutoProbe,vhost_net)
+endef
+
+$(eval $(call KernelPackage,vhost-net))
diff --git a/package/kernel/linux/modules/w1.mk b/package/kernel/linux/modules/w1.mk
new file mode 100644
index 0000000..e0f7eec
--- /dev/null
+++ b/package/kernel/linux/modules/w1.mk
@@ -0,0 +1,193 @@
+#
+# Copyright (C) 2008-2010 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+W1_MENU:=W1 support
+W1_MASTERS_DIR:=$(LINUX_DIR)/drivers/w1/masters
+W1_SLAVES_DIR:=$(LINUX_DIR)/drivers/w1/slaves
+
+define KernelPackage/w1
+ SUBMENU:=$(W1_MENU)
+ TITLE:=Dallas's 1-wire support
+ KCONFIG:=CONFIG_W1
+ FILES:=$(LINUX_DIR)/drivers/w1/wire.ko
+ DEPENDS:=+kmod-hwmon-core
+endef
+
+define KernelPackage/w1/description
+ Kernel module for Dallas's 1-wire support
+endef
+
+$(eval $(call KernelPackage,w1))
+
+
+define AddDepends/w1
+ SUBMENU:=$(W1_MENU)
+ DEPENDS+=kmod-w1 $(1)
+endef
+
+
+#
+# 1-wire masters
+#
+define KernelPackage/w1-master-gpio
+ TITLE:=GPIO 1-wire bus master driver
+ DEPENDS:=@GPIO_SUPPORT
+ KCONFIG:=CONFIG_W1_MASTER_GPIO
+ FILES:=$(W1_MASTERS_DIR)/w1-gpio.ko
+ AUTOLOAD:=$(call AutoProbe,w1-gpio)
+ $(call AddDepends/w1)
+endef
+
+define KernelPackage/w1-master-gpio/description
+ Kernel module for the GPIO 1-wire bus master driver
+endef
+
+$(eval $(call KernelPackage,w1-master-gpio))
+
+define KernelPackage/w1-master-ds2482
+ TITLE:=DS2482 1-wire i2c bus master driver
+ KCONFIG:=CONFIG_W1_MASTER_DS2482
+ FILES:=$(W1_MASTERS_DIR)/ds2482.ko
+ AUTOLOAD:=$(call AutoProbe,ds2482)
+ $(call AddDepends/w1,+kmod-i2c-core)
+endef
+
+define KernelPackage/w1-master-ds2482/description
+ Kernel module for the DS2482 i2c 1-wire bus master driver
+ NOTE: Init with: echo ds2482 0x18 > /sys/bus/i2c/devices/i2c-0/new_device
+ or use owfs
+endef
+
+$(eval $(call KernelPackage,w1-master-ds2482))
+
+
+define KernelPackage/w1-master-ds2490
+ TITLE:=DS2490 1-wire usb bus master driver
+ DEPENDS:=@USB_SUPPORT +kmod-usb-core
+ KCONFIG:=CONFIG_W1_MASTER_DS2490
+ FILES:=$(W1_MASTERS_DIR)/ds2490.ko
+ AUTOLOAD:=$(call AutoProbe,ds2490)
+ $(call AddDepends/w1)
+endef
+
+define KernelPackage/w1-master-ds2490/description
+ Kernel module for the DS2490 usb 1-wire bus master driver
+endef
+
+$(eval $(call KernelPackage,w1-master-ds2490))
+
+
+define KernelPackage/w1-master-mxc
+ TITLE:=Freescale MXC 1-wire busmaster
+ DEPENDS:=@TARGET_imx
+ KCONFIG:=CONFIG_W1_MASTER_MXC
+ FILES:=$(W1_MASTERS_DIR)/mxc_w1.ko
+ AUTOLOAD:=$(call AutoProbe,mxc_w1)
+ $(call AddDepends/w1)
+endef
+
+define KernelPackage/w1-master-mxc/description
+ Kernel module for 1-wire Freescale MXC 1-wire busmaster
+endef
+
+$(eval $(call KernelPackage,w1-master-mxc))
+
+
+#
+# 1-wire slaves
+#
+define KernelPackage/w1-slave-therm
+ TITLE:=Thermal family implementation
+ KCONFIG:=CONFIG_W1_SLAVE_THERM
+ FILES:=$(W1_SLAVES_DIR)/w1_therm.ko
+ AUTOLOAD:=$(call AutoProbe,w1_therm)
+ $(call AddDepends/w1)
+endef
+
+define KernelPackage/w1-slave-therm/description
+ Kernel module for 1-wire thermal sensors
+endef
+
+$(eval $(call KernelPackage,w1-slave-therm))
+
+
+define KernelPackage/w1-slave-smem
+ TITLE:=Simple 64bit memory family implementation
+ KCONFIG:=CONFIG_W1_SLAVE_SMEM
+ FILES:=$(W1_SLAVES_DIR)/w1_smem.ko
+ AUTOLOAD:=$(call AutoProbe,w1_smem)
+ $(call AddDepends/w1)
+endef
+
+define KernelPackage/w1-slave-smem/description
+ Kernel module for 1-wire simple 64bit memory rom(ds2401/ds2411/ds1990*)
+endef
+
+$(eval $(call KernelPackage,w1-slave-smem))
+
+define KernelPackage/w1-slave-ds2431
+ TITLE:=DS2431 1kb EEPROM driver
+ KCONFIG:= CONFIG_W1_SLAVE_DS2431
+ FILES:=$(W1_SLAVES_DIR)/w1_ds2431.ko
+ AUTOLOAD:=$(call AutoProbe,w1_ds2431)
+ $(call AddDepends/w1)
+endef
+
+define KernelPackage/w1-slave-ds2431/description
+ Kernel module for 1-wire 1kb EEPROM (DS2431)
+endef
+
+$(eval $(call KernelPackage,w1-slave-ds2431))
+
+define KernelPackage/w1-slave-ds2433
+ TITLE:=DS2433 4kb EEPROM driver
+ KCONFIG:= \
+ CONFIG_W1_SLAVE_DS2433 \
+ CONFIG_W1_SLAVE_DS2433_CRC=n
+ FILES:=$(W1_SLAVES_DIR)/w1_ds2433.ko
+ AUTOLOAD:=$(call AutoProbe,w1_ds2433)
+ $(call AddDepends/w1)
+endef
+
+define KernelPackage/w1-slave-ds2433/description
+ Kernel module for 1-wire 4kb EEPROM (DS2433)
+endef
+
+$(eval $(call KernelPackage,w1-slave-ds2433))
+
+
+define KernelPackage/w1-slave-ds2760
+ TITLE:=Dallas 2760 battery monitor chip (HP iPAQ & others)
+ KCONFIG:= \
+ CONFIG_W1_SLAVE_DS2760 \
+ CONFIG_W1_SLAVE_DS2433_CRC=n
+ FILES:=$(W1_SLAVES_DIR)/w1_ds2760.ko
+ AUTOLOAD:=$(call AutoProbe,w1_ds2760)
+ $(call AddDepends/w1)
+endef
+
+define KernelPackage/w1-slave-ds2760/description
+ Kernel module for 1-wire DS2760 battery monitor chip support
+endef
+
+$(eval $(call KernelPackage,w1-slave-ds2760))
+
+
+define KernelPackage/w1-slave-ds2413
+ TITLE:=DS2413 2 Ch. Addressable Switch
+ KCONFIG:= \
+ CONFIG_W1_SLAVE_DS2413
+ FILES:=$(W1_SLAVES_DIR)/w1_ds2413.ko
+ AUTOLOAD:=$(call AutoProbe,w1_ds2413)
+ $(call AddDepends/w1)
+endef
+
+define KernelPackage/w1-slave-ds2413/description
+ Kernel module for 1-wire DS2413 Dual Channel Addressable Switch support
+endef
+
+$(eval $(call KernelPackage,w1-slave-ds2413))
diff --git a/package/kernel/linux/modules/wpan.mk b/package/kernel/linux/modules/wpan.mk
new file mode 100644
index 0000000..dab8a0c
--- /dev/null
+++ b/package/kernel/linux/modules/wpan.mk
@@ -0,0 +1,152 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+
+WPAN_MENU:=WPAN 802.15.4 Support
+
+define KernelPackage/ieee802154
+ SUBMENU:=$(WPAN_MENU)
+ TITLE:=IEEE-802.15.4 support
+ KCONFIG:= \
+ CONFIG_IEEE802154 \
+ CONFIG_IEEE802154_SOCKET=y \
+ CONFIG_IEEE802154_NL802154_EXPERIMENTAL=n
+ FILES:= \
+ $(LINUX_DIR)/net/ieee802154/ieee802154.ko \
+ $(LINUX_DIR)/net/ieee802154/ieee802154_socket.ko
+ AUTOLOAD:=$(call AutoLoad,90,ieee802154 ieee802154_socket)
+endef
+
+define KernelPackage/ieee802154/description
+ IEEE Std 802.15.4 defines a low data rate, low power and low
+ complexity short range wireless personal area networks. It was
+ designed to organise networks of sensors, switches, etc automation
+ devices. Maximum allowed data rate is 250 kb/s and typical personal
+ operating space around 10m.
+endef
+
+$(eval $(call KernelPackage,ieee802154))
+
+define KernelPackage/mac802154
+ SUBMENU:=$(WPAN_MENU)
+ TITLE:=MAC-802.15.4 support
+ DEPENDS:=+kmod-ieee802154 +kmod-crypto-aead +kmod-lib-crc-ccitt
+ KCONFIG:= \
+ CONFIG_MAC802154 \
+ CONFIG_IEEE802154_DRIVERS=y
+ FILES:=$(LINUX_DIR)/net/mac802154/mac802154.ko
+ AUTOLOAD:=$(call AutoLoad,91,mac802154)
+endef
+
+define KernelPackage/mac802154/description
+ This option enables the hardware independent IEEE 802.15.4
+ networking stack for SoftMAC devices (the ones implementing
+ only PHY level of IEEE 802.15.4 standard).
+
+ Note: this implementation is neither certified, nor feature
+ complete! Compatibility with other implementations hasn't
+ been tested yet!
+endef
+
+$(eval $(call KernelPackage,mac802154))
+
+define KernelPackage/fakelb
+ SUBMENU:=$(WPAN_MENU)
+ TITLE:=Fake LR-WPAN driver
+ DEPENDS:=+kmod-mac802154
+ KCONFIG:=CONFIG_IEEE802154_FAKELB
+ FILES:=$(LINUX_DIR)/drivers/net/ieee802154/fakelb.ko
+ AUTOLOAD:=$(call AutoLoad,92,fakelb)
+endef
+
+define KernelPackage/fakelb/description
+ Say Y here to enable the fake driver that can emulate a net
+ of several interconnected radio devices.
+endef
+
+$(eval $(call KernelPackage,fakelb))
+
+define KernelPackage/atusb
+ SUBMENU:=$(WPAN_MENU)
+ TITLE:=ATUSB transceiver driver
+ DEPENDS:=@USB_SUPPORT +kmod-usb-core +kmod-mac802154
+ KCONFIG:=CONFIG_IEEE802154_ATUSB
+ FILES:=$(LINUX_DIR)/drivers/net/ieee802154/atusb.ko
+ AUTOLOAD:=$(call AutoProbe,atusb)
+endef
+
+$(eval $(call KernelPackage,atusb))
+
+define KernelPackage/at86rf230
+ SUBMENU:=$(WPAN_MENU)
+ TITLE:=AT86RF230 transceiver driver
+ DEPENDS:=+kmod-mac802154 +kmod-regmap-spi
+ KCONFIG:=CONFIG_IEEE802154_AT86RF230 \
+ CONFIG_IEEE802154_AT86RF230_DEBUGFS=n \
+ CONFIG_SPI=y \
+ CONFIG_SPI_MASTER=y
+ FILES:=$(LINUX_DIR)/drivers/net/ieee802154/at86rf230.ko
+ AUTOLOAD:=$(call AutoProbe,at86rf230)
+endef
+
+$(eval $(call KernelPackage,at86rf230))
+
+define KernelPackage/mrf24j40
+ SUBMENU:=$(WPAN_MENU)
+ TITLE:=MRF24J40 transceiver driver
+ DEPENDS:=+kmod-mac802154 +kmod-regmap-spi
+ KCONFIG:=CONFIG_IEEE802154_MRF24J40 \
+ CONFIG_SPI=y \
+ CONFIG_SPI_MASTER=y
+ FILES:=$(LINUX_DIR)/drivers/net/ieee802154/mrf24j40.ko
+ AUTOLOAD:=$(call AutoProbe,mrf24j40)
+endef
+
+$(eval $(call KernelPackage,mrf24j40))
+
+define KernelPackage/cc2520
+ SUBMENU:=$(WPAN_MENU)
+ TITLE:=CC2520 transceiver driver
+ DEPENDS:=+kmod-mac802154
+ KCONFIG:=CONFIG_IEEE802154_CC2520 \
+ CONFIG_SPI=y \
+ CONFIG_SPI_MASTER=y
+ FILES:=$(LINUX_DIR)/drivers/net/ieee802154/cc2520.ko
+ AUTOLOAD:=$(call AutoProbe,cc2520)
+endef
+
+$(eval $(call KernelPackage,cc2520))
+
+
+define KernelPackage/ca8210
+ SUBMENU:=$(WPAN_MENU)
+ TITLE:=CA8210 transceiver driver
+ DEPENDS:=+kmod-mac802154
+ KCONFIG:=CONFIG_IEEE802154_CA8210 \
+ CONFIG_SPI=y \
+ CONFIG_SPI_MASTER=y \
+ CONFIG_IEEE802154_CA8210_DEBUGFS=n
+ FILES:=$(LINUX_DIR)/drivers/net/ieee802154/ca8210.ko
+ AUTOLOAD:=$(call AutoProbe,ca8210)
+endef
+
+$(eval $(call KernelPackage,ca8210))
+
+
+define KernelPackage/ieee802154-6lowpan
+ SUBMENU:=$(WPAN_MENU)
+ TITLE:= 6LoWPAN support over IEEE-802.15.4
+ DEPENDS:=+kmod-6lowpan +kmod-ieee802154
+ KCONFIG:=CONFIG_IEEE802154_6LOWPAN
+ FILES:= \
+ $(LINUX_DIR)/net/ieee802154/6lowpan/ieee802154_6lowpan.ko
+ AUTOLOAD:=$(call AutoLoad,91,ieee802154_6lowpan)
+endef
+
+define KernelPackage/ieee802154-6lowpan/description
+ IPv6 compression over IEEE 802.15.4
+endef
+
+$(eval $(call KernelPackage,ieee802154-6lowpan))