Commit d84d99e0 authored by Hante Meuleman's avatar Hante Meuleman Committed by Kalle Valo

brcmfmac: move module init and exit to common

In preparation of module parameters for all devices the module init
and exit routines are moved to the common file.
Reviewed-by: default avatarArend Van Spriel <arend@broadcom.com>
Reviewed-by: default avatarFranky (Zhenhui) Lin <frankyl@broadcom.com>
Reviewed-by: default avatarPieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: default avatarHante Meuleman <meuleman@broadcom.com>
Signed-off-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent e9217b4b
...@@ -28,6 +28,10 @@ ...@@ -28,6 +28,10 @@
#include "tracepoint.h" #include "tracepoint.h"
#include "common.h" #include "common.h"
MODULE_AUTHOR("Broadcom Corporation");
MODULE_DESCRIPTION("Broadcom 802.11 wireless LAN fullmac driver.");
MODULE_LICENSE("Dual BSD/GPL");
const u8 ALLFFMAC[ETH_ALEN] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; const u8 ALLFFMAC[ETH_ALEN] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
#define BRCMF_DEFAULT_SCAN_CHANNEL_TIME 40 #define BRCMF_DEFAULT_SCAN_CHANNEL_TIME 40
...@@ -221,7 +225,7 @@ void __brcmf_dbg(u32 level, const char *func, const char *fmt, ...) ...@@ -221,7 +225,7 @@ void __brcmf_dbg(u32 level, const char *func, const char *fmt, ...)
} }
#endif #endif
void brcmf_mp_attach(void) static void brcmf_mp_attach(void)
{ {
strlcpy(brcmf_mp_global.firmware_path, brcmf_firmware_path, strlcpy(brcmf_mp_global.firmware_path, brcmf_firmware_path,
BRCMF_FW_ALTPATH_LEN); BRCMF_FW_ALTPATH_LEN);
...@@ -249,3 +253,33 @@ void brcmf_mp_device_detach(struct brcmf_pub *drvr) ...@@ -249,3 +253,33 @@ void brcmf_mp_device_detach(struct brcmf_pub *drvr)
kfree(drvr->settings); kfree(drvr->settings);
} }
static int __init brcmfmac_module_init(void)
{
int err;
/* Initialize debug system first */
brcmf_debugfs_init();
#ifdef CONFIG_BRCMFMAC_SDIO
brcmf_sdio_init();
#endif
/* Initialize global module paramaters */
brcmf_mp_attach();
/* Continue the initialization by registering the different busses */
err = brcmf_core_init();
if (err)
brcmf_debugfs_exit();
return err;
}
static void __exit brcmfmac_module_exit(void)
{
brcmf_core_exit();
brcmf_debugfs_exit();
}
module_init(brcmfmac_module_init);
module_exit(brcmfmac_module_exit);
...@@ -89,7 +89,6 @@ struct brcmf_mp_device { ...@@ -89,7 +89,6 @@ struct brcmf_mp_device {
struct cc_translate *country_codes; struct cc_translate *country_codes;
}; };
void brcmf_mp_attach(void);
int brcmf_mp_device_attach(struct brcmf_pub *drvr); int brcmf_mp_device_attach(struct brcmf_pub *drvr);
void brcmf_mp_device_detach(struct brcmf_pub *drvr); void brcmf_mp_device_detach(struct brcmf_pub *drvr);
#ifdef DEBUG #ifdef DEBUG
......
...@@ -38,10 +38,6 @@ ...@@ -38,10 +38,6 @@
#include "pcie.h" #include "pcie.h"
#include "common.h" #include "common.h"
MODULE_AUTHOR("Broadcom Corporation");
MODULE_DESCRIPTION("Broadcom 802.11 wireless LAN fullmac driver.");
MODULE_LICENSE("Dual BSD/GPL");
#define MAX_WAIT_FOR_8021X_TX msecs_to_jiffies(950) #define MAX_WAIT_FOR_8021X_TX msecs_to_jiffies(950)
/* AMPDU rx reordering definitions */ /* AMPDU rx reordering definitions */
...@@ -1422,19 +1418,15 @@ static void brcmf_driver_register(struct work_struct *work) ...@@ -1422,19 +1418,15 @@ static void brcmf_driver_register(struct work_struct *work)
} }
static DECLARE_WORK(brcmf_driver_work, brcmf_driver_register); static DECLARE_WORK(brcmf_driver_work, brcmf_driver_register);
static int __init brcmfmac_module_init(void) int __init brcmf_core_init(void)
{ {
brcmf_debugfs_init();
#ifdef CONFIG_BRCMFMAC_SDIO
brcmf_sdio_init();
#endif
if (!schedule_work(&brcmf_driver_work)) if (!schedule_work(&brcmf_driver_work))
return -EBUSY; return -EBUSY;
return 0; return 0;
} }
static void __exit brcmfmac_module_exit(void) void __exit brcmf_core_exit(void)
{ {
cancel_work_sync(&brcmf_driver_work); cancel_work_sync(&brcmf_driver_work);
...@@ -1447,8 +1439,5 @@ static void __exit brcmfmac_module_exit(void) ...@@ -1447,8 +1439,5 @@ static void __exit brcmfmac_module_exit(void)
#ifdef CONFIG_BRCMFMAC_PCIE #ifdef CONFIG_BRCMFMAC_PCIE
brcmf_pcie_exit(); brcmf_pcie_exit();
#endif #endif
brcmf_debugfs_exit();
} }
module_init(brcmfmac_module_init);
module_exit(brcmfmac_module_exit);
...@@ -227,5 +227,7 @@ void brcmf_txflowblock_if(struct brcmf_if *ifp, ...@@ -227,5 +227,7 @@ void brcmf_txflowblock_if(struct brcmf_if *ifp,
void brcmf_txfinalize(struct brcmf_if *ifp, struct sk_buff *txp, bool success); void brcmf_txfinalize(struct brcmf_if *ifp, struct sk_buff *txp, bool success);
void brcmf_netif_rx(struct brcmf_if *ifp, struct sk_buff *skb); void brcmf_netif_rx(struct brcmf_if *ifp, struct sk_buff *skb);
void brcmf_net_setcarrier(struct brcmf_if *ifp, bool on); void brcmf_net_setcarrier(struct brcmf_if *ifp, bool on);
int __init brcmf_core_init(void);
void __exit brcmf_core_exit(void);
#endif /* BRCMFMAC_CORE_H */ #endif /* BRCMFMAC_CORE_H */
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