ath - Fix module loading.
authorAntonio Huete Jimenez <tuxillo@quantumachine.net>
Sun, 18 Apr 2010 22:44:54 +0000 (00:44 +0200)
committerAntonio Huete Jimenez <tuxillo@quantumachine.net>
Sun, 18 Apr 2010 22:49:02 +0000 (00:49 +0200)
This registers the modules ath_hal and ath_rate,
so they are properly handled.
Both are now a dependency for if_ath to provide
automatic loading upon if_ath load.
Also 'if_ath_load=YES' on /boot/loader.conf is
fixed with this commit.

sys/dev/netif/ath/ath/if_ath_pci.c
sys/dev/netif/ath/hal/ah_osdep.c
sys/dev/netif/ath/rate_sample/sample.c

index 669b2b8..fbefeab 100644 (file)
@@ -249,4 +249,7 @@ static driver_t ath_pci_driver = {
 static devclass_t ath_devclass;
 DRIVER_MODULE(ath, pci, ath_pci_driver, ath_devclass, 0, 0);
 MODULE_VERSION(ath, 1);
-MODULE_DEPEND(ath, wlan, 1, 1, 1);             /* 802.11 media layer */
+
+MODULE_DEPEND(ath, ath_hal, 1, 1, 1);  /* Atheros HAL */
+MODULE_DEPEND(ath, ath_rate, 1, 1, 1); /* rate control algorithm */
+MODULE_DEPEND(ath, wlan, 1, 1, 1);     /* 802.11 media layer */
index fe4f420..e53ad63 100644 (file)
@@ -356,3 +356,28 @@ ath_hal_assert_failed(const char* filename, int lineno, const char *msg)
        panic("ath_hal_assert");
 }
 #endif /* AH_ASSERT */
+
+/*
+ * Module glue.
+ */
+static int
+ath_hal_modevent(module_t mod, int type, void *unused)
+{
+       switch (type) {
+       case MOD_LOAD:
+               return 0;
+       case MOD_UNLOAD:
+               return 0;
+       }
+
+       return EINVAL;
+}
+
+static moduledata_t ath_hal_mod = {
+       "ath_hal",
+       ath_hal_modevent,
+       0
+};
+
+DECLARE_MODULE(ath_hal, ath_hal_mod, SI_SUB_DRIVERS, SI_ORDER_ANY);
+MODULE_VERSION(ath_hal, 1);
index 465ac72..a1047cd 100644 (file)
@@ -998,3 +998,30 @@ ath_rate_detach(struct ath_ratectrl *arc)
        
        kfree(ssc, M_DEVBUF);
 }
+
+/*
+ * Module glue.
+ */
+static int
+sample_modevent(module_t mod, int type, void *unused)
+{
+       switch (type) {
+       case MOD_LOAD:
+               if (bootverbose)
+                       kprintf("ath_rate: <SampleRate bit-rate selection algorithm>\n");
+               return 0;
+       case MOD_UNLOAD:
+               return 0;
+       }
+       return EINVAL;
+}
+
+static moduledata_t sample_mod = {
+       "ath_rate",
+       sample_modevent,
+       0
+};
+DECLARE_MODULE(ath_rate, sample_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST);
+MODULE_VERSION(ath_rate, 1);
+MODULE_DEPEND(ath_rate, ath_hal, 1, 1, 1);     /* Atheros HAL */
+MODULE_DEPEND(ath_rate, wlan, 1, 1, 1);