mirror of
https://github.com/aircrack-ng/rtl8812au.git
synced 2024-11-09 23:57:00 +00:00
Allow to set channel when in monitor mode
* Added support for setting channel when in "monitor" mode.
This commit is contained in:
parent
8b41ccda9a
commit
136fbdef54
@ -4572,6 +4572,42 @@ static int cfg80211_rtw_set_monitor_channel(struct wiphy *wiphy
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0))
|
||||||
|
static int cfg80211_rtw_set_monitor_channel(struct wiphy *wiphy, struct cfg80211_chan_def *chandef)
|
||||||
|
{
|
||||||
|
struct ieee80211_channel *chan = (struct ieee80211_channel *) chandef->chan;
|
||||||
|
int chan_target = (u8) ieee80211_frequency_to_channel(chan->center_freq);
|
||||||
|
int chan_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
|
||||||
|
int chan_width = CHANNEL_WIDTH_20;
|
||||||
|
enum nl80211_channel_type channel_type = cfg80211_get_chandef_type(chandef);
|
||||||
|
_adapter *padapter = wiphy_to_adapter(wiphy);
|
||||||
|
|
||||||
|
switch (channel_type) {
|
||||||
|
case NL80211_CHAN_NO_HT:
|
||||||
|
case NL80211_CHAN_HT20:
|
||||||
|
chan_width = CHANNEL_WIDTH_20;
|
||||||
|
chan_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
|
||||||
|
break;
|
||||||
|
case NL80211_CHAN_HT40MINUS:
|
||||||
|
chan_width = CHANNEL_WIDTH_40;
|
||||||
|
chan_offset = HAL_PRIME_CHNL_OFFSET_UPPER;
|
||||||
|
break;
|
||||||
|
case NL80211_CHAN_HT40PLUS:
|
||||||
|
chan_width = CHANNEL_WIDTH_40;
|
||||||
|
chan_offset = HAL_PRIME_CHNL_OFFSET_LOWER;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
chan_width = CHANNEL_WIDTH_20;
|
||||||
|
chan_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
set_channel_bwmode(padapter, chan_target, chan_offset, chan_width);
|
||||||
|
DBG_871X("%s : %d", __func__, chan_target);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)) */
|
||||||
|
|
||||||
static int cfg80211_rtw_auth(struct wiphy *wiphy, struct net_device *ndev,
|
static int cfg80211_rtw_auth(struct wiphy *wiphy, struct net_device *ndev,
|
||||||
struct cfg80211_auth_request *req)
|
struct cfg80211_auth_request *req)
|
||||||
{
|
{
|
||||||
@ -6595,6 +6631,9 @@ static struct cfg80211_ops rtw_cfg80211_ops = {
|
|||||||
.change_bss = cfg80211_rtw_change_bss,
|
.change_bss = cfg80211_rtw_change_bss,
|
||||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 6, 0))
|
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 6, 0))
|
||||||
.set_channel = cfg80211_rtw_set_channel,
|
.set_channel = cfg80211_rtw_set_channel,
|
||||||
|
#endif
|
||||||
|
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0))
|
||||||
|
.set_monitor_channel = cfg80211_rtw_set_monitor_channel,
|
||||||
#endif
|
#endif
|
||||||
/* .auth = cfg80211_rtw_auth, */
|
/* .auth = cfg80211_rtw_auth, */
|
||||||
/* .assoc = cfg80211_rtw_assoc, */
|
/* .assoc = cfg80211_rtw_assoc, */
|
||||||
|
Loading…
Reference in New Issue
Block a user