diff --git a/drivers/staging/rtl8192e/Kconfig b/drivers/staging/rtl8192e/Kconfig index 750c347bfbe1fff91eff3ef34ba6b22dcca76912..44425ce9e8e5547f0243c4f5058f6c227c40b5fc 100644 --- a/drivers/staging/rtl8192e/Kconfig +++ b/drivers/staging/rtl8192e/Kconfig @@ -1,6 +1,52 @@ +config RTLLIB + tristate "Support for rtllib wireless devices" + depends on WLAN && m + default n + ---help--- + If you have a wireless card that uses rtllib, say + Y. Currently the only card is the rtl8192e. + + If unsure, say N. + +config RTLLIB_CRYPTO + tristate "Support for rtllib crypto support" + depends on RTLLIB + default y + ---help--- + CCMP crypto driver for rtllib. + + If you enabled RTLLIB, you want this. + +config RTLLIB_CRYPTO_CCMP + tristate "Support for rtllib CCMP crypto" + depends on RTLLIB && RTLLIB_CRYPTO + default y + ---help--- + CCMP crypto driver for rtllib. + + If you enabled RTLLIB, you want this. + +config RTLLIB_CRYPTO_TKIP + tristate "Support for rtllib TKIP crypto" + depends on RTLLIB && RTLLIB_CRYPTO + default y + ---help--- + TKIP crypto driver for rtllib. + + If you enabled RTLLIB, you want this. + +config RTLLIB_CRYPTO_WEP + tristate "Support for rtllib WEP crypto" + depends on RTLLIB && RTLLIB_CRYPTO + default y + ---help--- + TKIP crypto driver for rtllib. + + If you enabled RTLLIB, you want this. + config RTL8192E tristate "RealTek RTL8192E Wireless LAN NIC driver" - depends on PCI && WLAN + depends on PCI && WLAN && RTLLIB depends on m select WIRELESS_EXT select WEXT_PRIV diff --git a/drivers/staging/rtl8192e/Makefile b/drivers/staging/rtl8192e/Makefile index 04714c4b870052503ba2ff14c072ea16ec5fa252..d16f2ffbf5e6c57e8ab055048e9ad2e84b871f00 100644 --- a/drivers/staging/rtl8192e/Makefile +++ b/drivers/staging/rtl8192e/Makefile @@ -1,34 +1,39 @@ +rtllib-objs := \ + dot11d.o \ + rtllib_module.o \ + rtllib_rx.o \ + rtllib_tx.o \ + rtllib_wx.o \ + rtllib_softmac.o \ + rtllib_softmac_wx.o \ + rtl819x_BAProc.o \ + rtl819x_HTProc.o \ + rtl819x_TSProc.o + +obj-$(CONFIG_RTLLIB) += rtllib.o + +obj-$(CONFIG_RTLLIB_CRYPTO) += rtllib_crypt.o +obj-$(CONFIG_RTLLIB_CRYPTO_CCMP) += rtllib_crypt_ccmp.o +obj-$(CONFIG_RTLLIB_CRYPTO_TKIP) += rtllib_crypt_tkip.o +obj-$(CONFIG_RTLLIB_CRYPTO_WEP) += rtllib_crypt_wep.o + r8192e_pci-objs := \ - rtl_core.o \ - rtl_eeprom.o \ - rtl_ps.o \ - rtl_wx.o \ - rtl_cam.o \ - rtl_dm.o \ - rtl_pm.o \ - rtl_pci.o \ - rtl_debug.o \ - rtl_ethtool.o \ r8192E_dev.o \ r8192E_phy.o \ r8192E_firmware.o \ r8192E_cmdpkt.o \ r8192E_hwimg.o \ r8190P_rtl8256.o \ - rtllib_rx.o \ - rtllib_softmac.o \ - rtllib_tx.o \ - rtllib_wx.o \ - rtllib_module.o \ - rtllib_softmac_wx.o \ - rtl819x_HTProc.o \ - rtl819x_TSProc.o \ - rtl819x_BAProc.o \ - dot11d.o \ - rtllib_crypt.o \ - rtllib_crypt_tkip.o \ - rtllib_crypt_ccmp.o \ - rtllib_crypt_wep.o + rtl_cam.o \ + rtl_core.o \ + rtl_debug.o \ + rtl_dm.o \ + rtl_eeprom.o \ + rtl_ethtool.o \ + rtl_pci.o \ + rtl_pm.o \ + rtl_ps.o \ + rtl_wx.o \ obj-$(CONFIG_RTL8192E) += r8192e_pci.o diff --git a/drivers/staging/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl_core.c index ba15422cc5123e8513426a60f91e9293f14e7339..351504fb775cfca8a24e2c2044071a1f5f8397ed 100644 --- a/drivers/staging/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl_core.c @@ -3084,33 +3084,6 @@ bool NicIFDisableNIC(struct net_device *dev) static int __init rtl8192_pci_module_init(void) { - int ret; - - ret = rtllib_init(); - if (ret) { - printk(KERN_ERR "rtllib_init() failed %d\n", ret); - return ret; - } - ret = rtllib_crypto_init(); - if (ret) { - printk(KERN_ERR "rtllib_crypto_init() failed %d\n", ret); - return ret; - } - ret = rtllib_crypto_tkip_init(); - if (ret) { - printk(KERN_ERR "rtllib_crypto_tkip_init() failed %d\n", ret); - return ret; - } - ret = rtllib_crypto_ccmp_init(); - if (ret) { - printk(KERN_ERR "rtllib_crypto_ccmp_init() failed %d\n", ret); - return ret; - } - ret = rtllib_crypto_wep_init(); - if (ret) { - printk(KERN_ERR "rtllib_crypto_wep_init() failed %d\n", ret); - return ret; - } printk(KERN_INFO "\nLinux kernel driver for RTL8192E WLAN cards\n"); printk(KERN_INFO "Copyright (c) 2007-2008, Realsil Wlan Driver\n"); @@ -3129,11 +3102,6 @@ static void __exit rtl8192_pci_module_exit(void) RT_TRACE(COMP_DOWN, "Exiting"); rtl8192_proc_module_remove(); - rtllib_crypto_tkip_exit(); - rtllib_crypto_ccmp_exit(); - rtllib_crypto_wep_exit(); - rtllib_crypto_deinit(); - rtllib_exit(); } void check_rfctrl_gpio_timer(unsigned long data) diff --git a/drivers/staging/rtl8192e/rtl_debug.c b/drivers/staging/rtl8192e/rtl_debug.c index a876568b44d075cd2c25013f627c41b0c515dc1c..c19b14cd6f7729711f6ada1d7316c0c1692d7843 100644 --- a/drivers/staging/rtl8192e/rtl_debug.c +++ b/drivers/staging/rtl8192e/rtl_debug.c @@ -28,10 +28,6 @@ #include "r8190P_rtl8256.h" /* RTL8225 Radio frontend */ #include "r8192E_cmdpkt.h" -u32 rt_global_debug_component = \ - COMP_ERR ; -EXPORT_SYMBOL(rt_global_debug_component); - /**************************************************************************** -----------------------------PROCFS STUFF------------------------- *****************************************************************************/ diff --git a/drivers/staging/rtl8192e/rtllib_crypt.c b/drivers/staging/rtl8192e/rtllib_crypt.c index c268030d22d54a01ede5f4b5a2a7cb892feeb360..46657121d261310ed7d9b690edf39b4561ebc3ea 100644 --- a/drivers/staging/rtl8192e/rtllib_crypt.c +++ b/drivers/staging/rtl8192e/rtllib_crypt.c @@ -243,3 +243,8 @@ void __exit rtllib_crypto_deinit(void) kfree(hcrypt); } + +module_init(rtllib_crypto_init); +module_exit(rtllib_crypto_deinit); + +MODULE_LICENSE("GPL"); diff --git a/drivers/staging/rtl8192e/rtllib_crypt_ccmp.c b/drivers/staging/rtl8192e/rtllib_crypt_ccmp.c index 63b75045aa6b3b32e2f13b42d6757040029f366c..7b62ab2a563bf978b83ef8cc8e7dae671f227877 100644 --- a/drivers/staging/rtl8192e/rtllib_crypt_ccmp.c +++ b/drivers/staging/rtl8192e/rtllib_crypt_ccmp.c @@ -428,11 +428,6 @@ static char *rtllib_ccmp_print_stats(char *p, void *priv) return p; } -void rtllib_ccmp_null(void) -{ - return; -} - static struct rtllib_crypto_ops rtllib_crypt_ccmp = { .name = "CCMP", .init = rtllib_ccmp_init, @@ -460,3 +455,8 @@ void __exit rtllib_crypto_ccmp_exit(void) { rtllib_unregister_crypto_ops(&rtllib_crypt_ccmp); } + +module_init(rtllib_crypto_ccmp_init); +module_exit(rtllib_crypto_ccmp_exit); + +MODULE_LICENSE("GPL"); diff --git a/drivers/staging/rtl8192e/rtllib_crypt_tkip.c b/drivers/staging/rtl8192e/rtllib_crypt_tkip.c index 70d5001e64604df25989d03630441c44a909e517..9dd402929b2e4ed56c14479359f657cbb22b8b03 100644 --- a/drivers/staging/rtl8192e/rtllib_crypt_tkip.c +++ b/drivers/staging/rtl8192e/rtllib_crypt_tkip.c @@ -739,7 +739,6 @@ static char *rtllib_tkip_print_stats(char *p, void *priv) return p; } - static struct rtllib_crypto_ops rtllib_crypt_tkip = { .name = "TKIP", .init = rtllib_tkip_init, @@ -768,7 +767,7 @@ void __exit rtllib_crypto_tkip_exit(void) rtllib_unregister_crypto_ops(&rtllib_crypt_tkip); } -void rtllib_tkip_null(void) -{ - return; -} +module_init(rtllib_crypto_tkip_init); +module_exit(rtllib_crypto_tkip_exit); + +MODULE_LICENSE("GPL"); diff --git a/drivers/staging/rtl8192e/rtllib_crypt_wep.c b/drivers/staging/rtl8192e/rtllib_crypt_wep.c index 1f1ffb8ea197c0d17224fc1c6658e65f4cf82d76..d06d15dfcbf984ffb51d3b385c3fe38ddb35cd2e 100644 --- a/drivers/staging/rtl8192e/rtllib_crypt_wep.c +++ b/drivers/staging/rtl8192e/rtllib_crypt_wep.c @@ -256,7 +256,6 @@ static char *prism2_wep_print_stats(char *p, void *priv) return p; } - static struct rtllib_crypto_ops rtllib_crypt_wep = { .name = "WEP", .init = prism2_wep_init, @@ -285,7 +284,7 @@ void __exit rtllib_crypto_wep_exit(void) rtllib_unregister_crypto_ops(&rtllib_crypt_wep); } -void rtllib_wep_null(void) -{ - return; -} +module_init(rtllib_crypto_wep_init); +module_exit(rtllib_crypto_wep_exit); + +MODULE_LICENSE("GPL"); diff --git a/drivers/staging/rtl8192e/rtllib_module.c b/drivers/staging/rtl8192e/rtllib_module.c index e306fab4b8e76a3b42e482bfcc486f70218290d7..d5515df136dd6490c5b521755c7e5481265d1a7a 100644 --- a/drivers/staging/rtl8192e/rtllib_module.c +++ b/drivers/staging/rtl8192e/rtllib_module.c @@ -54,6 +54,10 @@ #include "rtllib.h" +u32 rt_global_debug_component = COMP_ERR; +EXPORT_SYMBOL(rt_global_debug_component); + + void _setup_timer(struct timer_list *ptimer, void *fun, unsigned long data) { ptimer->function = fun; @@ -175,10 +179,6 @@ struct net_device *alloc_rtllib(int sizeof_priv) ieee->last_packet_time[i] = 0; } - rtllib_tkip_null(); - rtllib_wep_null(); - rtllib_ccmp_null(); - return dev; failed: @@ -287,3 +287,8 @@ void __exit rtllib_exit(void) rtllib_proc = NULL; } } + +module_init(rtllib_init); +module_exit(rtllib_exit); + +MODULE_LICENSE("GPL");