Commit 0afaa121 authored by Solomon Tan's avatar Solomon Tan Committed by Greg Kroah-Hartman
Browse files

staging: r8188eu: use in-kernel ieee channel



Use the in-kernel structure and flags instead of defining a separate
one. The rtw_ieee80211_channel structure and flags can be replaced by
the ieee80211_channel defined in include/net/cfg80211.h since the flags
serve the same purpose and the ieee80211_channel struct includes the
elements used in the rtw_ieee80211_channel struct.

Signed-off-by: default avatarSolomon Tan <wjsota@gmail.com>
Link: https://lore.kernel.org/r/20220421235237.4218-1-wjsota@gmail.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 9c40dba8
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -320,7 +320,7 @@ int rtw_cmd_thread(void *context)
 *	MUST TAKE CARE THAT BEFORE CALLING THIS FUNC, YOU SHOULD HAVE LOCKED pmlmepriv->lock
 */
u8 rtw_sitesurvey_cmd(struct adapter  *padapter, struct ndis_802_11_ssid *ssid, int ssid_num,
	struct rtw_ieee80211_channel *ch, int ch_num)
	struct ieee80211_channel *ch, int ch_num)
{
	u8 res = _FAIL;
	struct cmd_obj		*ph2c;
@@ -366,8 +366,8 @@ u8 rtw_sitesurvey_cmd(struct adapter *padapter, struct ndis_802_11_ssid *ssid,
	if (ch) {
		int i;
		for (i = 0; i < ch_num && i < RTW_CHANNEL_SCAN_AMOUNT; i++) {
			if (ch[i].hw_value && !(ch[i].flags & RTW_IEEE80211_CHAN_DISABLED)) {
				memcpy(&psurveyPara->ch[i], &ch[i], sizeof(struct rtw_ieee80211_channel));
			if (ch[i].hw_value && !(ch[i].flags & IEEE80211_CHAN_DISABLED)) {
				memcpy(&psurveyPara->ch[i], &ch[i], sizeof(struct ieee80211_channel));
				psurveyPara->ch_num++;
			}
		}
+9 −9
Original line number Diff line number Diff line
@@ -5749,11 +5749,11 @@ void site_survey(struct adapter *padapter)
		else
			ScanType = SCAN_ACTIVE;
	} else {
		struct rtw_ieee80211_channel *ch;
		struct ieee80211_channel *ch;
		if (pmlmeext->sitesurvey_res.channel_idx < pmlmeext->sitesurvey_res.ch_num) {
			ch = &pmlmeext->sitesurvey_res.ch[pmlmeext->sitesurvey_res.channel_idx];
			survey_channel = ch->hw_value;
			ScanType = (ch->flags & RTW_IEEE80211_CHAN_PASSIVE_SCAN) ? SCAN_PASSIVE : SCAN_ACTIVE;
			ScanType = (ch->flags & IEEE80211_CHAN_NO_IR) ? SCAN_PASSIVE : SCAN_ACTIVE;
		}
	}

@@ -7280,26 +7280,26 @@ u8 disconnect_hdl(struct adapter *padapter, unsigned char *pbuf)
	return	H2C_SUCCESS;
}

static int rtw_scan_ch_decision(struct adapter *padapter, struct rtw_ieee80211_channel *out,
	u32 out_num, struct rtw_ieee80211_channel *in, u32 in_num)
static int rtw_scan_ch_decision(struct adapter *padapter, struct ieee80211_channel *out,
	u32 out_num, struct ieee80211_channel *in, u32 in_num)
{
	int i, j;
	int set_idx;
	struct mlme_ext_priv	*pmlmeext = &padapter->mlmeextpriv;

	/* clear out first */
	memset(out, 0, sizeof(struct rtw_ieee80211_channel) * out_num);
	memset(out, 0, sizeof(struct ieee80211_channel) * out_num);

	/* acquire channels from in */
	j = 0;
	for (i = 0; i < in_num; i++) {
		set_idx = rtw_ch_set_search_ch(pmlmeext->channel_set, in[i].hw_value);
		if (in[i].hw_value && !(in[i].flags & RTW_IEEE80211_CHAN_DISABLED) &&
		if (in[i].hw_value && !(in[i].flags & IEEE80211_CHAN_DISABLED) &&
		    set_idx >= 0) {
			memcpy(&out[j], &in[i], sizeof(struct rtw_ieee80211_channel));
			memcpy(&out[j], &in[i], sizeof(struct ieee80211_channel));

			if (pmlmeext->channel_set[set_idx].ScanType == SCAN_PASSIVE)
				out[j].flags &= RTW_IEEE80211_CHAN_PASSIVE_SCAN;
				out[j].flags &= IEEE80211_CHAN_NO_IR;

			j++;
		}
@@ -7313,7 +7313,7 @@ static int rtw_scan_ch_decision(struct adapter *padapter, struct rtw_ieee80211_c
			out[i].hw_value = pmlmeext->channel_set[i].ChannelNum;

			if (pmlmeext->channel_set[i].ScanType == SCAN_PASSIVE)
				out[i].flags &= RTW_IEEE80211_CHAN_PASSIVE_SCAN;
				out[i].flags &= IEEE80211_CHAN_NO_IR;

			j++;
		}
+1 −33
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@
#include "drv_types.h"
#include "wifi.h"
#include <linux/wireless.h>
#include <net/cfg80211.h>

#define MGMT_QUEUE_NUM 5

@@ -665,39 +666,6 @@ enum rtw_ieee80211_back_actioncode {

#define VENDOR_HT_CAPAB_OUI_TYPE 0x33 /* 00-90-4c:0x33 */

/**
 * enum rtw_ieee80211_channel_flags - channel flags
 *
 * Channel flags set by the regulatory control code.
 *
 * @RTW_IEEE80211_CHAN_DISABLED: This channel is disabled.
 * @RTW_IEEE80211_CHAN_PASSIVE_SCAN: Only passive scanning is permitted
 *      on this channel.
 * @RTW_IEEE80211_CHAN_NO_IBSS: IBSS is not allowed on this channel.
 * @RTW_IEEE80211_CHAN_RADAR: Radar detection is required on this channel.
 * @RTW_IEEE80211_CHAN_NO_HT40PLUS: extension channel above this channel
 *      is not permitted.
 * @RTW_IEEE80211_CHAN_NO_HT40MINUS: extension channel below this channel
 *      is not permitted.
 */
enum rtw_ieee80211_channel_flags {
	RTW_IEEE80211_CHAN_DISABLED	 = 1<<0,
	RTW_IEEE80211_CHAN_PASSIVE_SCAN     = 1<<1,
	RTW_IEEE80211_CHAN_NO_IBSS	  = 1<<2,
	RTW_IEEE80211_CHAN_RADAR	    = 1<<3,
	RTW_IEEE80211_CHAN_NO_HT40PLUS      = 1<<4,
	RTW_IEEE80211_CHAN_NO_HT40MINUS     = 1<<5,
};

#define RTW_IEEE80211_CHAN_NO_HT40 \
	  (RTW_IEEE80211_CHAN_NO_HT40PLUS | RTW_IEEE80211_CHAN_NO_HT40MINUS)

/* Represent channel details, subset of ieee80211_channel */
struct rtw_ieee80211_channel {
	u16 hw_value;
	u32 flags;
};

#define CHAN_FMT \
	"hw_value:%u, " \
	"flags:0x%08x" \
+2 −2
Original line number Diff line number Diff line
@@ -187,7 +187,7 @@ struct sitesurvey_parm {
	u8 ssid_num;
	u8 ch_num;
	struct ndis_802_11_ssid ssid[RTW_SSID_SCAN_AMOUNT];
	struct rtw_ieee80211_channel ch[RTW_CHANNEL_SCAN_AMOUNT];
	struct ieee80211_channel ch[RTW_CHANNEL_SCAN_AMOUNT];
};

/*
@@ -731,7 +731,7 @@ struct TDLSoption_param
#define H2C_RESERVED		0x07

u8 rtw_sitesurvey_cmd(struct adapter  *padapter, struct ndis_802_11_ssid *ssid,
		      int ssid_num, struct rtw_ieee80211_channel *ch,
		      int ssid_num, struct ieee80211_channel *ch,
		      int ch_num);
u8 rtw_createbss_cmd(struct adapter  *padapter);
u8 rtw_setstakey_cmd(struct adapter *padapter, u8 *psta, u8 unicast_key);
+1 −1
Original line number Diff line number Diff line
@@ -200,7 +200,7 @@ struct ss_res {
	u8 ssid_num;
	u8 ch_num;
	struct ndis_802_11_ssid ssid[RTW_SSID_SCAN_AMOUNT];
	struct rtw_ieee80211_channel ch[RTW_CHANNEL_SCAN_AMOUNT];
	struct ieee80211_channel ch[RTW_CHANNEL_SCAN_AMOUNT];
};

/* define AP_MODE				0x0C */