aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/libertas/cmdresp.c
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2007-12-11 12:42:16 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 18:06:42 -0500
commit6e66f03ff78b23d845920739373b1561c546b13f (patch)
treec190caf119aedbcc07d6020226dfd4637ef44970 /drivers/net/wireless/libertas/cmdresp.c
parenta8bdcd71fd33e4a919f9f0cb32207c644b70853f (diff)
libertas: convert GET_HW_SPEC to a direct command
Signed-off-by: Dan Williams <dcbw@redhat.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/libertas/cmdresp.c')
-rw-r--r--drivers/net/wireless/libertas/cmdresp.c67
1 files changed, 0 insertions, 67 deletions
diff --git a/drivers/net/wireless/libertas/cmdresp.c b/drivers/net/wireless/libertas/cmdresp.c
index 91136697f697..671e323764c8 100644
--- a/drivers/net/wireless/libertas/cmdresp.c
+++ b/drivers/net/wireless/libertas/cmdresp.c
@@ -145,69 +145,6 @@ static int lbs_ret_reg_access(struct lbs_private *priv,
145 return ret; 145 return ret;
146} 146}
147 147
148static int lbs_ret_get_hw_spec(struct lbs_private *priv,
149 struct cmd_ds_command *resp)
150{
151 u32 i;
152 struct cmd_ds_get_hw_spec *hwspec = &resp->params.hwspec;
153 int ret = 0;
154 DECLARE_MAC_BUF(mac);
155
156 lbs_deb_enter(LBS_DEB_CMD);
157
158 priv->fwcapinfo = le32_to_cpu(hwspec->fwcapinfo);
159
160 memcpy(priv->fwreleasenumber, hwspec->fwreleasenumber, 4);
161
162 lbs_deb_cmd("GET_HW_SPEC: firmware release %u.%u.%up%u\n",
163 priv->fwreleasenumber[2], priv->fwreleasenumber[1],
164 priv->fwreleasenumber[0], priv->fwreleasenumber[3]);
165 lbs_deb_cmd("GET_HW_SPEC: MAC addr %s\n",
166 print_mac(mac, hwspec->permanentaddr));
167 lbs_deb_cmd("GET_HW_SPEC: hardware interface 0x%x, hardware spec 0x%04x\n",
168 hwspec->hwifversion, hwspec->version);
169
170 /* Clamp region code to 8-bit since FW spec indicates that it should
171 * only ever be 8-bit, even though the field size is 16-bit. Some firmware
172 * returns non-zero high 8 bits here.
173 */
174 priv->regioncode = le16_to_cpu(hwspec->regioncode) & 0xFF;
175
176 for (i = 0; i < MRVDRV_MAX_REGION_CODE; i++) {
177 /* use the region code to search for the index */
178 if (priv->regioncode == lbs_region_code_to_index[i]) {
179 break;
180 }
181 }
182
183 /* if it's unidentified region code, use the default (USA) */
184 if (i >= MRVDRV_MAX_REGION_CODE) {
185 priv->regioncode = 0x10;
186 lbs_pr_info("unidentified region code; using the default (USA)\n");
187 }
188
189 if (priv->current_addr[0] == 0xff)
190 memmove(priv->current_addr, hwspec->permanentaddr, ETH_ALEN);
191
192 memcpy(priv->dev->dev_addr, priv->current_addr, ETH_ALEN);
193 if (priv->mesh_dev)
194 memcpy(priv->mesh_dev->dev_addr, priv->current_addr, ETH_ALEN);
195
196 if (lbs_set_regiontable(priv, priv->regioncode, 0)) {
197 ret = -1;
198 goto done;
199 }
200
201 if (lbs_set_universaltable(priv, 0)) {
202 ret = -1;
203 goto done;
204 }
205
206done:
207 lbs_deb_enter_args(LBS_DEB_CMD, "ret %d", ret);
208 return ret;
209}
210
211static int lbs_ret_802_11_sleep_params(struct lbs_private *priv, 148static int lbs_ret_802_11_sleep_params(struct lbs_private *priv,
212 struct cmd_ds_command *resp) 149 struct cmd_ds_command *resp)
213{ 150{
@@ -569,10 +506,6 @@ static inline int handle_cmd_response(struct lbs_private *priv,
569 ret = lbs_ret_reg_access(priv, respcmd, resp); 506 ret = lbs_ret_reg_access(priv, respcmd, resp);
570 break; 507 break;
571 508
572 case CMD_RET(CMD_GET_HW_SPEC):
573 ret = lbs_ret_get_hw_spec(priv, resp);
574 break;
575
576 case CMD_RET(CMD_802_11_SCAN): 509 case CMD_RET(CMD_802_11_SCAN):
577 ret = lbs_ret_80211_scan(priv, resp); 510 ret = lbs_ret_80211_scan(priv, resp);
578 break; 511 break;