diff options
author | Franky Lin <frankyl@broadcom.com> | 2011-08-08 15:58:36 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-08-23 13:00:05 -0700 |
commit | 9917124f23210da0d07491b33e7eae004f908f78 (patch) | |
tree | 882b5df78e5131f774789d2d3b9c809ef595a519 | |
parent | 0f188ea3d9c8457cdc788bb509929908b80efe46 (diff) | |
download | op-kernel-dev-9917124f23210da0d07491b33e7eae004f908f78.zip op-kernel-dev-9917124f23210da0d07491b33e7eae004f908f78.tar.gz |
staging: brcm80211: absorb brcmf_sdcard_detach into brcmf_sdio_remove
To increase code readability of brcmfmac
Reviewed-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | drivers/staging/brcm80211/brcmfmac/bcmsdh.c | 32 | ||||
-rw-r--r-- | drivers/staging/brcm80211/brcmfmac/sdio_host.h | 3 |
2 files changed, 14 insertions, 21 deletions
diff --git a/drivers/staging/brcm80211/brcmfmac/bcmsdh.c b/drivers/staging/brcm80211/brcmfmac/bcmsdh.c index 6f88bd2..0cd449d 100644 --- a/drivers/staging/brcm80211/brcmfmac/bcmsdh.c +++ b/drivers/staging/brcm80211/brcmfmac/bcmsdh.c @@ -57,19 +57,6 @@ static struct brcmf_sdioh_driver drvinfo = { NULL, NULL }; module_param(sd_f2_blocksize, int, 0); -int brcmf_sdcard_detach(struct brcmf_sdio_card *card) -{ - if (card != NULL) { - if (card->sdioh) { - brcmf_sdioh_detach(card->sdioh); - card->sdioh = NULL; - } - kfree(card); - } - - return 0; -} - int brcmf_sdcard_iovar_op(struct brcmf_sdio_card *card, const char *name, void *params, int plen, void *arg, int len, bool set) @@ -441,7 +428,6 @@ int brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev) sdiodev->card->sdioh = brcmf_sdioh_attach((void *)0); if (!sdiodev->card->sdioh) { - brcmf_sdcard_detach(sdiodev->card); ret = -ENODEV; goto out; } @@ -466,8 +452,8 @@ int brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev) } out: - if ((ret) && (sdiodev->card)) - brcmf_sdcard_detach(sdiodev->card); + if (ret) + brcmf_sdio_remove(sdiodev); return ret; } @@ -475,8 +461,18 @@ EXPORT_SYMBOL(brcmf_sdio_probe); int brcmf_sdio_remove(struct brcmf_sdio_dev *sdiodev) { - drvinfo.detach(sdiodev->bus); - brcmf_sdcard_detach(sdiodev->card); + if (sdiodev->bus) { + drvinfo.detach(sdiodev->bus); + sdiodev->bus = NULL; + } + + if (sdiodev->card) { + if (sdiodev->card->sdioh) + brcmf_sdioh_detach(sdiodev->card->sdioh); + kfree(sdiodev->card); + sdiodev->card = NULL; + } + return 0; } EXPORT_SYMBOL(brcmf_sdio_remove); diff --git a/drivers/staging/brcm80211/brcmfmac/sdio_host.h b/drivers/staging/brcm80211/brcmfmac/sdio_host.h index 68b6843..cf3b8fc 100644 --- a/drivers/staging/brcm80211/brcmfmac/sdio_host.h +++ b/drivers/staging/brcm80211/brcmfmac/sdio_host.h @@ -136,9 +136,6 @@ struct brcmf_sdio_dev { void *bus; }; -/* Detach - freeup resources allocated in attach */ -extern int brcmf_sdcard_detach(struct brcmf_sdio_card *card); - /* Enable/disable SD interrupt */ extern int brcmf_sdcard_intr_enable(struct brcmf_sdio_card *card); extern int brcmf_sdcard_intr_disable(struct brcmf_sdio_card *card); |