diff --git a/package/kernel/linux/modules/wireless.mk b/package/kernel/linux/modules/wireless.mk
index 7b1c663567..826b027134 100644
--- a/package/kernel/linux/modules/wireless.mk
+++ b/package/kernel/linux/modules/wireless.mk
@@ -62,3 +62,88 @@ define KernelPackage/owl-loader/description
 endef
 
 $(eval $(call KernelPackage,owl-loader))
+
+define KernelPackage/net-mac80211/Default
+  SUBMENU:=$(WIRELESS_MENU)
+  URL:=https://wireless.wiki.kernel.org/
+endef
+
+define KernelPackage/net-cfg80211
+  $(call KernelPackage/net-mac80211/Default)
+  TITLE:=cfg80211 - wireless configuration API
+  DEPENDS+= +iw
+  FILES:= $(LINUX_DIR)/net/wireless/cfg80211.ko
+  KCONFIG:=CONFIG_CFG80211 \
+	   CONFIG_CFG80211_INTERNAL_REGDB=y \
+	   CONFIG_NL80211_TESTMODE=y \
+	   CONFIG_CFG80211_DEBUGFS=y \
+	   CONFIG_CFG80211_CRDA_SUPPORT=y
+endef
+
+define KernelPackage/net-cfg80211/description
+cfg80211 is the Linux wireless LAN (802.11) configuration API.
+endef
+
+$(eval $(call KernelPackage,net-cfg80211))
+
+define KernelPackage/net-mac80211
+  $(call KernelPackage/net-mac80211/Default)
+  TITLE:=Linux 802.11 Wireless Networking Stack
+  DEPENDS+= +kmod-net-cfg80211 +hostapd-common +kmod-crypto-aead
+  FILES:= $(LINUX_DIR)/net/mac80211/mac80211.ko
+  MENU:=1
+  KCONFIG:=CONFIG_MAC80211 \
+	   CONFIG_MAC80211_RC_MINSTREL=y \
+	   CONFIG_MAC80211_RC_MINSTREL_HT=y \
+	   CONFIG_MAC80211_RC_MINSTREL_VHT=y \
+	   CONFIG_MAC80211_MESH=y \
+	   CONFIG_MAC80211_LEDS=y \
+	   CONFIG_MAC80211_DEBUGFS=y
+endef
+
+define KernelPackage/net-mac80211/description
+Generic IEEE 802.11 Networking Stack (mac80211)
+endef
+
+$(eval $(call KernelPackage,net-mac80211))
+
+define KernelPackage/net-ath
+  $(call KernelPackage/net-mac80211/Default)
+  TITLE:=Atheros common driver part
+  DEPENDS+= @PCI_SUPPORT||USB_SUPPORT||TARGET_ipq40xx +kmod-net-mac80211
+  FILES:=$(LINUX_DIR)/drivers/net/wireless/ath/ath.ko
+  KCONFIG:=CONFIG_ATH_COMMON
+  MENU:=1
+endef
+
+define KernelPackage/net-ath/description
+ This module contains some common parts needed by Atheros Wireless drivers.
+endef
+
+$(eval $(call KernelPackage,net-ath))
+
+define KernelPackage/net-ath10k
+  $(call KernelPackage/net-mac80211/Default)
+  TITLE:=Atheros 802.11ac wireless cards support
+  URL:=https://wireless.wiki.kernel.org/en/users/Drivers/ath10k
+  KCONFIG:=CONFIG_ATH10K \
+	   CONFIG_ATH10K_PCI \
+	   CONFIG_ATH10K_AHB=y \
+	   CONFIG_ATH10K_DEBUG=y \
+	   CONFIG_ATH10K_DEBUGFS=y \
+	   CONFIG_ATH10K_TRACING=y
+  DEPENDS+= @PCI_SUPPORT +kmod-net-ath +@DRIVER_11N_SUPPORT +@DRIVER_11W_SUPPORT +@KERNEL_RELAY
+  FILES:= \
+        $(LINUX_DIR)/drivers/net/wireless/ath/ath10k/ath10k_core.ko \
+        $(LINUX_DIR)/drivers/net/wireless/ath/ath10k/ath10k_pci.ko
+  AUTOLOAD:=$(call AutoLoad,55,ath10k_core ath10k_pci)
+endef
+
+define KernelPackage/net-ath10k/description
+This module adds support for wireless adapters based on
+Atheros IEEE 802.11ac family of chipsets. For now only
+PCI is supported.
+endef
+
+$(eval $(call KernelPackage,net-ath10k))
+
diff --git a/package/network/services/hostapd/Makefile b/package/network/services/hostapd/Makefile
index 9570b2a8f5..b228a91950 100644
--- a/package/network/services/hostapd/Makefile
+++ b/package/network/services/hostapd/Makefile
@@ -25,8 +25,8 @@ PKG_BUILD_PARALLEL:=1
 
 PKG_CONFIG_DEPENDS:= \
 	CONFIG_WPA_SUPPLICANT_NO_TIMESTAMP_CHECK \
-	CONFIG_PACKAGE_kmod-ath9k \
-	CONFIG_PACKAGE_kmod-cfg80211 \
+	CONFIG_PACKAGE_kmod-net-ath9k \
+	CONFIG_PACKAGE_kmod-net-cfg80211 \
 	CONFIG_PACKAGE_hostapd \
 	CONFIG_PACKAGE_hostapd-mini \
 	CONFIG_WPA_RFKILL_SUPPORT \
@@ -63,8 +63,8 @@ ifneq ($(CONFIG_DRIVER_11N_SUPPORT),)
 endif
 
 DRIVER_MAKEOPTS= \
-	CONFIG_ACS=$(CONFIG_PACKAGE_kmod-cfg80211) \
-	CONFIG_DRIVER_NL80211=$(CONFIG_PACKAGE_kmod-cfg80211) \
+	CONFIG_ACS=$(CONFIG_PACKAGE_kmod-net-cfg80211) \
+	CONFIG_DRIVER_NL80211=$(CONFIG_PACKAGE_kmod-net-cfg80211) \
 	CONFIG_IEEE80211N=$(HOSTAPD_IEEE80211N) \
 	CONFIG_DRIVER_WEXT=$(CONFIG_DRIVER_WEXT_SUPPORT) \
 
@@ -98,7 +98,7 @@ ifdef CONFIG_USE_GLIBC
   TARGET_LDFLAGS_C += -lrt
 endif
 
-DRV_DEPENDS:=+PACKAGE_kmod-cfg80211:libnl-tiny
+DRV_DEPENDS:=+PACKAGE_kmod-net-cfg80211:libnl-tiny
 
 define Package/hostapd/Default
   SECTION:=net
@@ -175,7 +175,7 @@ endef
 define Package/wpad-mesh
 $(call Package/wpad/Default)
   TITLE+= (with 802.11s mesh and SAE support)
-  DEPENDS:=$(DRV_DEPENDS) +libubus +PACKAGE_wpad-mesh:libopenssl @PACKAGE_kmod-cfg80211 @(!TARGET_uml||BROKEN)
+  DEPENDS:=$(DRV_DEPENDS) +libubus +PACKAGE_wpad-mesh:libopenssl @PACKAGE_kmod-net-cfg80211 @(!TARGET_uml||BROKEN)
   VARIANT:=wpad-mesh
 endef
 
@@ -204,7 +204,7 @@ endef
 define Package/wpa-supplicant-p2p
   $(Package/wpa-supplicant)
   TITLE:=WPA Supplicant (with Wi-Fi P2P support)
-  DEPENDS:=$(DRV_DEPENDS) @PACKAGE_kmod-cfg80211
+  DEPENDS:=$(DRV_DEPENDS) @PACKAGE_kmod-net-cfg80211
   CONFLICTS:=wpad wpad-mini wpad-mesh
   VARIANT:=supplicant-p2p
 endef
@@ -216,7 +216,7 @@ endef
 define Package/wpa-supplicant-mesh
   $(Package/wpa-supplicant)
   TITLE:=WPA Supplicant (with 802.11s and SAE)
-  DEPENDS:=$(DRV_DEPENDS) +PACKAGE_wpa-supplicant-mesh:libopenssl @PACKAGE_kmod-cfg80211 @(!TARGET_uml||BROKEN)
+  DEPENDS:=$(DRV_DEPENDS) +PACKAGE_wpa-supplicant-mesh:libopenssl @PACKAGE_kmod-net-cfg80211 @(!TARGET_uml||BROKEN)
   CONFLICTS:=wpad wpad-mesh wpad-mesh
   VARIANT:=supplicant-mesh
 endef
@@ -295,7 +295,7 @@ ifeq ($(findstring supplicant,$(BUILD_VARIANT)),)
   TARGET_LDFLAGS += -lubox -lubus
 endif
 
-ifdef CONFIG_PACKAGE_kmod-cfg80211
+ifdef CONFIG_PACKAGE_kmod-net-cfg80211
   TARGET_LDFLAGS += -lm -lnl-tiny
 endif
 
diff --git a/target/linux/ipq40xx/Makefile b/target/linux/ipq40xx/Makefile
index eb6b402dd9..259f3d566b 100644
--- a/target/linux/ipq40xx/Makefile
+++ b/target/linux/ipq40xx/Makefile
@@ -19,6 +19,6 @@ DEFAULT_PACKAGES += \
 	kmod-leds-gpio kmod-gpio-button-hotplug swconfig kmod-crypto-hw-qce \
 	kmod-usb-core kmod-usb3 kmod-usb-dwc3 kmod-usb-dwc3-of-simple \
 	kmod-usb-phy-qcom-ipq4019 kmod-usb-ledtrig-usbport \
-	kmod-ath10k ath10k-firmware-qca4019 wpad-mini uboot-envtools block-mount
+	kmod-net-ath10k ath10k-firmware-qca4019 wpad-mini uboot-envtools block-mount
 
 $(eval $(call BuildTarget))
diff --git a/target/linux/ipq40xx/config-4.8 b/target/linux/ipq40xx/config-4.8
index 6834d144bc..76605a4e2e 100644
--- a/target/linux/ipq40xx/config-4.8
+++ b/target/linux/ipq40xx/config-4.8
@@ -64,6 +64,9 @@ CONFIG_AUTO_ZRELADDR=y
 CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
 # CONFIG_CACHE_L2X0 is not set
 CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_DEFAULT_PS is not set
+# CONFIG_CFG80211_WEXT is not set
 CONFIG_CLKDEV_LOOKUP=y
 CONFIG_CLKSRC_OF=y
 CONFIG_CLKSRC_PROBE=y
@@ -117,6 +120,8 @@ CONFIG_CRYPTO_WORKQUEUE=y
 CONFIG_CRYPTO_XZ=y
 # CONFIG_CXL_AFU_DRIVER_OPS is not set
 CONFIG_DCACHE_WORD_ACCESS=y
+CONFIG_DEBUG_DEVRES=y
+CONFIG_DEBUG_DRIVER=y
 CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
 # CONFIG_DEBUG_UART_8250 is not set
 # CONFIG_DEBUG_USER is not set
@@ -245,6 +250,7 @@ CONFIG_IRQ_DOMAIN_HIERARCHY=y
 CONFIG_IRQ_FORCED_THREADING=y
 CONFIG_IRQ_WORK=y
 # CONFIG_ISA_BUS_API is not set
+# CONFIG_IWL4965 is not set
 # CONFIG_KS7010 is not set
 # CONFIG_LEDS_IS31FL32XX is not set
 CONFIG_LEDS_TRIGGER_MTD=y
@@ -254,6 +260,8 @@ CONFIG_LOCKUP_DETECTOR=y
 CONFIG_LOCK_SPIN_ON_OWNER=y
 CONFIG_LZO_COMPRESS=y
 CONFIG_LZO_DECOMPRESS=y
+# CONFIG_MAC80211_HWSIM is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
 CONFIG_MAY_USE_DEVLINK=y
 CONFIG_MDIO_BITBANG=y
 CONFIG_MDIO_BOARDINFO=y
@@ -284,6 +292,7 @@ CONFIG_MSM_GCC_8974=y
 CONFIG_MSM_MMCC_8960=y
 CONFIG_MSM_MMCC_8974=y
 # CONFIG_MSM_MMCC_8996 is not set
+# CONFIG_MT7601U is not set
 CONFIG_MTD_CMDLINE_PARTS=y
 CONFIG_MTD_M25P80=y
 # CONFIG_MTD_MT81xx_NOR is not set
@@ -304,6 +313,7 @@ CONFIG_MTD_UBI_GLUEBI=y
 CONFIG_MTD_UBI_WL_THRESHOLD=4096
 CONFIG_MULTI_IRQ_HANDLER=y
 CONFIG_MUTEX_SPIN_ON_OWNER=y
+# CONFIG_MWIFIEX is not set
 # CONFIG_MVNETA_BM is not set
 CONFIG_NEED_DMA_MAP_STATE=y
 CONFIG_NEON=y
@@ -423,6 +433,8 @@ CONFIG_RTC_CLASS=y
 # CONFIG_RTC_DRV_RX6110 is not set
 # CONFIG_RTC_DRV_RX8010 is not set
 CONFIG_RTC_I2C_AND_SPI=y
+# CONFIG_RTL8XXXU is not set
+# CONFIG_RSI_91X is not set
 CONFIG_RWSEM_SPIN_ON_OWNER=y
 CONFIG_RWSEM_XCHGADD_ALGORITHM=y
 CONFIG_SCHED_HRTICK=y
@@ -494,7 +506,14 @@ CONFIG_VIRTIO=y
 # CONFIG_VIRTIO_CONSOLE is not set
 # CONFIG_VIRTIO_NET is not set
 CONFIG_VIRTUALIZATION=y
+# CONFIG_WIRELESS_EXT is not set
+# CONFIG_WEXT_SPY is not set
+# CONFIG_WEXT_PRIV is not set
 CONFIG_WATCHDOG_CORE=y
+# CONFIG_WCN36XX is not set
+# CONFIG_WIL6210 is not set
+# CONFIG_WILC1000_SDIO is not set
+# CONFIG_WILC1000_SPI is not set
 CONFIG_XPS=y
 CONFIG_XZ_DEC_ARM=y
 CONFIG_XZ_DEC_BCJ=y
