Skip to content

Commit

Permalink
wl1271: updated general parameters structure for newer firmwares
Browse files Browse the repository at this point in the history
In revision 6.1.0.0.288 the general parameters structure has changed.  This
patch updates the driver code accordingly.

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>
  • Loading branch information
Luciano Coelho authored and John W. Linville committed Dec 28, 2009
1 parent 937a67e commit 76c0f8d
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 0 deletions.
20 changes: 20 additions & 0 deletions drivers/net/wireless/wl12xx/wl1271_cmd.c
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,26 @@ int wl1271_cmd_general_parms(struct wl1271 *wl)
gen_parms->tx_bip_fem_manufacturer = g->tx_bip_fem_manufacturer;
gen_parms->settings = g->settings;

gen_parms->sr_state = g->sr_state;

memcpy(gen_parms->srf1,
g->srf1,
CONF_MAX_SMART_REFLEX_PARAMS);
memcpy(gen_parms->srf2,
g->srf2,
CONF_MAX_SMART_REFLEX_PARAMS);
memcpy(gen_parms->srf3,
g->srf3,
CONF_MAX_SMART_REFLEX_PARAMS);
memcpy(gen_parms->sr_debug_table,
g->sr_debug_table,
CONF_MAX_SMART_REFLEX_PARAMS);

gen_parms->sr_sen_n_p = g->sr_sen_n_p;
gen_parms->sr_sen_n_p_gain = g->sr_sen_n_p_gain;
gen_parms->sr_sen_nrn = g->sr_sen_nrn;
gen_parms->sr_sen_prn = g->sr_sen_prn;

ret = wl1271_cmd_test(wl, gen_parms, sizeof(*gen_parms), 0);
if (ret < 0)
wl1271_warning("CMD_INI_FILE_GENERAL_PARAM failed");
Expand Down
15 changes: 15 additions & 0 deletions drivers/net/wireless/wl12xx/wl1271_cmd.h
Original file line number Diff line number Diff line change
Expand Up @@ -437,6 +437,21 @@ struct wl1271_general_parms_cmd {
u8 tx_bip_fem_autodetect;
u8 tx_bip_fem_manufacturer;
u8 settings;

u8 sr_state;

s8 srf1[CONF_MAX_SMART_REFLEX_PARAMS];
s8 srf2[CONF_MAX_SMART_REFLEX_PARAMS];
s8 srf3[CONF_MAX_SMART_REFLEX_PARAMS];

s8 sr_debug_table[CONF_MAX_SMART_REFLEX_PARAMS];

u8 sr_sen_n_p;
u8 sr_sen_n_p_gain;
u8 sr_sen_nrn;
u8 sr_sen_prn;

u8 padding[3];
} __attribute__ ((packed));

struct wl1271_radio_parms_cmd {
Expand Down
17 changes: 17 additions & 0 deletions drivers/net/wireless/wl12xx/wl1271_conf.h
Original file line number Diff line number Diff line change
Expand Up @@ -759,6 +759,9 @@ enum single_dual_band_enum {
CONF_DUAL_BAND
};


#define CONF_MAX_SMART_REFLEX_PARAMS 16

struct conf_general_parms {
/*
* RF Reference Clock type / speed
Expand Down Expand Up @@ -815,6 +818,20 @@ struct conf_general_parms {
* Range: Unknown
*/
u8 settings;

/* Smart reflex settings */
u8 sr_state;

s8 srf1[CONF_MAX_SMART_REFLEX_PARAMS];
s8 srf2[CONF_MAX_SMART_REFLEX_PARAMS];
s8 srf3[CONF_MAX_SMART_REFLEX_PARAMS];

s8 sr_debug_table[CONF_MAX_SMART_REFLEX_PARAMS];

u8 sr_sen_n_p;
u8 sr_sen_n_p_gain;
u8 sr_sen_nrn;
u8 sr_sen_prn;
};

#define CONF_RSSI_AND_PROCESS_COMPENSATION_SIZE 15
Expand Down
13 changes: 13 additions & 0 deletions drivers/net/wireless/wl12xx/wl1271_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,19 @@ static struct conf_drv_settings default_conf = {
.tx_bip_fem_autodetect = 0,
.tx_bip_fem_manufacturer = 1,
.settings = 1,
.sr_state = 1,
.srf1 = { 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0 },
.srf2 = { 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0 },
.srf3 = { 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0 },
.sr_debug_table = { 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0 },
.sr_sen_n_p = 0,
.sr_sen_n_p_gain = 0,
.sr_sen_nrn = 0,
.sr_sen_prn = 0,
},
.radioparam = {
.rx_trace_loss = 10,
Expand Down

0 comments on commit 76c0f8d

Please sign in to comment.