From 51500bd47b402bd463b4be97a4130118ab7af7f4 Mon Sep 17 00:00:00 2001 From: Arend van Spriel Date: Thu, 9 Feb 2012 21:09:03 +0100 Subject: [PATCH] --- yaml --- r: 290619 b: refs/heads/master c: f3d7cdc3b41804096a9df9c5d7a9439ef192f36a h: refs/heads/master i: 290617: 2afdca8bd96ffbf5c39e8b1dd430628cb0171567 290615: ab3cb2042579dbcffaafcda46df076462acdd97a v: v3 --- [refs] | 2 +- .../brcm80211/brcmfmac/bcmsdh_sdmmc.c | 7 ++---- .../net/wireless/brcm80211/brcmfmac/dhd_bus.h | 6 +++++ .../wireless/brcm80211/brcmfmac/dhd_linux.c | 24 +++++++++++++++++++ 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 3aee85128532..87d16ed1480d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0a332e4678e4e4f0030f10827980c72d32300274 +refs/heads/master: f3d7cdc3b41804096a9df9c5d7a9439ef192f36a diff --git a/trunk/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c b/trunk/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c index 1d2b74d3fa21..83ca3cc2cccb 100644 --- a/trunk/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c +++ b/trunk/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c @@ -597,14 +597,14 @@ static struct sdio_driver brcmf_sdmmc_driver = { #endif /* CONFIG_PM_SLEEP */ }; -static void __exit brcmf_sdio_exit(void) +void brcmf_sdio_exit(void) { brcmf_dbg(TRACE, "Enter\n"); sdio_unregister_driver(&brcmf_sdmmc_driver); } -static int __init brcmf_sdio_init(void) +int brcmf_sdio_init(void) { int ret; @@ -617,6 +617,3 @@ static int __init brcmf_sdio_init(void) return ret; } - -module_init(brcmf_sdio_init); -module_exit(brcmf_sdio_exit); diff --git a/trunk/drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h b/trunk/drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h index 567a966f7634..bc575b4f158e 100644 --- a/trunk/drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h +++ b/trunk/drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h @@ -105,4 +105,10 @@ extern int brcmf_bus_start(struct device *dev); extern int brcmf_add_if(struct device *dev, int ifidx, char *name, u8 *mac_addr); + +#ifdef CONFIG_BRCMFMAC_SDIO +extern void brcmf_sdio_exit(void); +extern int brcmf_sdio_init(void); +#endif + #endif /* _BRCMF_BUS_H_ */ diff --git a/trunk/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c b/trunk/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c index eff0073879c7..ff7fc0e9f807 100644 --- a/trunk/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c +++ b/trunk/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c @@ -1183,3 +1183,27 @@ int brcmf_write_to_file(struct brcmf_pub *drvr, const u8 *buf, int size) return ret; } #endif /* DEBUG */ + +static int __init brcmfmac_init(void) +{ + int ret = 0; + +#ifdef CONFIG_BRCMFMAC_SDIO + ret = brcmf_sdio_init(); + if (ret) + goto fail; +#endif + +fail: + return ret; +} + +static void __exit brcmfmac_exit(void) +{ +#ifdef CONFIG_BRCMFMAC_SDIO + brcmf_sdio_exit(); +#endif +} + +module_init(brcmfmac_init); +module_exit(brcmfmac_exit);