Пример #1
0
static bool
wl1271_scan_sched_scan_channels(struct wl1271 *wl,
				struct cfg80211_sched_scan_request *req,
				struct wl1271_cmd_sched_scan_config *cfg)
{
	u8 n_pactive_ch = 0;

	cfg->passive[0] =
		wl1271_scan_get_sched_scan_channels(wl, req, cfg->channels_2,
						    IEEE80211_BAND_2GHZ,
						    false, true, 0,
						    MAX_CHANNELS_2GHZ,
						    &n_pactive_ch);
	cfg->active[0] =
		wl1271_scan_get_sched_scan_channels(wl, req, cfg->channels_2,
						    IEEE80211_BAND_2GHZ,
						    false, false,
						    cfg->passive[0],
						    MAX_CHANNELS_2GHZ,
						    &n_pactive_ch);
	cfg->passive[1] =
		wl1271_scan_get_sched_scan_channels(wl, req, cfg->channels_5,
						    IEEE80211_BAND_5GHZ,
						    false, true, 0,
						    MAX_CHANNELS_5GHZ,
						    &n_pactive_ch);
	cfg->dfs =
		wl1271_scan_get_sched_scan_channels(wl, req, cfg->channels_5,
						    IEEE80211_BAND_5GHZ,
						    true, true,
						    cfg->passive[1],
						    MAX_CHANNELS_5GHZ,
						    &n_pactive_ch);
	cfg->active[1] =
		wl1271_scan_get_sched_scan_channels(wl, req, cfg->channels_5,
						    IEEE80211_BAND_5GHZ,
						    false, false,
						    cfg->passive[1] + cfg->dfs,
						    MAX_CHANNELS_5GHZ,
						    &n_pactive_ch);
	/* 802.11j channels are not supported yet */
	cfg->passive[2] = 0;
	cfg->active[2] = 0;

	cfg->n_pactive_ch = n_pactive_ch;

	wl1271_debug(DEBUG_SCAN, "    2.4GHz: active %d passive %d",
		     cfg->active[0], cfg->passive[0]);
	wl1271_debug(DEBUG_SCAN, "    5GHz: active %d passive %d",
		     cfg->active[1], cfg->passive[1]);
	wl1271_debug(DEBUG_SCAN, "    DFS: %d", cfg->dfs);

	return  cfg->passive[0] || cfg->active[0] ||
		cfg->passive[1] || cfg->active[1] || cfg->dfs ||
		cfg->passive[2] || cfg->active[2];
}
Пример #2
0
static int
wl1271_scan_sched_scan_channels(struct wl1271 *wl,
				struct cfg80211_sched_scan_request *req,
				struct wl1271_cmd_sched_scan_config *cfg)
{
	int idx = 0;

	cfg->passive[0] =
		wl1271_scan_get_sched_scan_channels(wl, req, cfg->channels,
						    IEEE80211_BAND_2GHZ,
						    false, true, idx);
	idx += cfg->passive[0];

	cfg->active[0] =
		wl1271_scan_get_sched_scan_channels(wl, req, cfg->channels,
						    IEEE80211_BAND_2GHZ,
						    false, false, idx);
	/*
	 * 5GHz channels always start at position 14, not immediately
	 * after the last 2.4GHz channel
	 */
	idx = 14;

	cfg->passive[1] =
		wl1271_scan_get_sched_scan_channels(wl, req, cfg->channels,
						    IEEE80211_BAND_5GHZ,
						    false, true, idx);
	idx += cfg->passive[1];

	cfg->dfs =
		wl1271_scan_get_sched_scan_channels(wl, req, cfg->channels,
						    IEEE80211_BAND_5GHZ,
						    true, true, idx);
	idx += cfg->dfs;

	cfg->active[1] =
		wl1271_scan_get_sched_scan_channels(wl, req, cfg->channels,
						    IEEE80211_BAND_5GHZ,
						    false, false, idx);
	idx += cfg->active[1];

	wl1271_debug(DEBUG_SCAN, "    2.4GHz: active %d passive %d",
		     cfg->active[0], cfg->passive[0]);
	wl1271_debug(DEBUG_SCAN, "    5GHz: active %d passive %d",
		     cfg->active[1], cfg->passive[1]);
	wl1271_debug(DEBUG_SCAN, "    DFS: %d", cfg->dfs);

	return idx;
}
Пример #3
0
static int
wl1271_scan_sched_scan_channels(struct wl1271 *wl,
				struct cfg80211_sched_scan_request *req,
				struct wl1271_cmd_sched_scan_config *cfg)
{
	int idx = 0;

	cfg->passive[0] =
		wl1271_scan_get_sched_scan_channels(wl, req, cfg->channels,
						    IEEE80211_BAND_2GHZ,
						    false, true, idx);
	idx += cfg->passive[0];

	cfg->active[0] =
		wl1271_scan_get_sched_scan_channels(wl, req, cfg->channels,
						    IEEE80211_BAND_2GHZ,
						    false, false, idx);
	idx += cfg->active[0];

	cfg->passive[1] =
		wl1271_scan_get_sched_scan_channels(wl, req, cfg->channels,
						    IEEE80211_BAND_5GHZ,
						    false, true, idx);
	idx += cfg->passive[1];

	cfg->active[1] =
		wl1271_scan_get_sched_scan_channels(wl, req, cfg->channels,
						    IEEE80211_BAND_5GHZ,
						    false, false, 14);
	idx += cfg->active[1];

	cfg->dfs =
		wl1271_scan_get_sched_scan_channels(wl, req, cfg->channels,
						    IEEE80211_BAND_5GHZ,
						    true, false, idx);
	idx += cfg->dfs;

	wl1271_debug(DEBUG_SCAN, "    2.4GHz: active %d passive %d",
		     cfg->active[0], cfg->passive[0]);
	wl1271_debug(DEBUG_SCAN, "    5GHz: active %d passive %d",
		     cfg->active[1], cfg->passive[1]);

	return idx;
}