mirror of https://gitee.com/openkylin/linux.git
wl18xx: increase MAX_CHANNELS_5GHZ
Some regdomains have more than 23 valid 5ghz channels, so 18xx's MAX_CHANNELS_5GHZ was increased to 32. Since now we have different max 5ghz channels values for wl12xx and wl18xx, add a new wl->max_channels_5ghz field, and use it for scan channels configuration. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
This commit is contained in:
parent
78e28062fe
commit
0a1c720c63
|
@ -704,6 +704,7 @@ static int wl12xx_identify_chip(struct wl1271 *wl)
|
|||
wl->scan_templ_id_5 = CMD_TEMPL_APP_PROBE_REQ_5_LEGACY;
|
||||
wl->sched_scan_templ_id_2_4 = CMD_TEMPL_CFG_PROBE_REQ_2_4;
|
||||
wl->sched_scan_templ_id_5 = CMD_TEMPL_CFG_PROBE_REQ_5;
|
||||
wl->max_channels_5 = WL12XX_MAX_CHANNELS_5GHZ;
|
||||
out:
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -26,6 +26,8 @@
|
|||
#include "../wlcore/cmd.h"
|
||||
#include "../wlcore/scan.h"
|
||||
|
||||
#define WL12XX_MAX_CHANNELS_5GHZ 23
|
||||
|
||||
struct basic_scan_params {
|
||||
/* Scan option flags (WL1271_SCAN_OPT_*) */
|
||||
__le16 scan_options;
|
||||
|
@ -107,7 +109,7 @@ struct wl1271_cmd_sched_scan_config {
|
|||
u8 role_id;
|
||||
u8 padding[1];
|
||||
struct conn_scan_ch_params channels_2[MAX_CHANNELS_2GHZ];
|
||||
struct conn_scan_ch_params channels_5[MAX_CHANNELS_5GHZ];
|
||||
struct conn_scan_ch_params channels_5[WL12XX_MAX_CHANNELS_5GHZ];
|
||||
struct conn_scan_ch_params channels_4[MAX_CHANNELS_4GHZ];
|
||||
} __packed;
|
||||
|
||||
|
|
|
@ -636,6 +636,7 @@ static int wl18xx_identify_chip(struct wl1271 *wl)
|
|||
wl->scan_templ_id_5 = CMD_TEMPL_CFG_PROBE_REQ_5;
|
||||
wl->sched_scan_templ_id_2_4 = CMD_TEMPL_PROBE_REQ_2_4_PERIODIC;
|
||||
wl->sched_scan_templ_id_5 = CMD_TEMPL_PROBE_REQ_5_PERIODIC;
|
||||
wl->max_channels_5 = WL18XX_MAX_CHANNELS_5GHZ;
|
||||
out:
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -50,6 +50,8 @@ enum
|
|||
WL18XX_SCAN_RATE_6 = 2,
|
||||
};
|
||||
|
||||
#define WL18XX_MAX_CHANNELS_5GHZ 32
|
||||
|
||||
struct wl18xx_cmd_scan_params {
|
||||
struct wl1271_cmd_header header;
|
||||
|
||||
|
@ -89,7 +91,7 @@ struct wl18xx_cmd_scan_params {
|
|||
union {
|
||||
struct {
|
||||
struct conn_scan_ch_params channels_2[MAX_CHANNELS_2GHZ];
|
||||
struct conn_scan_ch_params channels_5[MAX_CHANNELS_5GHZ];
|
||||
struct conn_scan_ch_params channels_5[WL18XX_MAX_CHANNELS_5GHZ];
|
||||
struct conn_scan_ch_params channels_4[MAX_CHANNELS_4GHZ];
|
||||
};
|
||||
struct tracking_ch_params channels_tracking[WL1271_SCAN_MAX_CHANNELS];
|
||||
|
|
|
@ -228,7 +228,7 @@ wlcore_set_scan_chan_params(struct wl1271 *wl,
|
|||
cfg->channels_5,
|
||||
IEEE80211_BAND_5GHZ,
|
||||
false, true, 0,
|
||||
MAX_CHANNELS_5GHZ,
|
||||
wl->max_channels_5,
|
||||
&n_pactive_ch);
|
||||
cfg->dfs =
|
||||
wlcore_scan_get_channels(wl,
|
||||
|
@ -239,7 +239,7 @@ wlcore_set_scan_chan_params(struct wl1271 *wl,
|
|||
IEEE80211_BAND_5GHZ,
|
||||
true, true,
|
||||
cfg->passive[1],
|
||||
MAX_CHANNELS_5GHZ,
|
||||
wl->max_channels_5,
|
||||
&n_pactive_ch);
|
||||
cfg->active[1] =
|
||||
wlcore_scan_get_channels(wl,
|
||||
|
@ -250,7 +250,7 @@ wlcore_set_scan_chan_params(struct wl1271 *wl,
|
|||
IEEE80211_BAND_5GHZ,
|
||||
false, false,
|
||||
cfg->passive[1] + cfg->dfs,
|
||||
MAX_CHANNELS_5GHZ,
|
||||
wl->max_channels_5,
|
||||
&n_pactive_ch);
|
||||
|
||||
/* 802.11j channels are not supported yet */
|
||||
|
|
|
@ -71,9 +71,17 @@ struct wl1271_cmd_trigger_scan_to {
|
|||
} __packed;
|
||||
|
||||
#define MAX_CHANNELS_2GHZ 14
|
||||
#define MAX_CHANNELS_5GHZ 23
|
||||
#define MAX_CHANNELS_4GHZ 4
|
||||
|
||||
/*
|
||||
* This max value here is used only for the struct definition of
|
||||
* wlcore_scan_channels. This struct is used by both 12xx
|
||||
* and 18xx (which have different max 5ghz channels value).
|
||||
* In order to make sure this is large enough, just use the
|
||||
* max possible 5ghz channels.
|
||||
*/
|
||||
#define MAX_CHANNELS_5GHZ 42
|
||||
|
||||
#define SCAN_MAX_CYCLE_INTERVALS 16
|
||||
#define SCAN_MAX_BANDS 3
|
||||
|
||||
|
|
|
@ -382,6 +382,7 @@ struct wl1271 {
|
|||
u8 scan_templ_id_5;
|
||||
u8 sched_scan_templ_id_2_4;
|
||||
u8 sched_scan_templ_id_5;
|
||||
u8 max_channels_5;
|
||||
|
||||
/* per-chip-family private structure */
|
||||
void *priv;
|
||||
|
|
Loading…
Reference in New Issue