diff options
| author | Arend van Spriel <arend@broadcom.com> | 2012-03-02 16:55:48 -0500 |
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2012-03-05 15:53:57 -0500 |
| commit | 549040abbc03e87bdee2964fea5e4c827471d4df (patch) | |
| tree | bd05d9ba08355151637d79e180d95fc260fcf95f | |
| parent | 1d9c1796bc448d76429e0937ef69e4f29cd1adad (diff) | |
brcm80211: fmac: initialize host interface drivers regardless result
The module init function of brcmfmac calls init functions for SDIO and
USB doing driver registration. This patch removes terminating the module
init when a driver registration for one host interface fails.
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
4 files changed, 8 insertions, 18 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c index 83ca3cc2cccb..4688904908ec 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c | |||
| @@ -604,7 +604,7 @@ void brcmf_sdio_exit(void) | |||
| 604 | sdio_unregister_driver(&brcmf_sdmmc_driver); | 604 | sdio_unregister_driver(&brcmf_sdmmc_driver); |
| 605 | } | 605 | } |
| 606 | 606 | ||
| 607 | int brcmf_sdio_init(void) | 607 | void brcmf_sdio_init(void) |
| 608 | { | 608 | { |
| 609 | int ret; | 609 | int ret; |
| 610 | 610 | ||
| @@ -614,6 +614,4 @@ int brcmf_sdio_init(void) | |||
| 614 | 614 | ||
| 615 | if (ret) | 615 | if (ret) |
| 616 | brcmf_dbg(ERROR, "sdio_register_driver failed: %d\n", ret); | 616 | brcmf_dbg(ERROR, "sdio_register_driver failed: %d\n", ret); |
| 617 | |||
| 618 | return ret; | ||
| 619 | } | 617 | } |
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h b/drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h index b7671b30692f..366916494be4 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h +++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h | |||
| @@ -108,11 +108,11 @@ extern int brcmf_add_if(struct device *dev, int ifidx, | |||
| 108 | 108 | ||
| 109 | #ifdef CONFIG_BRCMFMAC_SDIO | 109 | #ifdef CONFIG_BRCMFMAC_SDIO |
| 110 | extern void brcmf_sdio_exit(void); | 110 | extern void brcmf_sdio_exit(void); |
| 111 | extern int brcmf_sdio_init(void); | 111 | extern void brcmf_sdio_init(void); |
| 112 | #endif | 112 | #endif |
| 113 | #ifdef CONFIG_BRCMFMAC_USB | 113 | #ifdef CONFIG_BRCMFMAC_USB |
| 114 | extern void brcmf_usb_exit(void); | 114 | extern void brcmf_usb_exit(void); |
| 115 | extern int brcmf_usb_init(void); | 115 | extern void brcmf_usb_init(void); |
| 116 | #endif | 116 | #endif |
| 117 | 117 | ||
| 118 | #endif /* _BRCMF_BUS_H_ */ | 118 | #endif /* _BRCMF_BUS_H_ */ |
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c index c4da05817443..e7345569e9de 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c | |||
| @@ -1183,21 +1183,13 @@ exit: | |||
| 1183 | 1183 | ||
| 1184 | static int __init brcmfmac_init(void) | 1184 | static int __init brcmfmac_init(void) |
| 1185 | { | 1185 | { |
| 1186 | int ret = 0; | ||
| 1187 | |||
| 1188 | #ifdef CONFIG_BRCMFMAC_SDIO | 1186 | #ifdef CONFIG_BRCMFMAC_SDIO |
| 1189 | ret = brcmf_sdio_init(); | 1187 | brcmf_sdio_init(); |
| 1190 | if (ret) | ||
| 1191 | goto fail; | ||
| 1192 | #endif | 1188 | #endif |
| 1193 | #ifdef CONFIG_BRCMFMAC_USB | 1189 | #ifdef CONFIG_BRCMFMAC_USB |
| 1194 | ret = brcmf_usb_init(); | 1190 | brcmf_usb_init(); |
| 1195 | if (ret) | ||
| 1196 | goto fail; | ||
| 1197 | #endif | 1191 | #endif |
| 1198 | 1192 | return 0; | |
| 1199 | fail: | ||
| 1200 | return ret; | ||
| 1201 | } | 1193 | } |
| 1202 | 1194 | ||
| 1203 | static void __exit brcmfmac_exit(void) | 1195 | static void __exit brcmfmac_exit(void) |
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/usb.c b/drivers/net/wireless/brcm80211/brcmfmac/usb.c index a2a0c45201ac..82364223e817 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/usb.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/usb.c | |||
| @@ -1615,7 +1615,7 @@ void brcmf_usb_exit(void) | |||
| 1615 | g_image.len = 0; | 1615 | g_image.len = 0; |
| 1616 | } | 1616 | } |
| 1617 | 1617 | ||
| 1618 | int brcmf_usb_init(void) | 1618 | void brcmf_usb_init(void) |
| 1619 | { | 1619 | { |
| 1620 | return usb_register(&brcmf_usbdrvr); | 1620 | usb_register(&brcmf_usbdrvr); |
| 1621 | } | 1621 | } |
