aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
diff options
context:
space:
mode:
authorFranky Lin <frankyl@broadcom.com>2011-12-16 21:36:56 -0500
committerJohn W. Linville <linville@tuxdriver.com>2011-12-19 14:40:43 -0500
commit5f947ad942a72e7f96942da97d719dd62037dbc2 (patch)
tree547d4bd42f5866dbf8a1df171c151bd5a5b7c48b /drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
parented683c986f6fff6b9d9fe2adc8b11e0b0be7c085 (diff)
brcm80211: fmac: change function brcmf_detach parameter
Change parameter to device pointer for bus layer interface function brcmf_detach. This is part of the fullmac bus interface refactoring. Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Reviewed-by: Arend van Spriel <arend@broadcom.com> Reviewed-by: Alwin Beukers <alwin@broadcom.com> Signed-off-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c')
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c33
1 files changed, 17 insertions, 16 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
index 0440471c083..6b0739b1870 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
@@ -955,7 +955,7 @@ struct brcmf_pub *brcmf_attach(struct brcmf_sdio *bus, uint bus_hdrlen,
955 955
956fail: 956fail:
957 if (drvr) 957 if (drvr)
958 brcmf_detach(drvr); 958 brcmf_detach(dev);
959 959
960 return NULL; 960 return NULL;
961} 961}
@@ -1093,29 +1093,30 @@ static void brcmf_bus_detach(struct brcmf_pub *drvr)
1093 } 1093 }
1094} 1094}
1095 1095
1096void brcmf_detach(struct brcmf_pub *drvr) 1096void brcmf_detach(struct device *dev)
1097{ 1097{
1098 int i;
1099 struct brcmf_bus *bus_if = dev_get_drvdata(dev);
1100 struct brcmf_pub *drvr = bus_if->drvr;
1101
1098 brcmf_dbg(TRACE, "Enter\n"); 1102 brcmf_dbg(TRACE, "Enter\n");
1099 1103
1100 if (drvr) {
1101 int i;
1102 1104
1103 /* make sure primary interface removed last */ 1105 /* make sure primary interface removed last */
1104 for (i = BRCMF_MAX_IFS-1; i > -1; i--) 1106 for (i = BRCMF_MAX_IFS-1; i > -1; i--)
1105 if (drvr->iflist[i]) 1107 if (drvr->iflist[i])
1106 brcmf_del_if(drvr, i); 1108 brcmf_del_if(drvr, i);
1107 1109
1108 cancel_work_sync(&drvr->setmacaddr_work); 1110 cancel_work_sync(&drvr->setmacaddr_work);
1109 cancel_work_sync(&drvr->multicast_work); 1111 cancel_work_sync(&drvr->multicast_work);
1110 1112
1111 brcmf_bus_detach(drvr); 1113 brcmf_bus_detach(drvr);
1112 1114
1113 if (drvr->prot) 1115 if (drvr->prot)
1114 brcmf_proto_detach(drvr); 1116 brcmf_proto_detach(drvr);
1115 1117
1116 drvr->bus_if->drvr = NULL; 1118 bus_if->drvr = NULL;
1117 kfree(drvr); 1119 kfree(drvr);
1118 }
1119} 1120}
1120 1121
1121static int brcmf_get_pend_8021x_cnt(struct brcmf_pub *drvr) 1122static int brcmf_get_pend_8021x_cnt(struct brcmf_pub *drvr)