diff --git a/package/kernel/broadcom-diag/Makefile b/package/kernel/broadcom-diag/Makefile
index 61b35290fc72ca83bd5fff6bc02e23bfe418b080..939b1cb5fc4b5078a227048fc6ba7ec6df2280d7 100644
--- a/package/kernel/broadcom-diag/Makefile
+++ b/package/kernel/broadcom-diag/Makefile
@@ -18,6 +18,11 @@ define KernelPackage/diag
   DEPENDS:=@TARGET_brcm47xx
   TITLE:=Driver for router LEDs and Buttons
   FILES:=$(PKG_BUILD_DIR)/diag.ko
+  AUTOLOAD:=$(call AutoLoad,5,diag,1)
+endef
+
+define KernelPackage/diag/description
+ Kernel modules for Broadcom LED and Button driver
 endef
 
 define Build/Prepare
diff --git a/package/kernel/linux/modules/hwmon.mk b/package/kernel/linux/modules/hwmon.mk
index 969e8fa3aa7d503e27cc669841c59aa22def55f0..3df70f47bf2712c6363c084edbb5e944f6988df2 100644
--- a/package/kernel/linux/modules/hwmon.mk
+++ b/package/kernel/linux/modules/hwmon.mk
@@ -15,7 +15,7 @@ define KernelPackage/hwmon-core
 	CONFIG_HWMON_DEBUG_CHIP=n
   FILES:= \
 	$(LINUX_DIR)/drivers/hwmon/hwmon.ko
-  AUTOLOAD:=$(call AutoLoad,40,hwmon)
+  AUTOLOAD:=$(call AutoLoad,17,hwmon,1)
 endef
 
 define KernelPackage/hwmon-core/description
diff --git a/package/kernel/linux/modules/netdevices.mk b/package/kernel/linux/modules/netdevices.mk
index 3dec19e3c0ceb179ed9a9d7136f24509450c5a7b..4ae2a281601a9d559572fa2adb7c6b12a0192ba9 100644
--- a/package/kernel/linux/modules/netdevices.mk
+++ b/package/kernel/linux/modules/netdevices.mk
@@ -422,7 +422,7 @@ define KernelPackage/b44
   DEPENDS:=@PCI_SUPPORT +!TARGET_brcm47xx:kmod-ssb
   SUBMENU:=$(NETWORK_DEVICES_MENU)
   FILES:=$(LINUX_DIR)/drivers/net/ethernet/broadcom/b44.ko
-  AUTOLOAD:=$(call AutoLoad,50,b44)
+  AUTOLOAD:=$(call AutoLoad,19,b44,1)
 endef
 
 define KernelPackage/b44/description
@@ -476,7 +476,7 @@ define KernelPackage/tg3
   DEPENDS:=+!TARGET_brcm47xx:kmod-libphy +!LINUX_3_3:kmod-hwmon-core +(LINUX_3_8||LINUX_3_9||LINUX_3_10):kmod-ptp
   SUBMENU:=$(NETWORK_DEVICES_MENU)
   FILES:=$(LINUX_DIR)/drivers/net/ethernet/broadcom/tg3.ko
-  AUTOLOAD:=$(call AutoLoad,50,tg3)
+  AUTOLOAD:=$(call AutoLoad,19,tg3,1)
 endef
 
 define KernelPackage/tg3/description
diff --git a/package/kernel/linux/modules/other.mk b/package/kernel/linux/modules/other.mk
index 94bf5dd6cf858b2a25cb5b71befee406dfb597ff..03cfbc16f5ede40f0dbe0545290ae3d7d63702ad 100644
--- a/package/kernel/linux/modules/other.mk
+++ b/package/kernel/linux/modules/other.mk
@@ -640,7 +640,7 @@ define KernelPackage/pps
   TITLE:=PPS support
   KCONFIG:=CONFIG_PPS
   FILES:=$(LINUX_DIR)/drivers/pps/pps_core.ko
-  AUTOLOAD:=$(call AutoLoad,20,pps_core)
+  AUTOLOAD:=$(call AutoLoad,17,pps_core,1)
 endef
 
 define KernelPacakge/pps/description
@@ -658,7 +658,7 @@ define KernelPackage/ptp
   DEPENDS:=+kmod-pps
   KCONFIG:=CONFIG_PTP_1588_CLOCK
   FILES:=$(LINUX_DIR)/drivers/ptp/ptp.ko
-  AUTOLOAD:=$(call AutoLoad,25,ptp)
+  AUTOLOAD:=$(call AutoLoad,18,ptp,1)
 endef
 
 define KernelPacakge/ptp/description
diff --git a/target/linux/brcm47xx/base-files/lib/preinit/05_init_interfaces_brcm b/target/linux/brcm47xx/base-files/lib/preinit/05_init_interfaces_brcm
index 04992dee16311e76685943b29713c3b7743ffbb7..ac18e0baf2132da2e43668c1c889e63b0d80bb35 100644
--- a/target/linux/brcm47xx/base-files/lib/preinit/05_init_interfaces_brcm
+++ b/target/linux/brcm47xx/base-files/lib/preinit/05_init_interfaces_brcm
@@ -3,14 +3,6 @@
 set_preinit_iface() {
 	ifname=eth0
 
-	insmod diag
-	insmod hwmon
-	insmod pps_core
-	insmod ptp
-	insmod tg3
-	insmod b44
-	insmod bgmac
-
 	# hardware specific overrides
 	case "$(cat /proc/diag/model)" in
 		"Linksys WAP54G V1") ifname=eth1;;
diff --git a/target/linux/brcm47xx/base-files/lib/preinit/05_reset_button_brcm b/target/linux/brcm47xx/base-files/lib/preinit/05_reset_button_brcm
deleted file mode 100644
index 5aa7bc0b1d83f033c27d90ab734c883e793631ca..0000000000000000000000000000000000000000
--- a/target/linux/brcm47xx/base-files/lib/preinit/05_reset_button_brcm
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-enable_reset_button() {
-	insmod diag
-}
-
-boot_hook_add preinit_main enable_reset_button