summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFranky Lin <frankyl@broadcom.com>2011-08-08 15:58:36 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2011-08-23 13:00:05 -0700
commit9917124f23210da0d07491b33e7eae004f908f78 (patch)
tree882b5df78e5131f774789d2d3b9c809ef595a519
parent0f188ea3d9c8457cdc788bb509929908b80efe46 (diff)
downloadop-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.c32
-rw-r--r--drivers/staging/brcm80211/brcmfmac/sdio_host.h3
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);
OpenPOWER on IntegriCloud