Commit d37e0208 authored by Sean MacLennan's avatar Sean MacLennan Committed by Greg Kroah-Hartman

rtl8192e: Split the driver up

This patch splits the current r8192e_pci driver up into six different
drivers: rtllib, rtllib_crypt, rtllib_crypt_ccmp, rtllib_crypt_tkip,
rtllib_crypt_wep, and r8192e_pci.

Now that they are proper modules, the init and exit functions do not
need to be called directly. Also, the rtllib_*_null functions are not
needed since they will be loaded on demand.
Signed-off-by: default avatarSean MacLennan <seanm@seanm.ca>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 3b28499c
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 config RTL8192E
tristate "RealTek RTL8192E Wireless LAN NIC driver" tristate "RealTek RTL8192E Wireless LAN NIC driver"
depends on PCI && WLAN depends on PCI && WLAN && RTLLIB
depends on m depends on m
select WIRELESS_EXT select WIRELESS_EXT
select WEXT_PRIV select WEXT_PRIV
......
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 := \ 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_dev.o \
r8192E_phy.o \ r8192E_phy.o \
r8192E_firmware.o \ r8192E_firmware.o \
r8192E_cmdpkt.o \ r8192E_cmdpkt.o \
r8192E_hwimg.o \ r8192E_hwimg.o \
r8190P_rtl8256.o \ r8190P_rtl8256.o \
rtllib_rx.o \ rtl_cam.o \
rtllib_softmac.o \ rtl_core.o \
rtllib_tx.o \ rtl_debug.o \
rtllib_wx.o \ rtl_dm.o \
rtllib_module.o \ rtl_eeprom.o \
rtllib_softmac_wx.o \ rtl_ethtool.o \
rtl819x_HTProc.o \ rtl_pci.o \
rtl819x_TSProc.o \ rtl_pm.o \
rtl819x_BAProc.o \ rtl_ps.o \
dot11d.o \ rtl_wx.o \
rtllib_crypt.o \
rtllib_crypt_tkip.o \
rtllib_crypt_ccmp.o \
rtllib_crypt_wep.o
obj-$(CONFIG_RTL8192E) += r8192e_pci.o obj-$(CONFIG_RTL8192E) += r8192e_pci.o
......
...@@ -3084,33 +3084,6 @@ bool NicIFDisableNIC(struct net_device *dev) ...@@ -3084,33 +3084,6 @@ bool NicIFDisableNIC(struct net_device *dev)
static int __init rtl8192_pci_module_init(void) 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 "\nLinux kernel driver for RTL8192E WLAN cards\n");
printk(KERN_INFO "Copyright (c) 2007-2008, Realsil Wlan Driver\n"); printk(KERN_INFO "Copyright (c) 2007-2008, Realsil Wlan Driver\n");
...@@ -3129,11 +3102,6 @@ static void __exit rtl8192_pci_module_exit(void) ...@@ -3129,11 +3102,6 @@ static void __exit rtl8192_pci_module_exit(void)
RT_TRACE(COMP_DOWN, "Exiting"); RT_TRACE(COMP_DOWN, "Exiting");
rtl8192_proc_module_remove(); 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) void check_rfctrl_gpio_timer(unsigned long data)
......
...@@ -28,10 +28,6 @@ ...@@ -28,10 +28,6 @@
#include "r8190P_rtl8256.h" /* RTL8225 Radio frontend */ #include "r8190P_rtl8256.h" /* RTL8225 Radio frontend */
#include "r8192E_cmdpkt.h" #include "r8192E_cmdpkt.h"
u32 rt_global_debug_component = \
COMP_ERR ;
EXPORT_SYMBOL(rt_global_debug_component);
/**************************************************************************** /****************************************************************************
-----------------------------PROCFS STUFF------------------------- -----------------------------PROCFS STUFF-------------------------
*****************************************************************************/ *****************************************************************************/
......
...@@ -243,3 +243,8 @@ void __exit rtllib_crypto_deinit(void) ...@@ -243,3 +243,8 @@ void __exit rtllib_crypto_deinit(void)
kfree(hcrypt); kfree(hcrypt);
} }
module_init(rtllib_crypto_init);
module_exit(rtllib_crypto_deinit);
MODULE_LICENSE("GPL");
...@@ -428,11 +428,6 @@ static char *rtllib_ccmp_print_stats(char *p, void *priv) ...@@ -428,11 +428,6 @@ static char *rtllib_ccmp_print_stats(char *p, void *priv)
return p; return p;
} }
void rtllib_ccmp_null(void)
{
return;
}
static struct rtllib_crypto_ops rtllib_crypt_ccmp = { static struct rtllib_crypto_ops rtllib_crypt_ccmp = {
.name = "CCMP", .name = "CCMP",
.init = rtllib_ccmp_init, .init = rtllib_ccmp_init,
...@@ -460,3 +455,8 @@ void __exit rtllib_crypto_ccmp_exit(void) ...@@ -460,3 +455,8 @@ void __exit rtllib_crypto_ccmp_exit(void)
{ {
rtllib_unregister_crypto_ops(&rtllib_crypt_ccmp); rtllib_unregister_crypto_ops(&rtllib_crypt_ccmp);
} }
module_init(rtllib_crypto_ccmp_init);
module_exit(rtllib_crypto_ccmp_exit);
MODULE_LICENSE("GPL");
...@@ -739,7 +739,6 @@ static char *rtllib_tkip_print_stats(char *p, void *priv) ...@@ -739,7 +739,6 @@ static char *rtllib_tkip_print_stats(char *p, void *priv)
return p; return p;
} }
static struct rtllib_crypto_ops rtllib_crypt_tkip = { static struct rtllib_crypto_ops rtllib_crypt_tkip = {
.name = "TKIP", .name = "TKIP",
.init = rtllib_tkip_init, .init = rtllib_tkip_init,
...@@ -768,7 +767,7 @@ void __exit rtllib_crypto_tkip_exit(void) ...@@ -768,7 +767,7 @@ void __exit rtllib_crypto_tkip_exit(void)
rtllib_unregister_crypto_ops(&rtllib_crypt_tkip); rtllib_unregister_crypto_ops(&rtllib_crypt_tkip);
} }
void rtllib_tkip_null(void) module_init(rtllib_crypto_tkip_init);
{ module_exit(rtllib_crypto_tkip_exit);
return;
} MODULE_LICENSE("GPL");
...@@ -256,7 +256,6 @@ static char *prism2_wep_print_stats(char *p, void *priv) ...@@ -256,7 +256,6 @@ static char *prism2_wep_print_stats(char *p, void *priv)
return p; return p;
} }
static struct rtllib_crypto_ops rtllib_crypt_wep = { static struct rtllib_crypto_ops rtllib_crypt_wep = {
.name = "WEP", .name = "WEP",
.init = prism2_wep_init, .init = prism2_wep_init,
...@@ -285,7 +284,7 @@ void __exit rtllib_crypto_wep_exit(void) ...@@ -285,7 +284,7 @@ void __exit rtllib_crypto_wep_exit(void)
rtllib_unregister_crypto_ops(&rtllib_crypt_wep); rtllib_unregister_crypto_ops(&rtllib_crypt_wep);
} }
void rtllib_wep_null(void) module_init(rtllib_crypto_wep_init);
{ module_exit(rtllib_crypto_wep_exit);
return;
} MODULE_LICENSE("GPL");
...@@ -54,6 +54,10 @@ ...@@ -54,6 +54,10 @@
#include "rtllib.h" #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) void _setup_timer(struct timer_list *ptimer, void *fun, unsigned long data)
{ {
ptimer->function = fun; ptimer->function = fun;
...@@ -175,10 +179,6 @@ struct net_device *alloc_rtllib(int sizeof_priv) ...@@ -175,10 +179,6 @@ struct net_device *alloc_rtllib(int sizeof_priv)
ieee->last_packet_time[i] = 0; ieee->last_packet_time[i] = 0;
} }
rtllib_tkip_null();
rtllib_wep_null();
rtllib_ccmp_null();
return dev; return dev;
failed: failed:
...@@ -287,3 +287,8 @@ void __exit rtllib_exit(void) ...@@ -287,3 +287,8 @@ void __exit rtllib_exit(void)
rtllib_proc = NULL; rtllib_proc = NULL;
} }
} }
module_init(rtllib_init);
module_exit(rtllib_exit);
MODULE_LICENSE("GPL");
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment