mwifiex: use IEEE80211_HT_PARAM_CHA_SEC_* macros
Replace driver specific macros with the corresponding IEEE80211_HT_PARAM_CHA_SEC_* macros defined in ieee80211.h. Also, rename 'adapter->chan_offset' to 'adapter->sec_chan_offset' for consistency. Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> Signed-off-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
43906cdb91
commit
21c3ba3464
@@ -24,26 +24,26 @@
|
|||||||
* This function maps the nl802.11 channel type into driver channel type.
|
* This function maps the nl802.11 channel type into driver channel type.
|
||||||
*
|
*
|
||||||
* The mapping is as follows -
|
* The mapping is as follows -
|
||||||
* NL80211_CHAN_NO_HT -> NO_SEC_CHANNEL
|
* NL80211_CHAN_NO_HT -> IEEE80211_HT_PARAM_CHA_SEC_NONE
|
||||||
* NL80211_CHAN_HT20 -> NO_SEC_CHANNEL
|
* NL80211_CHAN_HT20 -> IEEE80211_HT_PARAM_CHA_SEC_NONE
|
||||||
* NL80211_CHAN_HT40PLUS -> SEC_CHANNEL_ABOVE
|
* NL80211_CHAN_HT40PLUS -> IEEE80211_HT_PARAM_CHA_SEC_ABOVE
|
||||||
* NL80211_CHAN_HT40MINUS -> SEC_CHANNEL_BELOW
|
* NL80211_CHAN_HT40MINUS -> IEEE80211_HT_PARAM_CHA_SEC_BELOW
|
||||||
* Others -> NO_SEC_CHANNEL
|
* Others -> IEEE80211_HT_PARAM_CHA_SEC_NONE
|
||||||
*/
|
*/
|
||||||
static int
|
static u8
|
||||||
mwifiex_cfg80211_channel_type_to_mwifiex_channels(enum nl80211_channel_type
|
mwifiex_cfg80211_channel_type_to_sec_chan_offset(enum nl80211_channel_type
|
||||||
channel_type)
|
channel_type)
|
||||||
{
|
{
|
||||||
switch (channel_type) {
|
switch (channel_type) {
|
||||||
case NL80211_CHAN_NO_HT:
|
case NL80211_CHAN_NO_HT:
|
||||||
case NL80211_CHAN_HT20:
|
case NL80211_CHAN_HT20:
|
||||||
return NO_SEC_CHANNEL;
|
return IEEE80211_HT_PARAM_CHA_SEC_NONE;
|
||||||
case NL80211_CHAN_HT40PLUS:
|
case NL80211_CHAN_HT40PLUS:
|
||||||
return SEC_CHANNEL_ABOVE;
|
return IEEE80211_HT_PARAM_CHA_SEC_ABOVE;
|
||||||
case NL80211_CHAN_HT40MINUS:
|
case NL80211_CHAN_HT40MINUS:
|
||||||
return SEC_CHANNEL_BELOW;
|
return IEEE80211_HT_PARAM_CHA_SEC_BELOW;
|
||||||
default:
|
default:
|
||||||
return NO_SEC_CHANNEL;
|
return IEEE80211_HT_PARAM_CHA_SEC_NONE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,20 +51,20 @@ mwifiex_cfg80211_channel_type_to_mwifiex_channels(enum nl80211_channel_type
|
|||||||
* This function maps the driver channel type into nl802.11 channel type.
|
* This function maps the driver channel type into nl802.11 channel type.
|
||||||
*
|
*
|
||||||
* The mapping is as follows -
|
* The mapping is as follows -
|
||||||
* NO_SEC_CHANNEL -> NL80211_CHAN_HT20
|
* IEEE80211_HT_PARAM_CHA_SEC_NONE -> NL80211_CHAN_HT20
|
||||||
* SEC_CHANNEL_ABOVE -> NL80211_CHAN_HT40PLUS
|
* IEEE80211_HT_PARAM_CHA_SEC_ABOVE -> NL80211_CHAN_HT40PLUS
|
||||||
* SEC_CHANNEL_BELOW -> NL80211_CHAN_HT40MINUS
|
* IEEE80211_HT_PARAM_CHA_SEC_BELOW -> NL80211_CHAN_HT40MINUS
|
||||||
* Others -> NL80211_CHAN_HT20
|
* Others -> NL80211_CHAN_HT20
|
||||||
*/
|
*/
|
||||||
static enum nl80211_channel_type
|
static enum nl80211_channel_type
|
||||||
mwifiex_channels_to_cfg80211_channel_type(int channel_type)
|
mwifiex_channels_to_cfg80211_channel_type(int channel_type)
|
||||||
{
|
{
|
||||||
switch (channel_type) {
|
switch (channel_type) {
|
||||||
case NO_SEC_CHANNEL:
|
case IEEE80211_HT_PARAM_CHA_SEC_NONE:
|
||||||
return NL80211_CHAN_HT20;
|
return NL80211_CHAN_HT20;
|
||||||
case SEC_CHANNEL_ABOVE:
|
case IEEE80211_HT_PARAM_CHA_SEC_ABOVE:
|
||||||
return NL80211_CHAN_HT40PLUS;
|
return NL80211_CHAN_HT40PLUS;
|
||||||
case SEC_CHANNEL_BELOW:
|
case IEEE80211_HT_PARAM_CHA_SEC_BELOW:
|
||||||
return NL80211_CHAN_HT40MINUS;
|
return NL80211_CHAN_HT40MINUS;
|
||||||
default:
|
default:
|
||||||
return NL80211_CHAN_HT20;
|
return NL80211_CHAN_HT20;
|
||||||
@@ -354,15 +354,15 @@ mwifiex_set_rf_channel(struct mwifiex_private *priv,
|
|||||||
adapter->adhoc_11n_enabled = false;
|
adapter->adhoc_11n_enabled = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
adapter->chan_offset =
|
adapter->sec_chan_offset =
|
||||||
mwifiex_cfg80211_channel_type_to_mwifiex_channels
|
mwifiex_cfg80211_channel_type_to_sec_chan_offset
|
||||||
(channel_type);
|
(channel_type);
|
||||||
|
|
||||||
mwifiex_send_domain_info_cmd_fw(wiphy);
|
mwifiex_send_domain_info_cmd_fw(wiphy);
|
||||||
}
|
}
|
||||||
|
|
||||||
wiphy_dbg(wiphy, "info: setting band %d, channel offset %d and "
|
wiphy_dbg(wiphy, "info: setting band %d, channel offset %d and "
|
||||||
"mode %d\n", config_bands, adapter->chan_offset,
|
"mode %d\n", config_bands, adapter->sec_chan_offset,
|
||||||
priv->bss_mode);
|
priv->bss_mode);
|
||||||
if (!chan)
|
if (!chan)
|
||||||
return 0;
|
return 0;
|
||||||
@@ -729,7 +729,7 @@ static int mwifiex_cfg80211_set_bitrate_mask(struct wiphy *wiphy,
|
|||||||
adapter->adhoc_11n_enabled = false;
|
adapter->adhoc_11n_enabled = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
adapter->chan_offset = NO_SEC_CHANNEL;
|
adapter->sec_chan_offset = IEEE80211_HT_PARAM_CHA_SEC_NONE;
|
||||||
|
|
||||||
wiphy_debug(wiphy, "info: device configured in 802.11%s%s mode\n",
|
wiphy_debug(wiphy, "info: device configured in 802.11%s%s mode\n",
|
||||||
(mode & BAND_B) ? "b" : "",
|
(mode & BAND_B) ? "b" : "",
|
||||||
@@ -850,7 +850,7 @@ mwifiex_cfg80211_assoc(struct mwifiex_private *priv, size_t ssid_len, u8 *ssid,
|
|||||||
if (channel)
|
if (channel)
|
||||||
ret = mwifiex_set_rf_channel(priv, channel,
|
ret = mwifiex_set_rf_channel(priv, channel,
|
||||||
mwifiex_channels_to_cfg80211_channel_type
|
mwifiex_channels_to_cfg80211_channel_type
|
||||||
(priv->adapter->chan_offset));
|
(priv->adapter->sec_chan_offset));
|
||||||
|
|
||||||
ret = mwifiex_set_encode(priv, NULL, 0, 0, 1); /* Disable keys */
|
ret = mwifiex_set_encode(priv, NULL, 0, 0, 1); /* Disable keys */
|
||||||
|
|
||||||
|
@@ -376,8 +376,6 @@ enum mwifiex_chan_scan_mode_bitmasks {
|
|||||||
MWIFIEX_DISABLE_CHAN_FILT = BIT(1),
|
MWIFIEX_DISABLE_CHAN_FILT = BIT(1),
|
||||||
};
|
};
|
||||||
|
|
||||||
#define SECOND_CHANNEL_BELOW 0x30
|
|
||||||
#define SECOND_CHANNEL_ABOVE 0x10
|
|
||||||
struct mwifiex_chan_scan_param_set {
|
struct mwifiex_chan_scan_param_set {
|
||||||
u8 radio_type;
|
u8 radio_type;
|
||||||
u8 chan_number;
|
u8 chan_number;
|
||||||
|
@@ -246,7 +246,7 @@ static void mwifiex_init_adapter(struct mwifiex_adapter *adapter)
|
|||||||
memset(adapter->event_body, 0, sizeof(adapter->event_body));
|
memset(adapter->event_body, 0, sizeof(adapter->event_body));
|
||||||
adapter->hw_dot_11n_dev_cap = 0;
|
adapter->hw_dot_11n_dev_cap = 0;
|
||||||
adapter->hw_dev_mcs_support = 0;
|
adapter->hw_dev_mcs_support = 0;
|
||||||
adapter->chan_offset = 0;
|
adapter->sec_chan_offset = 0;
|
||||||
adapter->adhoc_11n_enabled = false;
|
adapter->adhoc_11n_enabled = false;
|
||||||
|
|
||||||
mwifiex_wmm_init(adapter);
|
mwifiex_wmm_init(adapter);
|
||||||
|
@@ -62,10 +62,6 @@ enum {
|
|||||||
BAND_AN = 16,
|
BAND_AN = 16,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define NO_SEC_CHANNEL 0
|
|
||||||
#define SEC_CHANNEL_ABOVE 1
|
|
||||||
#define SEC_CHANNEL_BELOW 3
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
ADHOC_IDLE,
|
ADHOC_IDLE,
|
||||||
ADHOC_STARTED,
|
ADHOC_STARTED,
|
||||||
|
@@ -885,12 +885,14 @@ mwifiex_cmd_802_11_ad_hoc_start(struct mwifiex_private *priv,
|
|||||||
= mwifiex_band_to_radio_type(priv->curr_bss_params.band);
|
= mwifiex_band_to_radio_type(priv->curr_bss_params.band);
|
||||||
if (adapter->adhoc_start_band & BAND_GN
|
if (adapter->adhoc_start_band & BAND_GN
|
||||||
|| adapter->adhoc_start_band & BAND_AN) {
|
|| adapter->adhoc_start_band & BAND_AN) {
|
||||||
if (adapter->chan_offset == SEC_CHANNEL_ABOVE)
|
if (adapter->sec_chan_offset ==
|
||||||
|
IEEE80211_HT_PARAM_CHA_SEC_ABOVE)
|
||||||
chan_tlv->chan_scan_param[0].radio_type |=
|
chan_tlv->chan_scan_param[0].radio_type |=
|
||||||
SECOND_CHANNEL_ABOVE;
|
(IEEE80211_HT_PARAM_CHA_SEC_ABOVE << 4);
|
||||||
else if (adapter->chan_offset == SEC_CHANNEL_BELOW)
|
else if (adapter->sec_chan_offset ==
|
||||||
|
IEEE80211_HT_PARAM_CHA_SEC_ABOVE)
|
||||||
chan_tlv->chan_scan_param[0].radio_type |=
|
chan_tlv->chan_scan_param[0].radio_type |=
|
||||||
SECOND_CHANNEL_BELOW;
|
(IEEE80211_HT_PARAM_CHA_SEC_BELOW << 4);
|
||||||
}
|
}
|
||||||
dev_dbg(adapter->dev, "info: ADHOC_S_CMD: TLV Band = %d\n",
|
dev_dbg(adapter->dev, "info: ADHOC_S_CMD: TLV Band = %d\n",
|
||||||
chan_tlv->chan_scan_param[0].radio_type);
|
chan_tlv->chan_scan_param[0].radio_type);
|
||||||
@@ -936,8 +938,8 @@ mwifiex_cmd_802_11_ad_hoc_start(struct mwifiex_private *priv,
|
|||||||
|
|
||||||
ht_info->ht_info.control_chan =
|
ht_info->ht_info.control_chan =
|
||||||
(u8) priv->curr_bss_params.bss_descriptor.channel;
|
(u8) priv->curr_bss_params.bss_descriptor.channel;
|
||||||
if (adapter->chan_offset) {
|
if (adapter->sec_chan_offset) {
|
||||||
ht_info->ht_info.ht_param = adapter->chan_offset;
|
ht_info->ht_info.ht_param = adapter->sec_chan_offset;
|
||||||
ht_info->ht_info.ht_param |=
|
ht_info->ht_info.ht_param |=
|
||||||
IEEE80211_HT_PARAM_CHAN_WIDTH_ANY;
|
IEEE80211_HT_PARAM_CHAN_WIDTH_ANY;
|
||||||
}
|
}
|
||||||
|
@@ -640,7 +640,7 @@ struct mwifiex_adapter {
|
|||||||
u32 hw_dot_11n_dev_cap;
|
u32 hw_dot_11n_dev_cap;
|
||||||
u8 hw_dev_mcs_support;
|
u8 hw_dev_mcs_support;
|
||||||
u8 adhoc_11n_enabled;
|
u8 adhoc_11n_enabled;
|
||||||
u8 chan_offset;
|
u8 sec_chan_offset;
|
||||||
struct mwifiex_dbg dbg;
|
struct mwifiex_dbg dbg;
|
||||||
u8 arp_filter[ARP_FILTER_MAX_BUF_SIZE];
|
u8 arp_filter[ARP_FILTER_MAX_BUF_SIZE];
|
||||||
u32 arp_filter_size;
|
u32 arp_filter_size;
|
||||||
|
@@ -748,7 +748,7 @@ static int mwifiex_cmd_802_11_rf_channel(struct mwifiex_private *priv,
|
|||||||
cpu_to_le16(HostCmd_SCAN_RADIO_TYPE_A);
|
cpu_to_le16(HostCmd_SCAN_RADIO_TYPE_A);
|
||||||
|
|
||||||
rf_type = le16_to_cpu(rf_chan->rf_type);
|
rf_type = le16_to_cpu(rf_chan->rf_type);
|
||||||
SET_SECONDARYCHAN(rf_type, priv->adapter->chan_offset);
|
SET_SECONDARYCHAN(rf_type, priv->adapter->sec_chan_offset);
|
||||||
rf_chan->current_channel = cpu_to_le16(*channel);
|
rf_chan->current_channel = cpu_to_le16(*channel);
|
||||||
}
|
}
|
||||||
rf_chan->action = cpu_to_le16(cmd_action);
|
rf_chan->action = cpu_to_le16(cmd_action);
|
||||||
|
Reference in New Issue
Block a user