diff options
author | Hante Meuleman <meuleman@broadcom.com> | 2014-10-28 09:56:15 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-10-30 15:26:45 -0400 |
commit | 76b5a96d1df10535c7e2e7f876f2230e243aa7b8 (patch) | |
tree | 839b667218f1274abbd83a2071f2087a9c7b7cee /drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c | |
parent | d14f78b990ec4d66e9509bc42a6fce2d217880ec (diff) |
brcmfmac: (clean) Rename dhd_common.c in common.c
Reviewed-by: Arend Van Spriel <arend@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-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/net/wireless/brcm80211/brcmfmac/dhd_common.c')
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c | 219 |
1 files changed, 0 insertions, 219 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c deleted file mode 100644 index 7723994136a1..000000000000 --- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c +++ /dev/null | |||
@@ -1,219 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2010 Broadcom Corporation | ||
3 | * | ||
4 | * Permission to use, copy, modify, and/or distribute this software for any | ||
5 | * purpose with or without fee is hereby granted, provided that the above | ||
6 | * copyright notice and this permission notice appear in all copies. | ||
7 | * | ||
8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY | ||
11 | * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION | ||
13 | * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN | ||
14 | * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
15 | */ | ||
16 | |||
17 | #include <linux/kernel.h> | ||
18 | #include <linux/string.h> | ||
19 | #include <linux/netdevice.h> | ||
20 | #include <brcmu_wifi.h> | ||
21 | #include <brcmu_utils.h> | ||
22 | #include "dhd.h" | ||
23 | #include "bus.h" | ||
24 | #include "debug.h" | ||
25 | #include "fwil.h" | ||
26 | #include "fwil_types.h" | ||
27 | #include "tracepoint.h" | ||
28 | |||
29 | #define BRCMF_DEFAULT_BCN_TIMEOUT 3 | ||
30 | #define BRCMF_DEFAULT_SCAN_CHANNEL_TIME 40 | ||
31 | #define BRCMF_DEFAULT_SCAN_UNASSOC_TIME 40 | ||
32 | |||
33 | /* boost value for RSSI_DELTA in preferred join selection */ | ||
34 | #define BRCMF_JOIN_PREF_RSSI_BOOST 8 | ||
35 | |||
36 | |||
37 | bool brcmf_c_prec_enq(struct device *dev, struct pktq *q, | ||
38 | struct sk_buff *pkt, int prec) | ||
39 | { | ||
40 | struct sk_buff *p; | ||
41 | int eprec = -1; /* precedence to evict from */ | ||
42 | bool discard_oldest; | ||
43 | struct brcmf_bus *bus_if = dev_get_drvdata(dev); | ||
44 | struct brcmf_pub *drvr = bus_if->drvr; | ||
45 | |||
46 | /* Fast case, precedence queue is not full and we are also not | ||
47 | * exceeding total queue length | ||
48 | */ | ||
49 | if (!pktq_pfull(q, prec) && !pktq_full(q)) { | ||
50 | brcmu_pktq_penq(q, prec, pkt); | ||
51 | return true; | ||
52 | } | ||
53 | |||
54 | /* Determine precedence from which to evict packet, if any */ | ||
55 | if (pktq_pfull(q, prec)) | ||
56 | eprec = prec; | ||
57 | else if (pktq_full(q)) { | ||
58 | p = brcmu_pktq_peek_tail(q, &eprec); | ||
59 | if (eprec > prec) | ||
60 | return false; | ||
61 | } | ||
62 | |||
63 | /* Evict if needed */ | ||
64 | if (eprec >= 0) { | ||
65 | /* Detect queueing to unconfigured precedence */ | ||
66 | discard_oldest = ac_bitmap_tst(drvr->wme_dp, eprec); | ||
67 | if (eprec == prec && !discard_oldest) | ||
68 | return false; /* refuse newer (incoming) packet */ | ||
69 | /* Evict packet according to discard policy */ | ||
70 | p = discard_oldest ? brcmu_pktq_pdeq(q, eprec) : | ||
71 | brcmu_pktq_pdeq_tail(q, eprec); | ||
72 | if (p == NULL) | ||
73 | brcmf_err("brcmu_pktq_penq() failed, oldest %d\n", | ||
74 | discard_oldest); | ||
75 | |||
76 | brcmu_pkt_buf_free_skb(p); | ||
77 | } | ||
78 | |||
79 | /* Enqueue */ | ||
80 | p = brcmu_pktq_penq(q, prec, pkt); | ||
81 | if (p == NULL) | ||
82 | brcmf_err("brcmu_pktq_penq() failed\n"); | ||
83 | |||
84 | return p != NULL; | ||
85 | } | ||
86 | |||
87 | int brcmf_c_preinit_dcmds(struct brcmf_if *ifp) | ||
88 | { | ||
89 | s8 eventmask[BRCMF_EVENTING_MASK_LEN]; | ||
90 | u8 buf[BRCMF_DCMD_SMLEN]; | ||
91 | struct brcmf_join_pref_params join_pref_params[2]; | ||
92 | char *ptr; | ||
93 | s32 err; | ||
94 | |||
95 | /* retreive mac address */ | ||
96 | err = brcmf_fil_iovar_data_get(ifp, "cur_etheraddr", ifp->mac_addr, | ||
97 | sizeof(ifp->mac_addr)); | ||
98 | if (err < 0) { | ||
99 | brcmf_err("Retreiving cur_etheraddr failed, %d\n", | ||
100 | err); | ||
101 | goto done; | ||
102 | } | ||
103 | memcpy(ifp->drvr->mac, ifp->mac_addr, sizeof(ifp->drvr->mac)); | ||
104 | |||
105 | /* query for 'ver' to get version info from firmware */ | ||
106 | memset(buf, 0, sizeof(buf)); | ||
107 | strcpy(buf, "ver"); | ||
108 | err = brcmf_fil_iovar_data_get(ifp, "ver", buf, sizeof(buf)); | ||
109 | if (err < 0) { | ||
110 | brcmf_err("Retreiving version information failed, %d\n", | ||
111 | err); | ||
112 | goto done; | ||
113 | } | ||
114 | ptr = (char *)buf; | ||
115 | strsep(&ptr, "\n"); | ||
116 | |||
117 | /* Print fw version info */ | ||
118 | brcmf_err("Firmware version = %s\n", buf); | ||
119 | |||
120 | /* locate firmware version number for ethtool */ | ||
121 | ptr = strrchr(buf, ' ') + 1; | ||
122 | strlcpy(ifp->drvr->fwver, ptr, sizeof(ifp->drvr->fwver)); | ||
123 | |||
124 | /* set mpc */ | ||
125 | err = brcmf_fil_iovar_int_set(ifp, "mpc", 1); | ||
126 | if (err) { | ||
127 | brcmf_err("failed setting mpc\n"); | ||
128 | goto done; | ||
129 | } | ||
130 | |||
131 | /* | ||
132 | * Setup timeout if Beacons are lost and roam is off to report | ||
133 | * link down | ||
134 | */ | ||
135 | err = brcmf_fil_iovar_int_set(ifp, "bcn_timeout", | ||
136 | BRCMF_DEFAULT_BCN_TIMEOUT); | ||
137 | if (err) { | ||
138 | brcmf_err("bcn_timeout error (%d)\n", err); | ||
139 | goto done; | ||
140 | } | ||
141 | |||
142 | /* Enable/Disable build-in roaming to allowed ext supplicant to take | ||
143 | * of romaing | ||
144 | */ | ||
145 | err = brcmf_fil_iovar_int_set(ifp, "roam_off", 1); | ||
146 | if (err) { | ||
147 | brcmf_err("roam_off error (%d)\n", err); | ||
148 | goto done; | ||
149 | } | ||
150 | |||
151 | /* Setup join_pref to select target by RSSI(with boost on 5GHz) */ | ||
152 | join_pref_params[0].type = BRCMF_JOIN_PREF_RSSI_DELTA; | ||
153 | join_pref_params[0].len = 2; | ||
154 | join_pref_params[0].rssi_gain = BRCMF_JOIN_PREF_RSSI_BOOST; | ||
155 | join_pref_params[0].band = WLC_BAND_5G; | ||
156 | join_pref_params[1].type = BRCMF_JOIN_PREF_RSSI; | ||
157 | join_pref_params[1].len = 2; | ||
158 | join_pref_params[1].rssi_gain = 0; | ||
159 | join_pref_params[1].band = 0; | ||
160 | err = brcmf_fil_iovar_data_set(ifp, "join_pref", join_pref_params, | ||
161 | sizeof(join_pref_params)); | ||
162 | if (err) | ||
163 | brcmf_err("Set join_pref error (%d)\n", err); | ||
164 | |||
165 | /* Setup event_msgs, enable E_IF */ | ||
166 | err = brcmf_fil_iovar_data_get(ifp, "event_msgs", eventmask, | ||
167 | BRCMF_EVENTING_MASK_LEN); | ||
168 | if (err) { | ||
169 | brcmf_err("Get event_msgs error (%d)\n", err); | ||
170 | goto done; | ||
171 | } | ||
172 | setbit(eventmask, BRCMF_E_IF); | ||
173 | err = brcmf_fil_iovar_data_set(ifp, "event_msgs", eventmask, | ||
174 | BRCMF_EVENTING_MASK_LEN); | ||
175 | if (err) { | ||
176 | brcmf_err("Set event_msgs error (%d)\n", err); | ||
177 | goto done; | ||
178 | } | ||
179 | |||
180 | /* Setup default scan channel time */ | ||
181 | err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_SCAN_CHANNEL_TIME, | ||
182 | BRCMF_DEFAULT_SCAN_CHANNEL_TIME); | ||
183 | if (err) { | ||
184 | brcmf_err("BRCMF_C_SET_SCAN_CHANNEL_TIME error (%d)\n", | ||
185 | err); | ||
186 | goto done; | ||
187 | } | ||
188 | |||
189 | /* Setup default scan unassoc time */ | ||
190 | err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_SCAN_UNASSOC_TIME, | ||
191 | BRCMF_DEFAULT_SCAN_UNASSOC_TIME); | ||
192 | if (err) { | ||
193 | brcmf_err("BRCMF_C_SET_SCAN_UNASSOC_TIME error (%d)\n", | ||
194 | err); | ||
195 | goto done; | ||
196 | } | ||
197 | |||
198 | /* do bus specific preinit here */ | ||
199 | err = brcmf_bus_preinit(ifp->drvr->bus_if); | ||
200 | done: | ||
201 | return err; | ||
202 | } | ||
203 | |||
204 | #if defined(CONFIG_BRCM_TRACING) || defined(CONFIG_BRCMDBG) | ||
205 | void __brcmf_dbg(u32 level, const char *func, const char *fmt, ...) | ||
206 | { | ||
207 | struct va_format vaf = { | ||
208 | .fmt = fmt, | ||
209 | }; | ||
210 | va_list args; | ||
211 | |||
212 | va_start(args, fmt); | ||
213 | vaf.va = &args; | ||
214 | if (brcmf_msg_level & level) | ||
215 | pr_debug("%s %pV", func, &vaf); | ||
216 | trace_brcmf_dbg(level, func, &vaf); | ||
217 | va_end(args); | ||
218 | } | ||
219 | #endif | ||