diff options
author | Arend van Spriel <arend@broadcom.com> | 2013-04-03 06:40:47 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2013-04-03 15:07:08 -0400 |
commit | d9337414e87259fae13693796f7ad897b1b7f8e1 (patch) | |
tree | e38c2373fd1bf2703d68457c4048cc8520d119b7 /drivers | |
parent | 946072383b6f93839e4ff79ffe44cfffa3aeb2d0 (diff) |
brcmfmac: move brcmf_fws_{de,}init() functions
The functions are moved in preparation of later patches.
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Piotr Haber <phaber@broadcom.com>
Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c | 136 |
1 files changed, 68 insertions, 68 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c b/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c index 6da9f82b9b1e..8b09973309c9 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c | |||
@@ -900,74 +900,6 @@ static int brcmf_fws_notify_credit_map(struct brcmf_if *ifp, | |||
900 | return 0; | 900 | return 0; |
901 | } | 901 | } |
902 | 902 | ||
903 | int brcmf_fws_init(struct brcmf_pub *drvr) | ||
904 | { | ||
905 | u32 tlv = 0; | ||
906 | int rc; | ||
907 | |||
908 | /* enable rssi signals */ | ||
909 | if (drvr->fw_signals) | ||
910 | tlv = BRCMF_FWS_FLAGS_RSSI_SIGNALS | | ||
911 | BRCMF_FWS_FLAGS_XONXOFF_SIGNALS | | ||
912 | BRCMF_FWS_FLAGS_CREDIT_STATUS_SIGNALS; | ||
913 | |||
914 | spin_lock_init(&drvr->fws_spinlock); | ||
915 | |||
916 | drvr->fws = kzalloc(sizeof(*(drvr->fws)), GFP_KERNEL); | ||
917 | if (!drvr->fws) { | ||
918 | rc = -ENOMEM; | ||
919 | goto fail; | ||
920 | } | ||
921 | |||
922 | /* set linkage back */ | ||
923 | drvr->fws->drvr = drvr; | ||
924 | drvr->fws->fcmode = fcmode; | ||
925 | |||
926 | /* enable proptxtstatus signaling by default */ | ||
927 | rc = brcmf_fil_iovar_int_set(drvr->iflist[0], "tlv", tlv); | ||
928 | if (rc < 0) { | ||
929 | brcmf_err("failed to set bdcv2 tlv signaling\n"); | ||
930 | goto fail; | ||
931 | } | ||
932 | |||
933 | if (brcmf_fweh_register(drvr, BRCMF_E_FIFO_CREDIT_MAP, | ||
934 | brcmf_fws_notify_credit_map)) { | ||
935 | brcmf_err("register credit map handler failed\n"); | ||
936 | goto fail; | ||
937 | } | ||
938 | |||
939 | brcmf_fws_hanger_init(&drvr->fws->hanger); | ||
940 | |||
941 | /* create debugfs file for statistics */ | ||
942 | brcmf_debugfs_create_fws_stats(drvr, &drvr->fws->stats); | ||
943 | |||
944 | /* TODO: remove upon feature delivery */ | ||
945 | brcmf_err("%s bdcv2 tlv signaling [%x]\n", | ||
946 | drvr->fw_signals ? "enabled" : "disabled", tlv); | ||
947 | return 0; | ||
948 | |||
949 | fail: | ||
950 | /* disable flow control entirely */ | ||
951 | drvr->fw_signals = false; | ||
952 | brcmf_fws_deinit(drvr); | ||
953 | return rc; | ||
954 | } | ||
955 | |||
956 | void brcmf_fws_deinit(struct brcmf_pub *drvr) | ||
957 | { | ||
958 | struct brcmf_fws_info *fws = drvr->fws; | ||
959 | ulong flags; | ||
960 | |||
961 | /* cleanup */ | ||
962 | brcmf_fws_lock(drvr, flags); | ||
963 | brcmf_fws_cleanup(fws, -1); | ||
964 | drvr->fws = NULL; | ||
965 | brcmf_fws_unlock(drvr, flags); | ||
966 | |||
967 | /* free top structure */ | ||
968 | kfree(fws); | ||
969 | } | ||
970 | |||
971 | int brcmf_fws_hdrpull(struct brcmf_pub *drvr, int ifidx, s16 signal_len, | 903 | int brcmf_fws_hdrpull(struct brcmf_pub *drvr, int ifidx, s16 signal_len, |
972 | struct sk_buff *skb) | 904 | struct sk_buff *skb) |
973 | { | 905 | { |
@@ -1287,6 +1219,74 @@ void brcmf_fws_del_interface(struct brcmf_if *ifp) | |||
1287 | kfree(entry); | 1219 | kfree(entry); |
1288 | } | 1220 | } |
1289 | 1221 | ||
1222 | int brcmf_fws_init(struct brcmf_pub *drvr) | ||
1223 | { | ||
1224 | u32 tlv = 0; | ||
1225 | int rc; | ||
1226 | |||
1227 | /* enable rssi signals */ | ||
1228 | if (drvr->fw_signals) | ||
1229 | tlv = BRCMF_FWS_FLAGS_RSSI_SIGNALS | | ||
1230 | BRCMF_FWS_FLAGS_XONXOFF_SIGNALS | | ||
1231 | BRCMF_FWS_FLAGS_CREDIT_STATUS_SIGNALS; | ||
1232 | |||
1233 | spin_lock_init(&drvr->fws_spinlock); | ||
1234 | |||
1235 | drvr->fws = kzalloc(sizeof(*(drvr->fws)), GFP_KERNEL); | ||
1236 | if (!drvr->fws) { | ||
1237 | rc = -ENOMEM; | ||
1238 | goto fail; | ||
1239 | } | ||
1240 | |||
1241 | /* set linkage back */ | ||
1242 | drvr->fws->drvr = drvr; | ||
1243 | drvr->fws->fcmode = fcmode; | ||
1244 | |||
1245 | /* enable proptxtstatus signaling by default */ | ||
1246 | rc = brcmf_fil_iovar_int_set(drvr->iflist[0], "tlv", tlv); | ||
1247 | if (rc < 0) { | ||
1248 | brcmf_err("failed to set bdcv2 tlv signaling\n"); | ||
1249 | goto fail; | ||
1250 | } | ||
1251 | |||
1252 | if (brcmf_fweh_register(drvr, BRCMF_E_FIFO_CREDIT_MAP, | ||
1253 | brcmf_fws_notify_credit_map)) { | ||
1254 | brcmf_err("register credit map handler failed\n"); | ||
1255 | goto fail; | ||
1256 | } | ||
1257 | |||
1258 | brcmf_fws_hanger_init(&drvr->fws->hanger); | ||
1259 | |||
1260 | /* create debugfs file for statistics */ | ||
1261 | brcmf_debugfs_create_fws_stats(drvr, &drvr->fws->stats); | ||
1262 | |||
1263 | /* TODO: remove upon feature delivery */ | ||
1264 | brcmf_err("%s bdcv2 tlv signaling [%x]\n", | ||
1265 | drvr->fw_signals ? "enabled" : "disabled", tlv); | ||
1266 | return 0; | ||
1267 | |||
1268 | fail: | ||
1269 | /* disable flow control entirely */ | ||
1270 | drvr->fw_signals = false; | ||
1271 | brcmf_fws_deinit(drvr); | ||
1272 | return rc; | ||
1273 | } | ||
1274 | |||
1275 | void brcmf_fws_deinit(struct brcmf_pub *drvr) | ||
1276 | { | ||
1277 | struct brcmf_fws_info *fws = drvr->fws; | ||
1278 | ulong flags; | ||
1279 | |||
1280 | /* cleanup */ | ||
1281 | brcmf_fws_lock(drvr, flags); | ||
1282 | brcmf_fws_cleanup(fws, -1); | ||
1283 | drvr->fws = NULL; | ||
1284 | brcmf_fws_unlock(drvr, flags); | ||
1285 | |||
1286 | /* free top structure */ | ||
1287 | kfree(fws); | ||
1288 | } | ||
1289 | |||
1290 | bool brcmf_fws_fc_active(struct brcmf_fws_info *fws) | 1290 | bool brcmf_fws_fc_active(struct brcmf_fws_info *fws) |
1291 | { | 1291 | { |
1292 | if (!fws) | 1292 | if (!fws) |