aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFranky Lin <frankyl@broadcom.com>2011-11-22 20:21:47 -0500
committerJohn W. Linville <linville@tuxdriver.com>2011-11-28 14:43:36 -0500
commit3392c888bbe6fb939dea952ea90bea4dc969c234 (patch)
treec89559dbc26b8f9e8b00b2679324fd076ea5c578
parent0c094c77ce9c338adc08d6d71b2d92a7761992b8 (diff)
brcm80211: fmac: move module init/exit to sdio layer
This patch is part of the fullmac bus interface refactoring series. It moves the module init/exit code to bus layer. Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Reviewed-by: Alwin Beukers <alwin@broadcom.com> Reviewed-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c19
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h4
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c28
3 files changed, 14 insertions, 37 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c
index adee3057d330..7a2325b2a564 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c
@@ -577,17 +577,26 @@ static struct sdio_driver brcmf_sdmmc_driver = {
577#endif /* CONFIG_PM_SLEEP */ 577#endif /* CONFIG_PM_SLEEP */
578}; 578};
579 579
580/* bus register interface */ 580static void __exit brcmf_sdio_exit(void)
581int brcmf_bus_register(void)
582{ 581{
583 brcmf_dbg(TRACE, "Enter\n"); 582 brcmf_dbg(TRACE, "Enter\n");
584 583
585 return sdio_register_driver(&brcmf_sdmmc_driver); 584 sdio_unregister_driver(&brcmf_sdmmc_driver);
586} 585}
587 586
588void brcmf_bus_unregister(void) 587static int __init brcmf_sdio_init(void)
589{ 588{
589 int ret;
590
590 brcmf_dbg(TRACE, "Enter\n"); 591 brcmf_dbg(TRACE, "Enter\n");
591 592
592 sdio_unregister_driver(&brcmf_sdmmc_driver); 593 ret = sdio_register_driver(&brcmf_sdmmc_driver);
594
595 if (ret)
596 brcmf_dbg(ERROR, "sdio_register_driver failed: %d\n", ret);
597
598 return ret;
593} 599}
600
601module_init(brcmf_sdio_init);
602module_exit(brcmf_sdio_exit);
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h b/drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h
index a249407c9a1b..118216b1ee29 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h
+++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h
@@ -27,10 +27,6 @@
27 * Exported from brcmf bus module (brcmf_usb, brcmf_sdio) 27 * Exported from brcmf bus module (brcmf_usb, brcmf_sdio)
28 */ 28 */
29 29
30/* Indicate (dis)interest in finding dongles. */
31extern int brcmf_bus_register(void);
32extern void brcmf_bus_unregister(void);
33
34/* obtain linux device object providing bus function */ 30/* obtain linux device object providing bus function */
35extern struct device *brcmf_bus_get_device(struct brcmf_bus *bus); 31extern struct device *brcmf_bus_get_device(struct brcmf_bus *bus);
36 32
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
index 62413e861784..73d328027e19 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
@@ -1147,34 +1147,6 @@ void brcmf_detach(struct brcmf_pub *drvr)
1147 } 1147 }
1148} 1148}
1149 1149
1150static void __exit brcmf_module_cleanup(void)
1151{
1152 brcmf_dbg(TRACE, "Enter\n");
1153
1154 brcmf_bus_unregister();
1155}
1156
1157static int __init brcmf_module_init(void)
1158{
1159 int error;
1160
1161 brcmf_dbg(TRACE, "Enter\n");
1162
1163 error = brcmf_bus_register();
1164
1165 if (error) {
1166 brcmf_dbg(ERROR, "brcmf_bus_register failed\n");
1167 goto failed;
1168 }
1169 return 0;
1170
1171failed:
1172 return -EINVAL;
1173}
1174
1175module_init(brcmf_module_init);
1176module_exit(brcmf_module_cleanup);
1177
1178int brcmf_os_proto_block(struct brcmf_pub *drvr) 1150int brcmf_os_proto_block(struct brcmf_pub *drvr)
1179{ 1151{
1180 struct brcmf_info *drvr_priv = drvr->info; 1152 struct brcmf_info *drvr_priv = drvr->info;