aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx
diff options
context:
space:
mode:
authorLuciano Coelho <luciano.coelho@nokia.com>2009-11-23 16:22:17 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-11-28 15:04:30 -0500
commit98b5dd5ded8cb59b598b2c0c396100054779eda7 (patch)
tree9b659aed8b6d20827c7138d4845082a3b7f1db4f /drivers/net/wireless/wl12xx
parentcc7defa366ea770efb25add8711defe88862197b (diff)
wl1271: fix radio and general parameters commands
We were missing the command header in the radio and general parameters commands. This was causing them to fail, resulting in problems in the power levels and other PLT-related commands. Also reorganized the command functions, moving from wl1271_init.c to wl1271_cmd.c where it fits better. Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com> Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/wl12xx')
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_cmd.c107
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_cmd.h72
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_init.c110
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_init.h72
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_main.c4
5 files changed, 183 insertions, 182 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1271_cmd.c b/drivers/net/wireless/wl12xx/wl1271_cmd.c
index 990eb01b4c71..886a9bc39cc1 100644
--- a/drivers/net/wireless/wl12xx/wl1271_cmd.c
+++ b/drivers/net/wireless/wl12xx/wl1271_cmd.c
@@ -188,6 +188,113 @@ static int wl1271_cmd_cal(struct wl1271 *wl)
188 return ret; 188 return ret;
189} 189}
190 190
191int wl1271_cmd_general_parms(struct wl1271 *wl)
192{
193 struct wl1271_general_parms_cmd *gen_parms;
194 struct conf_general_parms *g = &wl->conf.init.genparam;
195 int ret;
196
197 gen_parms = kzalloc(sizeof(*gen_parms), GFP_KERNEL);
198 if (!gen_parms)
199 return -ENOMEM;
200
201 gen_parms->test.id = TEST_CMD_INI_FILE_GENERAL_PARAM;
202
203 gen_parms->ref_clk = g->ref_clk;
204 gen_parms->settling_time = g->settling_time;
205 gen_parms->clk_valid_on_wakeup = g->clk_valid_on_wakeup;
206 gen_parms->dc2dcmode = g->dc2dcmode;
207 gen_parms->single_dual_band = g->single_dual_band;
208 gen_parms->tx_bip_fem_autodetect = g->tx_bip_fem_autodetect;
209 gen_parms->tx_bip_fem_manufacturer = g->tx_bip_fem_manufacturer;
210 gen_parms->settings = g->settings;
211
212 ret = wl1271_cmd_test(wl, gen_parms, sizeof(*gen_parms), 0);
213 if (ret < 0)
214 wl1271_warning("CMD_INI_FILE_GENERAL_PARAM failed");
215
216 kfree(gen_parms);
217 return ret;
218}
219
220int wl1271_cmd_radio_parms(struct wl1271 *wl)
221{
222 struct wl1271_radio_parms_cmd *radio_parms;
223 struct conf_radio_parms *r = &wl->conf.init.radioparam;
224 int i, ret;
225
226 radio_parms = kzalloc(sizeof(*radio_parms), GFP_KERNEL);
227 if (!radio_parms)
228 return -ENOMEM;
229
230 radio_parms->test.id = TEST_CMD_INI_FILE_RADIO_PARAM;
231
232 /* Static radio parameters */
233 radio_parms->rx_trace_loss = r->rx_trace_loss;
234 radio_parms->tx_trace_loss = r->tx_trace_loss;
235 memcpy(radio_parms->rx_rssi_and_proc_compens,
236 r->rx_rssi_and_proc_compens,
237 CONF_RSSI_AND_PROCESS_COMPENSATION_SIZE);
238
239 memcpy(radio_parms->rx_trace_loss_5, r->rx_trace_loss_5,
240 CONF_NUMBER_OF_SUB_BANDS_5);
241 memcpy(radio_parms->tx_trace_loss_5, r->tx_trace_loss_5,
242 CONF_NUMBER_OF_SUB_BANDS_5);
243 memcpy(radio_parms->rx_rssi_and_proc_compens_5,
244 r->rx_rssi_and_proc_compens_5,
245 CONF_RSSI_AND_PROCESS_COMPENSATION_SIZE);
246
247 /* Dynamic radio parameters */
248 radio_parms->tx_ref_pd_voltage = cpu_to_le16(r->tx_ref_pd_voltage);
249 radio_parms->tx_ref_power = r->tx_ref_power;
250 radio_parms->tx_offset_db = r->tx_offset_db;
251
252 memcpy(radio_parms->tx_rate_limits_normal, r->tx_rate_limits_normal,
253 CONF_NUMBER_OF_RATE_GROUPS);
254 memcpy(radio_parms->tx_rate_limits_degraded, r->tx_rate_limits_degraded,
255 CONF_NUMBER_OF_RATE_GROUPS);
256
257 memcpy(radio_parms->tx_channel_limits_11b, r->tx_channel_limits_11b,
258 CONF_NUMBER_OF_CHANNELS_2_4);
259 memcpy(radio_parms->tx_channel_limits_ofdm, r->tx_channel_limits_ofdm,
260 CONF_NUMBER_OF_CHANNELS_2_4);
261 memcpy(radio_parms->tx_pdv_rate_offsets, r->tx_pdv_rate_offsets,
262 CONF_NUMBER_OF_RATE_GROUPS);
263 memcpy(radio_parms->tx_ibias, r->tx_ibias, CONF_NUMBER_OF_RATE_GROUPS);
264
265 radio_parms->rx_fem_insertion_loss = r->rx_fem_insertion_loss;
266
267 for (i = 0; i < CONF_NUMBER_OF_SUB_BANDS_5; i++)
268 radio_parms->tx_ref_pd_voltage_5[i] =
269 cpu_to_le16(r->tx_ref_pd_voltage_5[i]);
270 memcpy(radio_parms->tx_ref_power_5, r->tx_ref_power_5,
271 CONF_NUMBER_OF_SUB_BANDS_5);
272 memcpy(radio_parms->tx_offset_db_5, r->tx_offset_db_5,
273 CONF_NUMBER_OF_SUB_BANDS_5);
274 memcpy(radio_parms->tx_rate_limits_normal_5,
275 r->tx_rate_limits_normal_5, CONF_NUMBER_OF_RATE_GROUPS);
276 memcpy(radio_parms->tx_rate_limits_degraded_5,
277 r->tx_rate_limits_degraded_5, CONF_NUMBER_OF_RATE_GROUPS);
278 memcpy(radio_parms->tx_channel_limits_ofdm_5,
279 r->tx_channel_limits_ofdm_5, CONF_NUMBER_OF_CHANNELS_5);
280 memcpy(radio_parms->tx_pdv_rate_offsets_5, r->tx_pdv_rate_offsets_5,
281 CONF_NUMBER_OF_RATE_GROUPS);
282 memcpy(radio_parms->tx_ibias_5, r->tx_ibias_5,
283 CONF_NUMBER_OF_RATE_GROUPS);
284 memcpy(radio_parms->rx_fem_insertion_loss_5,
285 r->rx_fem_insertion_loss_5, CONF_NUMBER_OF_SUB_BANDS_5);
286
287 wl1271_dump(DEBUG_CMD, "TEST_CMD_INI_FILE_RADIO_PARAM: ",
288 radio_parms, sizeof(*radio_parms));
289
290 ret = wl1271_cmd_test(wl, radio_parms, sizeof(*radio_parms), 0);
291 if (ret < 0)
292 wl1271_warning("CMD_INI_FILE_RADIO_PARAM failed");
293
294 kfree(radio_parms);
295 return ret;
296}
297
191int wl1271_cmd_join(struct wl1271 *wl) 298int wl1271_cmd_join(struct wl1271 *wl)
192{ 299{
193 static bool do_cal = true; 300 static bool do_cal = true;
diff --git a/drivers/net/wireless/wl12xx/wl1271_cmd.h b/drivers/net/wireless/wl12xx/wl1271_cmd.h
index 9d7061b3c8a0..b4fa4acb9229 100644
--- a/drivers/net/wireless/wl12xx/wl1271_cmd.h
+++ b/drivers/net/wireless/wl12xx/wl1271_cmd.h
@@ -31,6 +31,8 @@ struct acx_header;
31 31
32int wl1271_cmd_send(struct wl1271 *wl, u16 id, void *buf, size_t len, 32int wl1271_cmd_send(struct wl1271 *wl, u16 id, void *buf, size_t len,
33 size_t res_len); 33 size_t res_len);
34int wl1271_cmd_general_parms(struct wl1271 *wl);
35int wl1271_cmd_radio_parms(struct wl1271 *wl);
34int wl1271_cmd_join(struct wl1271 *wl); 36int wl1271_cmd_join(struct wl1271 *wl);
35int wl1271_cmd_test(struct wl1271 *wl, void *buf, size_t buf_len, u8 answer); 37int wl1271_cmd_test(struct wl1271 *wl, void *buf, size_t buf_len, u8 answer);
36int wl1271_cmd_interrogate(struct wl1271 *wl, u16 id, void *buf, size_t len); 38int wl1271_cmd_interrogate(struct wl1271 *wl, u16 id, void *buf, size_t len);
@@ -418,6 +420,76 @@ enum wl1271_channel_tune_bands {
418#define TEST_CMD_P2G_CAL 0x02 420#define TEST_CMD_P2G_CAL 0x02
419#define TEST_CMD_CHANNEL_TUNE 0x0d 421#define TEST_CMD_CHANNEL_TUNE 0x0d
420#define TEST_CMD_UPDATE_PD_REFERENCE_POINT 0x1d 422#define TEST_CMD_UPDATE_PD_REFERENCE_POINT 0x1d
423#define TEST_CMD_INI_FILE_RADIO_PARAM 0x19
424#define TEST_CMD_INI_FILE_GENERAL_PARAM 0x1E
425
426struct wl1271_general_parms_cmd {
427 struct wl1271_cmd_header header;
428
429 struct wl1271_cmd_test_header test;
430
431 u8 ref_clk;
432 u8 settling_time;
433 u8 clk_valid_on_wakeup;
434 u8 dc2dcmode;
435 u8 single_dual_band;
436
437 u8 tx_bip_fem_autodetect;
438 u8 tx_bip_fem_manufacturer;
439 u8 settings;
440} __attribute__ ((packed));
441
442struct wl1271_radio_parms_cmd {
443 struct wl1271_cmd_header header;
444
445 struct wl1271_cmd_test_header test;
446
447 /* Static radio parameters */
448 /* 2.4GHz */
449 u8 rx_trace_loss;
450 u8 tx_trace_loss;
451 s8 rx_rssi_and_proc_compens[CONF_RSSI_AND_PROCESS_COMPENSATION_SIZE];
452
453 /* 5GHz */
454 u8 rx_trace_loss_5[CONF_NUMBER_OF_SUB_BANDS_5];
455 u8 tx_trace_loss_5[CONF_NUMBER_OF_SUB_BANDS_5];
456 s8 rx_rssi_and_proc_compens_5[CONF_RSSI_AND_PROCESS_COMPENSATION_SIZE];
457
458 /* Dynamic radio parameters */
459 /* 2.4GHz */
460 __le16 tx_ref_pd_voltage;
461 s8 tx_ref_power;
462 s8 tx_offset_db;
463
464 s8 tx_rate_limits_normal[CONF_NUMBER_OF_RATE_GROUPS];
465 s8 tx_rate_limits_degraded[CONF_NUMBER_OF_RATE_GROUPS];
466
467 s8 tx_channel_limits_11b[CONF_NUMBER_OF_CHANNELS_2_4];
468 s8 tx_channel_limits_ofdm[CONF_NUMBER_OF_CHANNELS_2_4];
469 s8 tx_pdv_rate_offsets[CONF_NUMBER_OF_RATE_GROUPS];
470
471 u8 tx_ibias[CONF_NUMBER_OF_RATE_GROUPS];
472 u8 rx_fem_insertion_loss;
473
474 u8 padding2;
475
476 /* 5GHz */
477 __le16 tx_ref_pd_voltage_5[CONF_NUMBER_OF_SUB_BANDS_5];
478 s8 tx_ref_power_5[CONF_NUMBER_OF_SUB_BANDS_5];
479 s8 tx_offset_db_5[CONF_NUMBER_OF_SUB_BANDS_5];
480
481 s8 tx_rate_limits_normal_5[CONF_NUMBER_OF_RATE_GROUPS];
482 s8 tx_rate_limits_degraded_5[CONF_NUMBER_OF_RATE_GROUPS];
483
484 s8 tx_channel_limits_ofdm_5[CONF_NUMBER_OF_CHANNELS_5];
485 s8 tx_pdv_rate_offsets_5[CONF_NUMBER_OF_RATE_GROUPS];
486
487 /* FIXME: this is inconsistent with the types for 2.4GHz */
488 s8 tx_ibias_5[CONF_NUMBER_OF_RATE_GROUPS];
489 s8 rx_fem_insertion_loss_5[CONF_NUMBER_OF_SUB_BANDS_5];
490
491 u8 padding3[2];
492} __attribute__ ((packed));
421 493
422struct wl1271_cmd_cal_channel_tune { 494struct wl1271_cmd_cal_channel_tune {
423 struct wl1271_cmd_header header; 495 struct wl1271_cmd_header header;
diff --git a/drivers/net/wireless/wl12xx/wl1271_init.c b/drivers/net/wireless/wl12xx/wl1271_init.c
index 95ee0368438a..44896accffd4 100644
--- a/drivers/net/wireless/wl12xx/wl1271_init.c
+++ b/drivers/net/wireless/wl12xx/wl1271_init.c
@@ -193,112 +193,6 @@ static int wl1271_init_beacon_broadcast(struct wl1271 *wl)
193 return 0; 193 return 0;
194} 194}
195 195
196int wl1271_init_general_parms(struct wl1271 *wl)
197{
198 struct wl1271_general_parms *gen_parms;
199 struct conf_general_parms *g = &wl->conf.init.genparam;
200 int ret;
201
202 gen_parms = kzalloc(sizeof(*gen_parms), GFP_KERNEL);
203 if (!gen_parms)
204 return -ENOMEM;
205
206 gen_parms->id = TEST_CMD_INI_FILE_GENERAL_PARAM;
207
208 gen_parms->ref_clk = g->ref_clk;
209 gen_parms->settling_time = g->settling_time;
210 gen_parms->clk_valid_on_wakeup = g->clk_valid_on_wakeup;
211 gen_parms->dc2dcmode = g->dc2dcmode;
212 gen_parms->single_dual_band = g->single_dual_band;
213 gen_parms->tx_bip_fem_autodetect = g->tx_bip_fem_autodetect;
214 gen_parms->tx_bip_fem_manufacturer = g->tx_bip_fem_manufacturer;
215 gen_parms->settings = g->settings;
216
217 ret = wl1271_cmd_test(wl, gen_parms, sizeof(*gen_parms), 0);
218 if (ret < 0) {
219 wl1271_warning("CMD_INI_FILE_GENERAL_PARAM failed");
220 return ret;
221 }
222
223 kfree(gen_parms);
224 return 0;
225}
226
227int wl1271_init_radio_parms(struct wl1271 *wl)
228{
229 struct wl1271_radio_parms *radio_parms;
230 struct conf_radio_parms *r = &wl->conf.init.radioparam;
231 int i, ret;
232
233 radio_parms = kzalloc(sizeof(*radio_parms), GFP_KERNEL);
234 if (!radio_parms)
235 return -ENOMEM;
236
237 radio_parms->id = TEST_CMD_INI_FILE_RADIO_PARAM;
238
239 /* Static radio parameters */
240 radio_parms->rx_trace_loss = r->rx_trace_loss;
241 radio_parms->tx_trace_loss = r->tx_trace_loss;
242 memcpy(radio_parms->rx_rssi_and_proc_compens,
243 r->rx_rssi_and_proc_compens,
244 CONF_RSSI_AND_PROCESS_COMPENSATION_SIZE);
245
246 memcpy(radio_parms->rx_trace_loss_5, r->rx_trace_loss_5,
247 CONF_NUMBER_OF_SUB_BANDS_5);
248 memcpy(radio_parms->tx_trace_loss_5, r->tx_trace_loss_5,
249 CONF_NUMBER_OF_SUB_BANDS_5);
250 memcpy(radio_parms->rx_rssi_and_proc_compens_5,
251 r->rx_rssi_and_proc_compens_5,
252 CONF_RSSI_AND_PROCESS_COMPENSATION_SIZE);
253
254 /* Dynamic radio parameters */
255 radio_parms->tx_ref_pd_voltage = cpu_to_le16(r->tx_ref_pd_voltage);
256 radio_parms->tx_ref_power = r->tx_ref_power;
257 radio_parms->tx_offset_db = r->tx_offset_db;
258
259 memcpy(radio_parms->tx_rate_limits_normal, r->tx_rate_limits_normal,
260 CONF_NUMBER_OF_RATE_GROUPS);
261 memcpy(radio_parms->tx_rate_limits_degraded, r->tx_rate_limits_degraded,
262 CONF_NUMBER_OF_RATE_GROUPS);
263
264 memcpy(radio_parms->tx_channel_limits_11b, r->tx_channel_limits_11b,
265 CONF_NUMBER_OF_CHANNELS_2_4);
266 memcpy(radio_parms->tx_channel_limits_ofdm, r->tx_channel_limits_ofdm,
267 CONF_NUMBER_OF_CHANNELS_2_4);
268 memcpy(radio_parms->tx_pdv_rate_offsets, r->tx_pdv_rate_offsets,
269 CONF_NUMBER_OF_RATE_GROUPS);
270 memcpy(radio_parms->tx_ibias, r->tx_ibias, CONF_NUMBER_OF_RATE_GROUPS);
271
272 radio_parms->rx_fem_insertion_loss = r->rx_fem_insertion_loss;
273
274 for (i = 0; i < CONF_NUMBER_OF_SUB_BANDS_5; i++)
275 radio_parms->tx_ref_pd_voltage_5[i] =
276 cpu_to_le16(r->tx_ref_pd_voltage_5[i]);
277 memcpy(radio_parms->tx_ref_power_5, r->tx_ref_power_5,
278 CONF_NUMBER_OF_SUB_BANDS_5);
279 memcpy(radio_parms->tx_offset_db_5, r->tx_offset_db_5,
280 CONF_NUMBER_OF_SUB_BANDS_5);
281 memcpy(radio_parms->tx_rate_limits_normal_5,
282 r->tx_rate_limits_normal_5, CONF_NUMBER_OF_RATE_GROUPS);
283 memcpy(radio_parms->tx_rate_limits_degraded_5,
284 r->tx_rate_limits_degraded_5, CONF_NUMBER_OF_RATE_GROUPS);
285 memcpy(radio_parms->tx_channel_limits_ofdm_5,
286 r->tx_channel_limits_ofdm_5, CONF_NUMBER_OF_CHANNELS_5);
287 memcpy(radio_parms->tx_pdv_rate_offsets_5, r->tx_pdv_rate_offsets_5,
288 CONF_NUMBER_OF_RATE_GROUPS);
289 memcpy(radio_parms->tx_ibias_5, r->tx_ibias_5,
290 CONF_NUMBER_OF_RATE_GROUPS);
291 memcpy(radio_parms->rx_fem_insertion_loss_5,
292 r->rx_fem_insertion_loss_5, CONF_NUMBER_OF_SUB_BANDS_5);
293
294 ret = wl1271_cmd_test(wl, radio_parms, sizeof(*radio_parms), 0);
295 if (ret < 0)
296 wl1271_warning("CMD_INI_FILE_RADIO_PARAM failed");
297
298 kfree(radio_parms);
299 return ret;
300}
301
302int wl1271_hw_init(struct wl1271 *wl) 196int wl1271_hw_init(struct wl1271 *wl)
303{ 197{
304 int ret; 198 int ret;
@@ -306,11 +200,11 @@ int wl1271_hw_init(struct wl1271 *wl)
306 /* FIXME: the following parameter setting functions return error 200 /* FIXME: the following parameter setting functions return error
307 * codes - the reason is so far unknown. The -EIO is therefore 201 * codes - the reason is so far unknown. The -EIO is therefore
308 * ignored for the time being. */ 202 * ignored for the time being. */
309 ret = wl1271_init_general_parms(wl); 203 ret = wl1271_cmd_general_parms(wl);
310 if (ret < 0 && ret != -EIO) 204 if (ret < 0 && ret != -EIO)
311 return ret; 205 return ret;
312 206
313 ret = wl1271_init_radio_parms(wl); 207 ret = wl1271_cmd_radio_parms(wl);
314 if (ret < 0 && ret != -EIO) 208 if (ret < 0 && ret != -EIO)
315 return ret; 209 return ret;
316 210
diff --git a/drivers/net/wireless/wl12xx/wl1271_init.h b/drivers/net/wireless/wl12xx/wl1271_init.h
index 539b57f207c6..930677fbe852 100644
--- a/drivers/net/wireless/wl12xx/wl1271_init.h
+++ b/drivers/net/wireless/wl12xx/wl1271_init.h
@@ -28,77 +28,5 @@
28 28
29int wl1271_hw_init_power_auth(struct wl1271 *wl); 29int wl1271_hw_init_power_auth(struct wl1271 *wl);
30int wl1271_hw_init(struct wl1271 *wl); 30int wl1271_hw_init(struct wl1271 *wl);
31int wl1271_init_general_parms(struct wl1271 *wl);
32int wl1271_init_radio_parms(struct wl1271 *wl);
33
34/* These are not really a TEST_CMD, but the ref driver uses them as such */
35#define TEST_CMD_INI_FILE_RADIO_PARAM 0x19
36#define TEST_CMD_INI_FILE_GENERAL_PARAM 0x1E
37
38struct wl1271_general_parms {
39 u8 id;
40 u8 padding[3];
41
42 u8 ref_clk;
43 u8 settling_time;
44 u8 clk_valid_on_wakeup;
45 u8 dc2dcmode;
46 u8 single_dual_band;
47
48 u8 tx_bip_fem_autodetect;
49 u8 tx_bip_fem_manufacturer;
50 u8 settings;
51} __attribute__ ((packed));
52
53struct wl1271_radio_parms {
54 u8 id;
55 u8 padding[3];
56
57 /* Static radio parameters */
58 /* 2.4GHz */
59 u8 rx_trace_loss;
60 u8 tx_trace_loss;
61 s8 rx_rssi_and_proc_compens[CONF_RSSI_AND_PROCESS_COMPENSATION_SIZE];
62
63 /* 5GHz */
64 u8 rx_trace_loss_5[CONF_NUMBER_OF_SUB_BANDS_5];
65 u8 tx_trace_loss_5[CONF_NUMBER_OF_SUB_BANDS_5];
66 s8 rx_rssi_and_proc_compens_5[CONF_RSSI_AND_PROCESS_COMPENSATION_SIZE];
67
68 /* Dynamic radio parameters */
69 /* 2.4GHz */
70 __le16 tx_ref_pd_voltage;
71 s8 tx_ref_power;
72 s8 tx_offset_db;
73
74 s8 tx_rate_limits_normal[CONF_NUMBER_OF_RATE_GROUPS];
75 s8 tx_rate_limits_degraded[CONF_NUMBER_OF_RATE_GROUPS];
76
77 s8 tx_channel_limits_11b[CONF_NUMBER_OF_CHANNELS_2_4];
78 s8 tx_channel_limits_ofdm[CONF_NUMBER_OF_CHANNELS_2_4];
79 s8 tx_pdv_rate_offsets[CONF_NUMBER_OF_RATE_GROUPS];
80
81 u8 tx_ibias[CONF_NUMBER_OF_RATE_GROUPS];
82 u8 rx_fem_insertion_loss;
83
84 u8 padding2;
85
86 /* 5GHz */
87 __le16 tx_ref_pd_voltage_5[CONF_NUMBER_OF_SUB_BANDS_5];
88 s8 tx_ref_power_5[CONF_NUMBER_OF_SUB_BANDS_5];
89 s8 tx_offset_db_5[CONF_NUMBER_OF_SUB_BANDS_5];
90
91 s8 tx_rate_limits_normal_5[CONF_NUMBER_OF_RATE_GROUPS];
92 s8 tx_rate_limits_degraded_5[CONF_NUMBER_OF_RATE_GROUPS];
93
94 s8 tx_channel_limits_ofdm_5[CONF_NUMBER_OF_CHANNELS_5];
95 s8 tx_pdv_rate_offsets_5[CONF_NUMBER_OF_RATE_GROUPS];
96
97 /* FIXME: this is inconsistent with the types for 2.4GHz */
98 s8 tx_ibias_5[CONF_NUMBER_OF_RATE_GROUPS];
99 s8 rx_fem_insertion_loss_5[CONF_NUMBER_OF_SUB_BANDS_5];
100
101 u8 padding3[2];
102} __attribute__ ((packed));
103 31
104#endif 32#endif
diff --git a/drivers/net/wireless/wl12xx/wl1271_main.c b/drivers/net/wireless/wl12xx/wl1271_main.c
index d4e603993996..b75557e0e686 100644
--- a/drivers/net/wireless/wl12xx/wl1271_main.c
+++ b/drivers/net/wireless/wl12xx/wl1271_main.c
@@ -357,11 +357,11 @@ static int wl1271_plt_init(struct wl1271 *wl)
357 /* FIXME: the following parameter setting functions return error 357 /* FIXME: the following parameter setting functions return error
358 * codes - the reason is so far unknown. The -EIO is therefore 358 * codes - the reason is so far unknown. The -EIO is therefore
359 * ignored for the time being. */ 359 * ignored for the time being. */
360 ret = wl1271_init_general_parms(wl); 360 ret = wl1271_cmd_general_parms(wl);
361 if (ret < 0 && ret != -EIO) 361 if (ret < 0 && ret != -EIO)
362 return ret; 362 return ret;
363 363
364 ret = wl1271_init_radio_parms(wl); 364 ret = wl1271_cmd_radio_parms(wl);
365 if (ret < 0 && ret != -EIO) 365 if (ret < 0 && ret != -EIO)
366 return ret; 366 return ret;
367 367