Staging driver updates for 6.5-rc1
Here is a set of staging driver updates for 6.5-rc1. It's a small update this merge window, nothing major at all, overall just under 1000 lines of code removed, not a huge churn. Nothing major to highlight here either, just lots of small coding style fixes. All of these have been in linux-next for a while with no reported problems. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -----BEGIN PGP SIGNATURE----- iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCZKKS2A8cZ3JlZ0Brcm9h aC5jb20ACgkQMUfUDdst+ykQigCcCLPB/BGgwbWFaqoAHK6qecn82XcAnj+VcXSw v9Jj6mYpg7PDpXqv6o/c =NcdL -----END PGP SIGNATURE----- Merge tag 'staging-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging Pull staging driver updates from Greg KH: "Here is a set of staging driver updates for 6.5-rc1. It's a small update this merge window, nothing major at all, overall just under 1000 lines of code removed, not a huge churn. Nothing major to highlight here either, just lots of small coding style fixes. All of these have been in linux-next for a while with no reported problems" * tag 'staging-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (62 commits) staging: rtl8192e: Remove whitespace and blank lines staging: rtl8192e: remove 5G related code staging: rtl8192e: remove comparison to true staging: rtl8192e: remove return statement from void function staging: rtl8192e: convert else if sequence to switch staging: rtl8192e: clean up brace coding style issues staging: rtl8723bs: Fix blank line issues staging: rtl8723bs: Fix block comment issue staging: rtl8723bs: Fix indentation issues staging: vchiq_arm: Remove extra struct vchiq_instance declaration staging: rtl8192e: Rename variable InitialGainHandler staging: rtl8192e: Rename variable LeisurePSLeave staging: rtl8192e: Rename variable SetBWModeHandler staging: rtl8192e: Rename variable SetWirelessMode staging: rtl8192e: Rename RTLLIB_LINKED_SCANNING staging: rtl8192e: Rename RTLLIB_LINKED to MAC80211_LINKED staging: rtl8192e: Rename RTLLIB_NOLINK to MAC80211_NOLINK staging: rtl8192e: Rename state to link_state staging: rtl8192e: Rename rtllib_state to rtl_link_state staging: rtl8192e: Remove unused enum led_ctl_mode ...
This commit is contained in:
commit
db9c6d1d7f
@ -906,9 +906,6 @@ static int axis_fifo_probe(struct platform_device *pdev)
|
||||
if (rc < 0)
|
||||
goto err_initial;
|
||||
|
||||
dev_info(fifo->dt_device, "axis-fifo created at %pa mapped to 0x%pa, irq=%i\n",
|
||||
&r_mem->start, &fifo->base_addr, fifo->irq);
|
||||
|
||||
return 0;
|
||||
|
||||
err_initial:
|
||||
|
@ -362,7 +362,7 @@ static struct i2c_driver i2c_driver = {
|
||||
.driver = {
|
||||
.name = "hdm_i2c",
|
||||
},
|
||||
.probe_new = i2c_probe,
|
||||
.probe = i2c_probe,
|
||||
.remove = i2c_remove,
|
||||
.id_table = i2c_id,
|
||||
};
|
||||
|
@ -779,7 +779,7 @@ static struct i2c_driver dcon_driver = {
|
||||
},
|
||||
.class = I2C_CLASS_DDC | I2C_CLASS_HWMON,
|
||||
.id_table = dcon_idtable,
|
||||
.probe_new = dcon_probe,
|
||||
.probe = dcon_probe,
|
||||
.remove = dcon_remove,
|
||||
.detect = dcon_detect,
|
||||
.address_list = normal_i2c,
|
||||
|
@ -1019,7 +1019,6 @@ static int setup_gpio(struct pi433_device *device)
|
||||
}
|
||||
|
||||
/* configure the pin */
|
||||
gpiod_unexport(device->gpiod[i]);
|
||||
retval = gpiod_direction_input(device->gpiod[i]);
|
||||
if (retval)
|
||||
return retval;
|
||||
|
@ -3,6 +3,7 @@ config RTL8192E
|
||||
tristate "RealTek RTL8192E Wireless LAN NIC driver"
|
||||
depends on PCI && WLAN && RTLLIB
|
||||
depends on m
|
||||
select CFG80211
|
||||
select WIRELESS_EXT
|
||||
select WEXT_PRIV
|
||||
select CRYPTO
|
||||
|
@ -85,7 +85,6 @@ enum rtl819x_loopback {
|
||||
#define HAL_PRIME_CHNL_OFFSET_LOWER 1
|
||||
#define HAL_PRIME_CHNL_OFFSET_UPPER 2
|
||||
|
||||
|
||||
enum version_8190_loopback {
|
||||
VERSION_8190_BD = 0x3,
|
||||
VERSION_8190_BE
|
||||
@ -139,8 +138,6 @@ struct tx_fwinfo_8190pci {
|
||||
u32 Retry_Limit:4;
|
||||
u32 Reserved2:1;
|
||||
u32 PacketID:13;
|
||||
|
||||
|
||||
};
|
||||
|
||||
struct phy_ofdm_rx_status_rxsc_sgien_exintfflag {
|
||||
@ -172,7 +169,6 @@ struct phy_sts_cck_819xpci {
|
||||
u8 cck_agc_rpt;
|
||||
};
|
||||
|
||||
|
||||
#define PHY_RSSI_SLID_WIN_MAX 100
|
||||
#define PHY_Beacon_RSSI_SLID_WIN_MAX 10
|
||||
|
||||
@ -214,7 +210,6 @@ struct tx_desc {
|
||||
u32 Reserved7;
|
||||
};
|
||||
|
||||
|
||||
struct tx_desc_cmd {
|
||||
u16 PktSize;
|
||||
u8 Reserved1;
|
||||
@ -256,10 +251,8 @@ struct rx_desc {
|
||||
u32 Reserved3;
|
||||
|
||||
u32 BufferAddress;
|
||||
|
||||
};
|
||||
|
||||
|
||||
struct rx_fwinfo {
|
||||
u16 Reserved1:12;
|
||||
u16 PartAggr:1;
|
||||
@ -278,7 +271,6 @@ struct rx_fwinfo {
|
||||
u8 Reserved4:1;
|
||||
|
||||
u32 TSFL;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -46,23 +46,21 @@ static void _rtl92e_update_msr(struct net_device *dev)
|
||||
{
|
||||
struct r8192_priv *priv = rtllib_priv(dev);
|
||||
u8 msr;
|
||||
enum led_ctl_mode LedAction = LED_CTL_NO_LINK;
|
||||
|
||||
msr = rtl92e_readb(dev, MSR);
|
||||
msr &= ~MSR_LINK_MASK;
|
||||
|
||||
switch (priv->rtllib->iw_mode) {
|
||||
case IW_MODE_INFRA:
|
||||
if (priv->rtllib->state == RTLLIB_LINKED)
|
||||
if (priv->rtllib->link_state == MAC80211_LINKED)
|
||||
msr |= MSR_LINK_MANAGED;
|
||||
LedAction = LED_CTL_LINK;
|
||||
break;
|
||||
case IW_MODE_ADHOC:
|
||||
if (priv->rtllib->state == RTLLIB_LINKED)
|
||||
if (priv->rtllib->link_state == MAC80211_LINKED)
|
||||
msr |= MSR_LINK_ADHOC;
|
||||
break;
|
||||
case IW_MODE_MASTER:
|
||||
if (priv->rtllib->state == RTLLIB_LINKED)
|
||||
if (priv->rtllib->link_state == MAC80211_LINKED)
|
||||
msr |= MSR_LINK_MASTER;
|
||||
break;
|
||||
default:
|
||||
@ -70,8 +68,6 @@ static void _rtl92e_update_msr(struct net_device *dev)
|
||||
}
|
||||
|
||||
rtl92e_writeb(dev, MSR, msr);
|
||||
if (priv->rtllib->LedControlHandler)
|
||||
priv->rtllib->LedControlHandler(dev, LedAction);
|
||||
}
|
||||
|
||||
void rtl92e_set_reg(struct net_device *dev, u8 variable, u8 *val)
|
||||
@ -111,7 +107,6 @@ void rtl92e_set_reg(struct net_device *dev, u8 variable, u8 *val)
|
||||
}
|
||||
|
||||
rtl92e_writeb(dev, MSR, btMsr);
|
||||
|
||||
}
|
||||
break;
|
||||
|
||||
@ -130,7 +125,6 @@ void rtl92e_set_reg(struct net_device *dev, u8 variable, u8 *val)
|
||||
|
||||
rtl92e_writel(dev, RCR, RegRCR);
|
||||
priv->receive_config = RegRCR;
|
||||
|
||||
}
|
||||
break;
|
||||
|
||||
@ -168,7 +162,7 @@ void rtl92e_set_reg(struct net_device *dev, u8 variable, u8 *val)
|
||||
&priv->rtllib->current_network.qos_data.parameters;
|
||||
|
||||
u1bAIFS = qop->aifs[pAcParam] *
|
||||
((mode&(IEEE_G|IEEE_N_24G)) ? 9 : 20) + aSifsTime;
|
||||
((mode & (WIRELESS_MODE_G | WIRELESS_MODE_N_24G)) ? 9 : 20) + aSifsTime;
|
||||
|
||||
rtl92e_dm_init_edca_turbo(dev);
|
||||
|
||||
@ -270,7 +264,6 @@ void rtl92e_set_reg(struct net_device *dev, u8 variable, u8 *val)
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static void _rtl92e_read_eeprom_info(struct net_device *dev)
|
||||
@ -718,7 +711,6 @@ end:
|
||||
|
||||
static void _rtl92e_net_update(struct net_device *dev)
|
||||
{
|
||||
|
||||
struct r8192_priv *priv = rtllib_priv(dev);
|
||||
struct rtllib_network *net;
|
||||
u16 BcnTimeCfg = 0, BcnCW = 6, BcnIFS = 0xf;
|
||||
@ -753,7 +745,7 @@ void rtl92e_link_change(struct net_device *dev)
|
||||
if (!priv->up)
|
||||
return;
|
||||
|
||||
if (ieee->state == RTLLIB_LINKED) {
|
||||
if (ieee->link_state == MAC80211_LINKED) {
|
||||
_rtl92e_net_update(dev);
|
||||
rtl92e_update_ratr_table(dev);
|
||||
if ((ieee->pairwise_key_type == KEY_TYPE_WEP40) ||
|
||||
@ -768,13 +760,14 @@ void rtl92e_link_change(struct net_device *dev)
|
||||
u32 reg;
|
||||
|
||||
reg = rtl92e_readl(dev, RCR);
|
||||
if (priv->rtllib->state == RTLLIB_LINKED) {
|
||||
if (priv->rtllib->link_state == MAC80211_LINKED) {
|
||||
if (ieee->intel_promiscuous_md_info.promiscuous_on)
|
||||
;
|
||||
else
|
||||
priv->receive_config = reg |= RCR_CBSSID;
|
||||
} else
|
||||
} else {
|
||||
priv->receive_config = reg &= ~RCR_CBSSID;
|
||||
}
|
||||
|
||||
rtl92e_writel(dev, RCR, reg);
|
||||
}
|
||||
@ -1008,8 +1001,7 @@ void rtl92e_fill_tx_desc(struct net_device *dev, struct tx_desc *pdesc,
|
||||
pdesc->PktSize = skb->len - sizeof(struct tx_fwinfo_8190pci);
|
||||
|
||||
pdesc->SecCAMID = 0;
|
||||
pdesc->RATid = cb_desc->RATRIndex;
|
||||
|
||||
pdesc->RATid = cb_desc->ratr_index;
|
||||
|
||||
pdesc->NoEnc = 1;
|
||||
pdesc->SecType = 0x0;
|
||||
@ -1217,7 +1209,6 @@ static long _rtl92e_signal_scale_mapping(struct r8192_priv *priv, long currsig)
|
||||
return retsig;
|
||||
}
|
||||
|
||||
|
||||
#define rx_hal_is_cck_rate(_pdrvinfo)\
|
||||
((_pdrvinfo->RxRate == DESC90_RATE1M ||\
|
||||
_pdrvinfo->RxRate == DESC90_RATE2M ||\
|
||||
@ -1265,7 +1256,6 @@ static void _rtl92e_query_rxphystatus(
|
||||
check_reg824 = 1;
|
||||
}
|
||||
|
||||
|
||||
prxpkt = (u8 *)pdrvinfo;
|
||||
|
||||
prxpkt += sizeof(struct rx_fwinfo);
|
||||
@ -1372,7 +1362,6 @@ static void _rtl92e_query_rxphystatus(
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
rx_pwr_all = (((pofdm_buf->pwdb_all) >> 1) & 0x7f) - 106;
|
||||
pwdb_all = rtl92e_rx_db_to_percent(rx_pwr_all);
|
||||
|
||||
@ -1489,7 +1478,6 @@ static void _rtl92e_process_phyinfo(struct r8192_priv *priv, u8 *buffer,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (prev_st->bPacketBeacon) {
|
||||
if (slide_beacon_adc_pwdb_statistics++ >=
|
||||
PHY_Beacon_RSSI_SLID_WIN_MAX) {
|
||||
@ -1806,7 +1794,6 @@ void rtl92e_stop_adapter(struct net_device *dev, bool reset)
|
||||
rtl92e_writel(dev, WFCRC1, 0xffffffff);
|
||||
rtl92e_writel(dev, WFCRC2, 0xffffffff);
|
||||
|
||||
|
||||
rtl92e_writeb(dev, PMR, 0x5);
|
||||
rtl92e_writeb(dev, MAC_BLK_CTRL, 0xa);
|
||||
}
|
||||
@ -1830,18 +1817,14 @@ void rtl92e_update_ratr_table(struct net_device *dev)
|
||||
rtl92e_config_rate(dev, &rate_config);
|
||||
ratr_value = rate_config | *pMcsRate << 12;
|
||||
switch (ieee->mode) {
|
||||
case IEEE_A:
|
||||
ratr_value &= 0x00000FF0;
|
||||
break;
|
||||
case IEEE_B:
|
||||
case WIRELESS_MODE_B:
|
||||
ratr_value &= 0x0000000F;
|
||||
break;
|
||||
case IEEE_G:
|
||||
case IEEE_G|IEEE_B:
|
||||
case WIRELESS_MODE_G:
|
||||
case WIRELESS_MODE_G | WIRELESS_MODE_B:
|
||||
ratr_value &= 0x00000FF7;
|
||||
break;
|
||||
case IEEE_N_24G:
|
||||
case IEEE_N_5G:
|
||||
case WIRELESS_MODE_N_24G:
|
||||
if (ieee->ht_info->peer_mimo_ps == 0)
|
||||
ratr_value &= 0x0007F007;
|
||||
else
|
||||
@ -1901,7 +1884,6 @@ void rtl92e_enable_irq(struct net_device *dev)
|
||||
priv->irq_enabled = 1;
|
||||
|
||||
rtl92e_writel(dev, INTA_MASK, priv->irq_mask[0]);
|
||||
|
||||
}
|
||||
|
||||
void rtl92e_disable_irq(struct net_device *dev)
|
||||
@ -1933,7 +1915,6 @@ void rtl92e_enable_tx(struct net_device *dev)
|
||||
rtl92e_writel(dev, TX_DESC_BASE[i], priv->tx_ring[i].dma);
|
||||
}
|
||||
|
||||
|
||||
void rtl92e_ack_irq(struct net_device *dev, u32 *p_inta, u32 *p_intb)
|
||||
{
|
||||
*p_inta = rtl92e_readl(dev, ISR);
|
||||
@ -1990,8 +1971,6 @@ bool rtl92e_is_rx_stuck(struct net_device *dev)
|
||||
TotalRxStuckCount +=
|
||||
priv->silent_reset_rx_stuck_event[i];
|
||||
}
|
||||
|
||||
|
||||
} else {
|
||||
priv->silent_reset_rx_stuck_event[SlotIndex] = 0;
|
||||
}
|
||||
|
@ -159,7 +159,6 @@ enum _RTL8192PCI_HW {
|
||||
WFCRC2 = 0x2f8,
|
||||
|
||||
BW_OPMODE = 0x300,
|
||||
#define BW_OPMODE_5G BIT1
|
||||
#define BW_OPMODE_20MHZ BIT2
|
||||
IC_VERRSION = 0x301,
|
||||
MSR = 0x303,
|
||||
|
@ -32,7 +32,6 @@ static u32 _rtl92e_calculate_bit_shift(u32 dwBitMask)
|
||||
void rtl92e_set_bb_reg(struct net_device *dev, u32 dwRegAddr, u32 dwBitMask,
|
||||
u32 dwData)
|
||||
{
|
||||
|
||||
u32 OriginalValue, BitShift, NewValue;
|
||||
|
||||
if (dwBitMask != bMaskDWord) {
|
||||
@ -40,9 +39,10 @@ void rtl92e_set_bb_reg(struct net_device *dev, u32 dwRegAddr, u32 dwBitMask,
|
||||
BitShift = _rtl92e_calculate_bit_shift(dwBitMask);
|
||||
NewValue = (OriginalValue & ~dwBitMask) | (dwData << BitShift);
|
||||
rtl92e_writel(dev, dwRegAddr, NewValue);
|
||||
} else
|
||||
} else {
|
||||
rtl92e_writel(dev, dwRegAddr, dwData);
|
||||
}
|
||||
}
|
||||
|
||||
u32 rtl92e_get_bb_reg(struct net_device *dev, u32 dwRegAddr, u32 dwBitMask)
|
||||
{
|
||||
@ -99,7 +99,6 @@ static u32 _rtl92e_phy_rf_read(struct net_device *dev,
|
||||
rtl92e_set_bb_reg(dev, rFPGA0_AnalogParameter4, 0x300, 0x3);
|
||||
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
static void _rtl92e_phy_rf_write(struct net_device *dev,
|
||||
@ -165,10 +164,10 @@ void rtl92e_set_rf_reg(struct net_device *dev, enum rf90_radio_path eRFPath,
|
||||
|
||||
_rtl92e_phy_rf_fw_write(dev, eRFPath, RegAddr,
|
||||
New_Value);
|
||||
} else
|
||||
} else {
|
||||
_rtl92e_phy_rf_fw_write(dev, eRFPath, RegAddr, Data);
|
||||
}
|
||||
udelay(200);
|
||||
|
||||
} else {
|
||||
if (BitMask != bMask12Bits) {
|
||||
Original_Value = _rtl92e_phy_rf_read(dev, eRFPath,
|
||||
@ -177,10 +176,11 @@ void rtl92e_set_rf_reg(struct net_device *dev, enum rf90_radio_path eRFPath,
|
||||
New_Value = (Original_Value & ~BitMask) | (Data << BitShift);
|
||||
|
||||
_rtl92e_phy_rf_write(dev, eRFPath, RegAddr, New_Value);
|
||||
} else
|
||||
} else {
|
||||
_rtl92e_phy_rf_write(dev, eRFPath, RegAddr, Data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
u32 rtl92e_get_rf_reg(struct net_device *dev, enum rf90_radio_path eRFPath,
|
||||
u32 RegAddr, u32 BitMask)
|
||||
@ -226,7 +226,6 @@ static u32 _rtl92e_phy_rf_fw_read(struct net_device *dev,
|
||||
return 0;
|
||||
}
|
||||
return rtl92e_readl(dev, RF_DATA);
|
||||
|
||||
}
|
||||
|
||||
static void _rtl92e_phy_rf_fw_write(struct net_device *dev,
|
||||
@ -247,10 +246,8 @@ static void _rtl92e_phy_rf_fw_write(struct net_device *dev,
|
||||
break;
|
||||
}
|
||||
rtl92e_writel(dev, QPNR, Data);
|
||||
|
||||
}
|
||||
|
||||
|
||||
void rtl92e_config_mac(struct net_device *dev)
|
||||
{
|
||||
u32 dwArrayLen = 0, i = 0;
|
||||
@ -271,8 +268,6 @@ void rtl92e_config_mac(struct net_device *dev)
|
||||
rtl92e_set_bb_reg(dev, pdwArray[i], pdwArray[i + 1],
|
||||
pdwArray[i + 2]);
|
||||
}
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
static void _rtl92e_phy_config_bb(struct net_device *dev, u8 ConfigType)
|
||||
@ -370,7 +365,6 @@ bool rtl92e_check_bb_and_rf(struct net_device *dev, enum hw90_block CheckBlock,
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (dwRegRead != WriteData[i]) {
|
||||
netdev_warn(dev, "%s(): Check failed.\n", __func__);
|
||||
ret = false;
|
||||
@ -415,7 +409,6 @@ static bool _rtl92e_bb_config_para_file(struct net_device *dev)
|
||||
rtl92e_set_bb_reg(dev, rFPGA0_TxGainStage,
|
||||
(bXBTxAGC | bXCTxAGC | bXDTxAGC), dwRegValue);
|
||||
|
||||
|
||||
dwRegValue = priv->crystal_cap;
|
||||
rtl92e_set_bb_reg(dev, rFPGA0_AnalogParameter1, bXtalCap92x,
|
||||
dwRegValue);
|
||||
@ -470,7 +463,6 @@ void rtl92e_set_tx_power(struct net_device *dev, u8 channel)
|
||||
|
||||
u8 rtl92e_config_rf_path(struct net_device *dev, enum rf90_radio_path eRFPath)
|
||||
{
|
||||
|
||||
int i;
|
||||
|
||||
switch (eRFPath) {
|
||||
@ -483,7 +475,6 @@ u8 rtl92e_config_rf_path(struct net_device *dev, enum rf90_radio_path eRFPath)
|
||||
rtl92e_set_rf_reg(dev, eRFPath, RTL8192E_RADIO_A_ARR[i],
|
||||
bMask12Bits,
|
||||
RTL8192E_RADIO_A_ARR[i + 1]);
|
||||
|
||||
}
|
||||
break;
|
||||
case RF90_PATH_B:
|
||||
@ -495,7 +486,6 @@ u8 rtl92e_config_rf_path(struct net_device *dev, enum rf90_radio_path eRFPath)
|
||||
rtl92e_set_rf_reg(dev, eRFPath, RTL8192E_RADIO_B_ARR[i],
|
||||
bMask12Bits,
|
||||
RTL8192E_RADIO_B_ARR[i + 1]);
|
||||
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@ -503,7 +493,6 @@ u8 rtl92e_config_rf_path(struct net_device *dev, enum rf90_radio_path eRFPath)
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
static void _rtl92e_set_tx_power_level(struct net_device *dev, u8 channel)
|
||||
@ -677,7 +666,6 @@ static void _rtl92e_phy_switch_channel(struct net_device *dev, u8 channel)
|
||||
|
||||
static void _rtl92e_phy_switch_channel_work_item(struct net_device *dev)
|
||||
{
|
||||
|
||||
struct r8192_priv *priv = rtllib_priv(dev);
|
||||
|
||||
_rtl92e_phy_switch_channel(dev, priv->chan);
|
||||
@ -694,7 +682,6 @@ u8 rtl92e_set_channel(struct net_device *dev, u8 channel)
|
||||
if (priv->sw_chnl_in_progress)
|
||||
return false;
|
||||
|
||||
|
||||
switch (priv->rtllib->mode) {
|
||||
case WIRELESS_MODE_B:
|
||||
if (channel > 14) {
|
||||
@ -824,7 +811,6 @@ static void _rtl92e_cck_tx_power_track_bw_switch(struct net_device *dev)
|
||||
|
||||
static void _rtl92e_set_bw_mode_work_item(struct net_device *dev)
|
||||
{
|
||||
|
||||
struct r8192_priv *priv = rtllib_priv(dev);
|
||||
u8 regBwOpMode;
|
||||
|
||||
@ -890,7 +876,6 @@ static void _rtl92e_set_bw_mode_work_item(struct net_device *dev)
|
||||
netdev_err(dev, "%s(): unknown Bandwidth: %#X\n", __func__,
|
||||
priv->current_chnl_bw);
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
rtl92e_set_bandwidth(dev, priv->current_chnl_bw);
|
||||
@ -904,7 +889,6 @@ void rtl92e_set_bw_mode(struct net_device *dev, enum ht_channel_width bandwidth,
|
||||
{
|
||||
struct r8192_priv *priv = rtllib_priv(dev);
|
||||
|
||||
|
||||
if (priv->set_bw_mode_in_progress)
|
||||
return;
|
||||
|
||||
@ -921,7 +905,6 @@ void rtl92e_set_bw_mode(struct net_device *dev, enum ht_channel_width bandwidth,
|
||||
priv->n_cur_40mhz_prime_sc = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
|
||||
|
||||
_rtl92e_set_bw_mode_work_item(dev);
|
||||
|
||||
}
|
||||
|
||||
void rtl92e_init_gain(struct net_device *dev, u8 Operation)
|
||||
@ -993,7 +976,6 @@ void rtl92e_init_gain(struct net_device *dev, u8 Operation)
|
||||
|
||||
void rtl92e_set_rf_off(struct net_device *dev)
|
||||
{
|
||||
|
||||
rtl92e_set_bb_reg(dev, rFPGA0_XA_RFInterfaceOE, BIT4, 0x0);
|
||||
rtl92e_set_bb_reg(dev, rFPGA0_AnalogParameter4, 0x300, 0x0);
|
||||
rtl92e_set_bb_reg(dev, rFPGA0_AnalogParameter1, 0x18, 0x0);
|
||||
@ -1002,7 +984,6 @@ void rtl92e_set_rf_off(struct net_device *dev)
|
||||
rtl92e_set_bb_reg(dev, rFPGA0_AnalogParameter1, 0x60, 0x0);
|
||||
rtl92e_set_bb_reg(dev, rFPGA0_AnalogParameter1, 0x4, 0x0);
|
||||
rtl92e_writeb(dev, ANAPAR_FOR_8192PCIE, 0x07);
|
||||
|
||||
}
|
||||
|
||||
static bool _rtl92e_set_rf_power_state(struct net_device *dev,
|
||||
@ -1099,9 +1080,8 @@ static bool _rtl92e_set_rf_power_state(struct net_device *dev,
|
||||
break;
|
||||
}
|
||||
|
||||
if (bResult) {
|
||||
if (bResult)
|
||||
priv->rtllib->rf_power_state = rf_power_state;
|
||||
}
|
||||
|
||||
priv->set_rf_pwr_state_in_progress = false;
|
||||
return bResult;
|
||||
@ -1130,11 +1110,11 @@ void rtl92e_scan_op_backup(struct net_device *dev, u8 Operation)
|
||||
if (priv->up) {
|
||||
switch (Operation) {
|
||||
case SCAN_OPT_BACKUP:
|
||||
priv->rtllib->InitialGainHandler(dev, IG_Backup);
|
||||
priv->rtllib->init_gain_handler(dev, IG_Backup);
|
||||
break;
|
||||
|
||||
case SCAN_OPT_RESTORE:
|
||||
priv->rtllib->InitialGainHandler(dev, IG_Restore);
|
||||
priv->rtllib->init_gain_handler(dev, IG_Restore);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -7,7 +7,6 @@
|
||||
#ifndef _R819XU_PHYREG_H
|
||||
#define _R819XU_PHYREG_H
|
||||
|
||||
|
||||
#define RF_DATA 0x1d4
|
||||
|
||||
#define rPMAC_Reset 0x100
|
||||
@ -125,7 +124,6 @@
|
||||
#define rOFDM0_TxCoeff5 0xcb4
|
||||
#define rOFDM0_TxCoeff6 0xcb8
|
||||
|
||||
|
||||
#define rOFDM1_LSTF 0xd00
|
||||
#define rOFDM1_TRxPathEnable 0xd04
|
||||
#define rOFDM1_CFO 0xd08
|
||||
@ -163,7 +161,6 @@
|
||||
#define rTxAGC_Mcs11_Mcs08 0xe18
|
||||
#define rTxAGC_Mcs15_Mcs12 0xe1c
|
||||
|
||||
|
||||
#define rZebra1_HSSIEnable 0x0
|
||||
#define rZebra1_TRxEnable1 0x1
|
||||
#define rZebra1_TRxEnable2 0x2
|
||||
@ -269,7 +266,6 @@
|
||||
#define b3WireAddressLength 0x400
|
||||
#define b3WireRFPowerDown 0x1
|
||||
/*#define bHWSISelect 0x8 */
|
||||
#define b5GPAPEPolarity 0x40000000
|
||||
#define b2GPAPEPolarity 0x80000000
|
||||
#define bRFSW_TxDefaultAnt 0x3
|
||||
#define bRFSW_TxOptionAnt 0x30
|
||||
@ -287,7 +283,6 @@
|
||||
#define bRFSI_ANTSW 0x100
|
||||
#define bRFSI_ANTSWB 0x200
|
||||
#define bRFSI_PAPE 0x400
|
||||
#define bRFSI_PAPE5G 0x800
|
||||
#define bBandSelect 0x1
|
||||
#define bHTSIG2_GI 0x80
|
||||
#define bHTSIG2_Smoothing 0x01
|
||||
@ -819,7 +814,6 @@
|
||||
#define bOFDMPHY0_End 0xcff
|
||||
#define bOFDMPHY1_End 0xdff
|
||||
|
||||
|
||||
#define bPMACControl 0x0
|
||||
#define bWMACControl 0x1
|
||||
#define bWNICControl 0x2
|
||||
|
@ -101,7 +101,6 @@ void rtl92e_set_key(struct net_device *dev, u8 EntryNo, u8 KeyIndex,
|
||||
else
|
||||
usConfig |= BIT15 | (KeyType << 2) | KeyIndex;
|
||||
|
||||
|
||||
for (i = 0; i < CAM_CONTENT_COUNT; i++) {
|
||||
TargetCommand = i + CAM_CONTENT_COUNT * EntryNo;
|
||||
TargetCommand |= BIT31 | BIT16;
|
||||
@ -149,7 +148,6 @@ void rtl92e_cam_restore(struct net_device *dev)
|
||||
|
||||
if ((priv->rtllib->pairwise_key_type == KEY_TYPE_WEP40) ||
|
||||
(priv->rtllib->pairwise_key_type == KEY_TYPE_WEP104)) {
|
||||
|
||||
for (EntryId = 0; EntryId < 4; EntryId++) {
|
||||
MacAddr = CAM_CONST_ADDR[EntryId];
|
||||
if (priv->rtllib->swcamtable[EntryId].bused) {
|
||||
|
@ -169,7 +169,7 @@ bool rtl92e_set_rf_state(struct net_device *dev,
|
||||
(priv->rtllib->iw_mode == IW_MODE_ADHOC)) {
|
||||
if ((priv->rtllib->rf_off_reason > RF_CHANGE_BY_IPS) ||
|
||||
(change_source > RF_CHANGE_BY_IPS)) {
|
||||
if (ieee->state == RTLLIB_LINKED)
|
||||
if (ieee->link_state == MAC80211_LINKED)
|
||||
priv->blinked_ingpio = true;
|
||||
else
|
||||
priv->blinked_ingpio = false;
|
||||
@ -277,7 +277,7 @@ static void _rtl92e_update_cap(struct net_device *dev, u16 cap)
|
||||
}
|
||||
}
|
||||
|
||||
if (net->mode & (IEEE_G | IEEE_N_24G)) {
|
||||
if (net->mode & (WIRELESS_MODE_G | WIRELESS_MODE_N_24G)) {
|
||||
u8 slot_time_val;
|
||||
u8 cur_slot_time = priv->slot_time;
|
||||
|
||||
@ -327,7 +327,7 @@ static void _rtl92e_qos_activate(void *data)
|
||||
int i;
|
||||
|
||||
mutex_lock(&priv->mutex);
|
||||
if (priv->rtllib->state != RTLLIB_LINKED)
|
||||
if (priv->rtllib->link_state != MAC80211_LINKED)
|
||||
goto success;
|
||||
|
||||
for (i = 0; i < QOS_QUEUE_NUM; i++)
|
||||
@ -344,7 +344,7 @@ static int _rtl92e_qos_handle_probe_response(struct r8192_priv *priv,
|
||||
int ret = 0;
|
||||
u32 size = sizeof(struct rtllib_qos_parameters);
|
||||
|
||||
if (priv->rtllib->state != RTLLIB_LINKED)
|
||||
if (priv->rtllib->link_state != MAC80211_LINKED)
|
||||
return ret;
|
||||
|
||||
if (priv->rtllib->iw_mode != IW_MODE_INFRA)
|
||||
@ -400,7 +400,7 @@ static int _rtl92e_qos_assoc_resp(struct r8192_priv *priv,
|
||||
if (!priv || !network)
|
||||
return 0;
|
||||
|
||||
if (priv->rtllib->state != RTLLIB_LINKED)
|
||||
if (priv->rtllib->link_state != MAC80211_LINKED)
|
||||
return 0;
|
||||
|
||||
if (priv->rtllib->iw_mode != IW_MODE_INFRA)
|
||||
@ -466,7 +466,7 @@ static void _rtl92e_prepare_beacon(struct tasklet_struct *t)
|
||||
tcb_desc = (struct cb_desc *)(pnewskb->cb + 8);
|
||||
tcb_desc->queue_index = BEACON_QUEUE;
|
||||
tcb_desc->data_rate = 2;
|
||||
tcb_desc->RATRIndex = 7;
|
||||
tcb_desc->ratr_index = 7;
|
||||
tcb_desc->tx_dis_rate_fallback = 1;
|
||||
tcb_desc->tx_use_drv_assinged_rate = 1;
|
||||
skb_push(pnewskb, priv->rtllib->tx_headroom);
|
||||
@ -635,7 +635,7 @@ static int _rtl92e_sta_up(struct net_device *dev, bool is_silent_reset)
|
||||
if (priv->polling_timer_on == 0)
|
||||
rtl92e_check_rfctrl_gpio_timer(&priv->gpio_polling_timer);
|
||||
|
||||
if (priv->rtllib->state != RTLLIB_LINKED)
|
||||
if (priv->rtllib->link_state != MAC80211_LINKED)
|
||||
rtllib_softmac_start_protocol(priv->rtllib, 0);
|
||||
rtllib_reset_queue(priv->rtllib);
|
||||
_rtl92e_watchdog_timer_cb(&priv->watch_dog_timer);
|
||||
@ -660,7 +660,7 @@ static int _rtl92e_sta_down(struct net_device *dev, bool shutdownrf)
|
||||
|
||||
priv->rtllib->rtllib_ips_leave(dev);
|
||||
|
||||
if (priv->rtllib->state == RTLLIB_LINKED)
|
||||
if (priv->rtllib->link_state == MAC80211_LINKED)
|
||||
rtl92e_leisure_ps_leave(dev);
|
||||
|
||||
priv->up = 0;
|
||||
@ -716,9 +716,9 @@ static void _rtl92e_init_priv_handler(struct net_device *dev)
|
||||
priv->rtllib->check_nic_enough_desc = _rtl92e_check_nic_enough_desc;
|
||||
priv->rtllib->handle_assoc_response = _rtl92e_handle_assoc_response;
|
||||
priv->rtllib->handle_beacon = _rtl92e_handle_beacon;
|
||||
priv->rtllib->SetWirelessMode = rtl92e_set_wireless_mode;
|
||||
priv->rtllib->LeisurePSLeave = rtl92e_leisure_ps_leave;
|
||||
priv->rtllib->SetBWModeHandler = rtl92e_set_bw_mode;
|
||||
priv->rtllib->set_wireless_mode = rtl92e_set_wireless_mode;
|
||||
priv->rtllib->leisure_ps_leave = rtl92e_leisure_ps_leave;
|
||||
priv->rtllib->set_bw_mode_handler = rtl92e_set_bw_mode;
|
||||
priv->rf_set_chan = rtl92e_set_channel;
|
||||
|
||||
priv->rtllib->start_send_beacons = rtl92e_start_beacon;
|
||||
@ -734,14 +734,9 @@ static void _rtl92e_init_priv_handler(struct net_device *dev)
|
||||
|
||||
priv->rtllib->SetHwRegHandler = rtl92e_set_reg;
|
||||
priv->rtllib->AllowAllDestAddrHandler = rtl92e_set_monitor_mode;
|
||||
priv->rtllib->SetFwCmdHandler = NULL;
|
||||
priv->rtllib->InitialGainHandler = rtl92e_init_gain;
|
||||
priv->rtllib->init_gain_handler = rtl92e_init_gain;
|
||||
priv->rtllib->rtllib_ips_leave_wq = rtl92e_rtllib_ips_leave_wq;
|
||||
priv->rtllib->rtllib_ips_leave = rtl92e_rtllib_ips_leave;
|
||||
|
||||
priv->rtllib->LedControlHandler = NULL;
|
||||
priv->rtllib->UpdateBeaconInterruptHandler = NULL;
|
||||
|
||||
priv->rtllib->ScanOperationBackupHandler = rtl92e_scan_op_backup;
|
||||
}
|
||||
|
||||
@ -1014,7 +1009,7 @@ static enum reset_type _rtl92e_if_check_reset(struct net_device *dev)
|
||||
|
||||
if (rfState == rf_on &&
|
||||
(priv->rtllib->iw_mode == IW_MODE_INFRA) &&
|
||||
(priv->rtllib->state == RTLLIB_LINKED))
|
||||
(priv->rtllib->link_state == MAC80211_LINKED))
|
||||
RxResetType = _rtl92e_rx_check_stuck(dev);
|
||||
|
||||
if (TxResetType == RESET_TYPE_NORMAL ||
|
||||
@ -1056,7 +1051,7 @@ RESET_START:
|
||||
|
||||
mutex_lock(&priv->wx_mutex);
|
||||
|
||||
if (priv->rtllib->state == RTLLIB_LINKED)
|
||||
if (priv->rtllib->link_state == MAC80211_LINKED)
|
||||
rtl92e_leisure_ps_leave(dev);
|
||||
|
||||
if (priv->up) {
|
||||
@ -1078,9 +1073,9 @@ RESET_START:
|
||||
rtl92e_dm_deinit(dev);
|
||||
rtllib_stop_scan_syncro(ieee);
|
||||
|
||||
if (ieee->state == RTLLIB_LINKED) {
|
||||
if (ieee->link_state == MAC80211_LINKED) {
|
||||
mutex_lock(&ieee->wx_mutex);
|
||||
netdev_info(dev, "ieee->state is RTLLIB_LINKED\n");
|
||||
netdev_info(dev, "ieee->link_state is MAC80211_LINKED\n");
|
||||
rtllib_stop_send_beacons(priv->rtllib);
|
||||
del_timer_sync(&ieee->associate_timer);
|
||||
cancel_delayed_work(&ieee->associate_retry_wq);
|
||||
@ -1088,7 +1083,7 @@ RESET_START:
|
||||
netif_carrier_off(dev);
|
||||
mutex_unlock(&ieee->wx_mutex);
|
||||
} else {
|
||||
netdev_info(dev, "ieee->state is NOT LINKED\n");
|
||||
netdev_info(dev, "ieee->link_state is NOT LINKED\n");
|
||||
rtllib_softmac_stop_protocol(priv->rtllib, 0, true);
|
||||
}
|
||||
|
||||
@ -1115,14 +1110,14 @@ RESET_START:
|
||||
|
||||
rtl92e_enable_hw_security_config(dev);
|
||||
|
||||
if (ieee->state == RTLLIB_LINKED && ieee->iw_mode ==
|
||||
if (ieee->link_state == MAC80211_LINKED && ieee->iw_mode ==
|
||||
IW_MODE_INFRA) {
|
||||
ieee->set_chan(ieee->dev,
|
||||
ieee->current_network.channel);
|
||||
|
||||
schedule_work(&ieee->associate_complete_wq);
|
||||
|
||||
} else if (ieee->state == RTLLIB_LINKED && ieee->iw_mode ==
|
||||
} else if (ieee->link_state == MAC80211_LINKED && ieee->iw_mode ==
|
||||
IW_MODE_ADHOC) {
|
||||
ieee->set_chan(ieee->dev,
|
||||
ieee->current_network.channel);
|
||||
@ -1186,7 +1181,7 @@ static void _rtl92e_watchdog_wq_cb(void *data)
|
||||
if (!priv->up || priv->hw_radio_off)
|
||||
return;
|
||||
|
||||
if (priv->rtllib->state >= RTLLIB_LINKED) {
|
||||
if (priv->rtllib->link_state >= MAC80211_LINKED) {
|
||||
if (priv->rtllib->CntAfterLink < 2)
|
||||
priv->rtllib->CntAfterLink++;
|
||||
} else {
|
||||
@ -1196,8 +1191,8 @@ static void _rtl92e_watchdog_wq_cb(void *data)
|
||||
rtl92e_dm_watchdog(dev);
|
||||
|
||||
if (!rtllib_act_scanning(priv->rtllib, false)) {
|
||||
if ((ieee->iw_mode == IW_MODE_INFRA) && (ieee->state ==
|
||||
RTLLIB_NOLINK) &&
|
||||
if ((ieee->iw_mode == IW_MODE_INFRA) && (ieee->link_state ==
|
||||
MAC80211_NOLINK) &&
|
||||
(ieee->rf_power_state == rf_on) && !ieee->is_set_key &&
|
||||
(!ieee->proto_stoppping) && !ieee->wx_set_enc) {
|
||||
if ((ieee->pwr_save_ctrl.ReturnPoint ==
|
||||
@ -1207,7 +1202,7 @@ static void _rtl92e_watchdog_wq_cb(void *data)
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((ieee->state == RTLLIB_LINKED) && (ieee->iw_mode ==
|
||||
if ((ieee->link_state == MAC80211_LINKED) && (ieee->iw_mode ==
|
||||
IW_MODE_INFRA) && (!ieee->net_promiscuous_md)) {
|
||||
if (ieee->link_detect_info.NumRxOkInPeriod > 100 ||
|
||||
ieee->link_detect_info.NumTxOkInPeriod > 100)
|
||||
@ -1249,7 +1244,7 @@ static void _rtl92e_watchdog_wq_cb(void *data)
|
||||
ieee->link_detect_info.bHigherBusyTraffic = bHigherBusyTraffic;
|
||||
ieee->link_detect_info.bHigherBusyRxTraffic = bHigherBusyRxTraffic;
|
||||
|
||||
if (ieee->state == RTLLIB_LINKED && ieee->iw_mode == IW_MODE_INFRA) {
|
||||
if (ieee->link_state == MAC80211_LINKED && ieee->iw_mode == IW_MODE_INFRA) {
|
||||
u32 TotalRxBcnNum = 0;
|
||||
u32 TotalRxDataNum = 0;
|
||||
|
||||
@ -1268,17 +1263,13 @@ static void _rtl92e_watchdog_wq_cb(void *data)
|
||||
"===>%s(): AP is power off, chan:%d, connect another one\n",
|
||||
__func__, priv->chan);
|
||||
|
||||
ieee->state = RTLLIB_ASSOCIATING;
|
||||
ieee->link_state = RTLLIB_ASSOCIATING;
|
||||
|
||||
RemovePeerTS(priv->rtllib,
|
||||
priv->rtllib->current_network.bssid);
|
||||
ieee->is_roaming = true;
|
||||
ieee->is_set_key = false;
|
||||
ieee->link_change(dev);
|
||||
if (ieee->LedControlHandler)
|
||||
ieee->LedControlHandler(ieee->dev,
|
||||
LED_CTL_START_TO_LINK);
|
||||
|
||||
notify_wx_assoc_event(ieee);
|
||||
|
||||
if (!(ieee->rtllib_ap_sec_type(ieee) &
|
||||
@ -1440,7 +1431,7 @@ static int _rtl92e_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
tcb_desc->RATRIndex = 7;
|
||||
tcb_desc->ratr_index = 7;
|
||||
tcb_desc->tx_dis_rate_fallback = 1;
|
||||
tcb_desc->tx_use_drv_assinged_rate = 1;
|
||||
tcb_desc->bTxEnableFwCalcDur = 1;
|
||||
@ -1509,7 +1500,6 @@ static short _rtl92e_tx(struct net_device *dev, struct sk_buff *skb)
|
||||
MAX_DEV_ADDR_SIZE);
|
||||
struct tx_desc *pdesc = NULL;
|
||||
struct rtllib_hdr_1addr *header = NULL;
|
||||
u16 fc = 0, type = 0;
|
||||
u8 *pda_addr = NULL;
|
||||
int idx;
|
||||
u32 fwinfo_size = 0;
|
||||
@ -1525,8 +1515,6 @@ static short _rtl92e_tx(struct net_device *dev, struct sk_buff *skb)
|
||||
fwinfo_size = sizeof(struct tx_fwinfo_8190pci);
|
||||
|
||||
header = (struct rtllib_hdr_1addr *)(((u8 *)skb->data) + fwinfo_size);
|
||||
fc = le16_to_cpu(header->frame_ctl);
|
||||
type = WLAN_FC_GET_TYPE(fc);
|
||||
pda_addr = header->addr1;
|
||||
|
||||
if (!is_broadcast_ether_addr(pda_addr) && !is_multicast_ether_addr(pda_addr))
|
||||
@ -1548,11 +1536,6 @@ static short _rtl92e_tx(struct net_device *dev, struct sk_buff *skb)
|
||||
spin_unlock_irqrestore(&priv->irq_th_lock, flags);
|
||||
return skb->len;
|
||||
}
|
||||
|
||||
if (type == RTLLIB_FTYPE_DATA) {
|
||||
if (priv->rtllib->LedControlHandler)
|
||||
priv->rtllib->LedControlHandler(dev, LED_CTL_TX);
|
||||
}
|
||||
rtl92e_fill_tx_desc(dev, pdesc, tcb_desc, skb);
|
||||
__skb_queue_tail(&ring->queue, skb);
|
||||
pdesc->OWN = 1;
|
||||
@ -1779,8 +1762,6 @@ static void _rtl92e_rx_normal(struct net_device *dev)
|
||||
struct r8192_priv *priv = rtllib_priv(dev);
|
||||
struct rtllib_hdr_1addr *rtllib_hdr = NULL;
|
||||
bool unicast_packet = false;
|
||||
bool bLedBlinking = true;
|
||||
u16 fc = 0, type = 0;
|
||||
u32 skb_len = 0;
|
||||
int rx_queue_idx = RX_MPDU_QUEUE;
|
||||
|
||||
@ -1788,7 +1769,6 @@ static void _rtl92e_rx_normal(struct net_device *dev)
|
||||
.signal = 0,
|
||||
.noise = (u8)-98,
|
||||
.rate = 0,
|
||||
.freq = RTLLIB_24GHZ_BAND,
|
||||
};
|
||||
unsigned int count = priv->rxringcount;
|
||||
|
||||
@ -1824,16 +1804,6 @@ static void _rtl92e_rx_normal(struct net_device *dev)
|
||||
/* unicast packet */
|
||||
unicast_packet = true;
|
||||
}
|
||||
fc = le16_to_cpu(rtllib_hdr->frame_ctl);
|
||||
type = WLAN_FC_GET_TYPE(fc);
|
||||
if (type == RTLLIB_FTYPE_MGMT)
|
||||
bLedBlinking = false;
|
||||
|
||||
if (bLedBlinking)
|
||||
if (priv->rtllib->LedControlHandler)
|
||||
priv->rtllib->LedControlHandler(dev,
|
||||
LED_CTL_RX);
|
||||
|
||||
skb_len = skb->len;
|
||||
|
||||
if (!rtllib_rx(priv->rtllib, skb, &stats)) {
|
||||
|
@ -231,7 +231,6 @@ struct r8192_priv {
|
||||
struct rt_stats stats;
|
||||
struct iw_statistics wstats;
|
||||
|
||||
short (*rf_set_sens)(struct net_device *dev, short sens);
|
||||
u8 (*rf_set_chan)(struct net_device *dev, u8 ch);
|
||||
|
||||
struct rx_desc *rx_ring[MAX_RX_QUEUE];
|
||||
@ -271,8 +270,6 @@ struct r8192_priv {
|
||||
short promisc;
|
||||
|
||||
short chan;
|
||||
short sens;
|
||||
short max_sens;
|
||||
bool ps_force;
|
||||
|
||||
u32 irq_mask[2];
|
||||
|
@ -159,7 +159,6 @@ static void _rtl92e_dm_check_rate_adaptive(struct net_device *dev);
|
||||
static void _rtl92e_dm_init_bandwidth_autoswitch(struct net_device *dev);
|
||||
static void _rtl92e_dm_bandwidth_autoswitch(struct net_device *dev);
|
||||
|
||||
|
||||
static void _rtl92e_dm_check_tx_power_tracking(struct net_device *dev);
|
||||
|
||||
static void _rtl92e_dm_bb_initialgain_restore(struct net_device *dev);
|
||||
@ -179,7 +178,6 @@ static void _rtl92e_dm_check_rx_path_selection(struct net_device *dev);
|
||||
static void _rtl92e_dm_init_rx_path_selection(struct net_device *dev);
|
||||
static void _rtl92e_dm_rx_path_sel_byrssi(struct net_device *dev);
|
||||
|
||||
|
||||
static void _rtl92e_dm_init_fsync(struct net_device *dev);
|
||||
static void _rtl92e_dm_deinit_fsync(struct net_device *dev);
|
||||
|
||||
@ -219,9 +217,7 @@ void rtl92e_dm_init(struct net_device *dev)
|
||||
|
||||
void rtl92e_dm_deinit(struct net_device *dev)
|
||||
{
|
||||
|
||||
_rtl92e_dm_deinit_fsync(dev);
|
||||
|
||||
}
|
||||
|
||||
void rtl92e_dm_watchdog(struct net_device *dev)
|
||||
@ -250,7 +246,6 @@ void rtl92e_dm_watchdog(struct net_device *dev)
|
||||
|
||||
void rtl92e_init_adaptive_rate(struct net_device *dev)
|
||||
{
|
||||
|
||||
struct r8192_priv *priv = rtllib_priv(dev);
|
||||
struct rate_adaptive *pra = &priv->rate_adaptive;
|
||||
|
||||
@ -296,8 +291,7 @@ static void _rtl92e_dm_check_rate_adaptive(struct net_device *dev)
|
||||
if (priv->rtllib->mode != WIRELESS_MODE_N_24G)
|
||||
return;
|
||||
|
||||
if (priv->rtllib->state == RTLLIB_LINKED) {
|
||||
|
||||
if (priv->rtllib->link_state == MAC80211_LINKED) {
|
||||
bshort_gi_enabled = (ht_info->cur_tx_bw40mhz &&
|
||||
ht_info->bCurShortGI40MHz) ||
|
||||
(!ht_info->cur_tx_bw40mhz &&
|
||||
@ -524,7 +518,6 @@ static void _rtl92e_dm_tx_power_tracking_callback_tssi(struct net_device *dev)
|
||||
priv->rtllib->bdynamic_txpower_enable = false;
|
||||
|
||||
for (j = 0; j <= 30; j++) {
|
||||
|
||||
tx_cmd.op = TXCMD_SET_TX_PWR_TRACKING;
|
||||
tx_cmd.length = 4;
|
||||
tx_cmd.value = priv->pwr_track >> 24;
|
||||
@ -629,9 +622,10 @@ static void _rtl92e_dm_tx_power_tracking_callback_tssi(struct net_device *dev)
|
||||
} else if (priv->rtllib->current_network.channel != 14 && priv->bcck_in_ch14) {
|
||||
priv->bcck_in_ch14 = false;
|
||||
rtl92e_dm_cck_txpower_adjust(dev, priv->bcck_in_ch14);
|
||||
} else
|
||||
} else {
|
||||
rtl92e_dm_cck_txpower_adjust(dev, priv->bcck_in_ch14);
|
||||
}
|
||||
}
|
||||
|
||||
if (priv->cck_present_attn_diff <= -12 ||
|
||||
priv->cck_present_attn_diff >= 24) {
|
||||
@ -657,21 +651,21 @@ static void _rtl92e_dm_tx_power_tracking_cb_thermal(struct net_device *dev)
|
||||
{
|
||||
#define ThermalMeterVal 9
|
||||
struct r8192_priv *priv = rtllib_priv(dev);
|
||||
u32 tmpRegA, TempCCk;
|
||||
u8 tmpOFDMindex, tmpCCKindex, tmpCCK20Mindex, tmpCCK40Mindex, tmpval;
|
||||
u32 tmp_reg, tmp_cck;
|
||||
u8 tmp_ofdm_index, tmp_cck_index, tmp_cck_20m_index, tmp_cck_40m_index, tmpval;
|
||||
int i = 0, CCKSwingNeedUpdate = 0;
|
||||
|
||||
if (!priv->tx_pwr_tracking_init) {
|
||||
tmpRegA = rtl92e_get_bb_reg(dev, rOFDM0_XATxIQImbalance,
|
||||
tmp_reg = rtl92e_get_bb_reg(dev, rOFDM0_XATxIQImbalance,
|
||||
bMaskDWord);
|
||||
for (i = 0; i < OFDM_TABLE_LEN; i++) {
|
||||
if (tmpRegA == OFDMSwingTable[i])
|
||||
if (tmp_reg == OFDMSwingTable[i])
|
||||
priv->ofdm_index[0] = i;
|
||||
}
|
||||
|
||||
TempCCk = rtl92e_get_bb_reg(dev, rCCK0_TxFilter1, bMaskByte2);
|
||||
tmp_cck = rtl92e_get_bb_reg(dev, rCCK0_TxFilter1, bMaskByte2);
|
||||
for (i = 0; i < CCK_TABLE_LEN; i++) {
|
||||
if (TempCCk == (u32)CCKSwingTable_Ch1_Ch13[i][0]) {
|
||||
if (tmp_cck == (u32)CCKSwingTable_Ch1_Ch13[i][0]) {
|
||||
priv->cck_index = i;
|
||||
break;
|
||||
}
|
||||
@ -680,42 +674,42 @@ static void _rtl92e_dm_tx_power_tracking_cb_thermal(struct net_device *dev)
|
||||
return;
|
||||
}
|
||||
|
||||
tmpRegA = rtl92e_get_rf_reg(dev, RF90_PATH_A, 0x12, 0x078);
|
||||
if (tmpRegA < 3 || tmpRegA > 13)
|
||||
tmp_reg = rtl92e_get_rf_reg(dev, RF90_PATH_A, 0x12, 0x078);
|
||||
if (tmp_reg < 3 || tmp_reg > 13)
|
||||
return;
|
||||
if (tmpRegA >= 12)
|
||||
tmpRegA = 12;
|
||||
if (tmp_reg >= 12)
|
||||
tmp_reg = 12;
|
||||
priv->thermal_meter[0] = ThermalMeterVal;
|
||||
priv->thermal_meter[1] = ThermalMeterVal;
|
||||
|
||||
if (priv->thermal_meter[0] >= (u8)tmpRegA) {
|
||||
tmpOFDMindex = tmpCCK20Mindex = 6+(priv->thermal_meter[0] -
|
||||
(u8)tmpRegA);
|
||||
tmpCCK40Mindex = tmpCCK20Mindex - 6;
|
||||
if (tmpOFDMindex >= OFDM_TABLE_LEN)
|
||||
tmpOFDMindex = OFDM_TABLE_LEN - 1;
|
||||
if (tmpCCK20Mindex >= CCK_TABLE_LEN)
|
||||
tmpCCK20Mindex = CCK_TABLE_LEN - 1;
|
||||
if (tmpCCK40Mindex >= CCK_TABLE_LEN)
|
||||
tmpCCK40Mindex = CCK_TABLE_LEN - 1;
|
||||
if (priv->thermal_meter[0] >= (u8)tmp_reg) {
|
||||
tmp_ofdm_index = 6 + (priv->thermal_meter[0] - (u8)tmp_reg);
|
||||
tmp_cck_20m_index = tmp_ofdm_index;
|
||||
tmp_cck_40m_index = tmp_cck_20m_index - 6;
|
||||
if (tmp_ofdm_index >= OFDM_TABLE_LEN)
|
||||
tmp_ofdm_index = OFDM_TABLE_LEN - 1;
|
||||
if (tmp_cck_20m_index >= CCK_TABLE_LEN)
|
||||
tmp_cck_20m_index = CCK_TABLE_LEN - 1;
|
||||
if (tmp_cck_40m_index >= CCK_TABLE_LEN)
|
||||
tmp_cck_40m_index = CCK_TABLE_LEN - 1;
|
||||
} else {
|
||||
tmpval = (u8)tmpRegA - priv->thermal_meter[0];
|
||||
tmpval = (u8)tmp_reg - priv->thermal_meter[0];
|
||||
if (tmpval >= 6) {
|
||||
tmpOFDMindex = 0;
|
||||
tmpCCK20Mindex = 0;
|
||||
tmp_ofdm_index = 0;
|
||||
tmp_cck_20m_index = 0;
|
||||
} else {
|
||||
tmpOFDMindex = 6 - tmpval;
|
||||
tmpCCK20Mindex = 6 - tmpval;
|
||||
tmp_ofdm_index = 6 - tmpval;
|
||||
tmp_cck_20m_index = 6 - tmpval;
|
||||
}
|
||||
tmpCCK40Mindex = 0;
|
||||
tmp_cck_40m_index = 0;
|
||||
}
|
||||
if (priv->current_chnl_bw != HT_CHANNEL_WIDTH_20)
|
||||
tmpCCKindex = tmpCCK40Mindex;
|
||||
tmp_cck_index = tmp_cck_40m_index;
|
||||
else
|
||||
tmpCCKindex = tmpCCK20Mindex;
|
||||
tmp_cck_index = tmp_cck_20m_index;
|
||||
|
||||
priv->rec_cck_20m_idx = tmpCCK20Mindex;
|
||||
priv->rec_cck_40m_idx = tmpCCK40Mindex;
|
||||
priv->rec_cck_20m_idx = tmp_cck_20m_index;
|
||||
priv->rec_cck_40m_idx = tmp_cck_40m_index;
|
||||
|
||||
if (priv->rtllib->current_network.channel == 14 &&
|
||||
!priv->bcck_in_ch14) {
|
||||
@ -727,15 +721,15 @@ static void _rtl92e_dm_tx_power_tracking_cb_thermal(struct net_device *dev)
|
||||
CCKSwingNeedUpdate = 1;
|
||||
}
|
||||
|
||||
if (priv->cck_index != tmpCCKindex) {
|
||||
priv->cck_index = tmpCCKindex;
|
||||
if (priv->cck_index != tmp_cck_index) {
|
||||
priv->cck_index = tmp_cck_index;
|
||||
CCKSwingNeedUpdate = 1;
|
||||
}
|
||||
|
||||
if (CCKSwingNeedUpdate)
|
||||
rtl92e_dm_cck_txpower_adjust(dev, priv->bcck_in_ch14);
|
||||
if (priv->ofdm_index[0] != tmpOFDMindex) {
|
||||
priv->ofdm_index[0] = tmpOFDMindex;
|
||||
if (priv->ofdm_index[0] != tmp_ofdm_index) {
|
||||
priv->ofdm_index[0] = tmp_ofdm_index;
|
||||
rtl92e_set_bb_reg(dev, rOFDM0_XATxIQImbalance, bMaskDWord,
|
||||
OFDMSwingTable[priv->ofdm_index[0]]);
|
||||
}
|
||||
@ -756,20 +750,17 @@ void rtl92e_dm_txpower_tracking_wq(void *data)
|
||||
|
||||
static void _rtl92e_dm_initialize_tx_power_tracking_tssi(struct net_device *dev)
|
||||
{
|
||||
|
||||
struct r8192_priv *priv = rtllib_priv(dev);
|
||||
|
||||
priv->btxpower_tracking = true;
|
||||
priv->txpower_count = 0;
|
||||
priv->tx_pwr_tracking_init = false;
|
||||
|
||||
}
|
||||
|
||||
static void _rtl92e_dm_init_tx_power_tracking_thermal(struct net_device *dev)
|
||||
{
|
||||
struct r8192_priv *priv = rtllib_priv(dev);
|
||||
|
||||
|
||||
if (priv->rtllib->FwRWRF)
|
||||
priv->btxpower_tracking = true;
|
||||
else
|
||||
@ -799,12 +790,10 @@ static void _rtl92e_dm_check_tx_power_tracking_tssi(struct net_device *dev)
|
||||
return;
|
||||
tx_power_track_counter++;
|
||||
|
||||
|
||||
if (tx_power_track_counter >= 180) {
|
||||
schedule_delayed_work(&priv->txpower_tracking_wq, 0);
|
||||
tx_power_track_counter = 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static void _rtl92e_dm_check_tx_power_tracking_thermal(struct net_device *dev)
|
||||
@ -833,7 +822,6 @@ static void _rtl92e_dm_check_tx_power_tracking_thermal(struct net_device *dev)
|
||||
netdev_info(dev, "===============>Schedule TxPowerTrackingWorkItem\n");
|
||||
schedule_delayed_work(&priv->txpower_tracking_wq, 0);
|
||||
TM_Trigger = 0;
|
||||
|
||||
}
|
||||
|
||||
static void _rtl92e_dm_check_tx_power_tracking(struct net_device *dev)
|
||||
@ -965,7 +953,6 @@ void rtl92e_dm_restore_state(struct net_device *dev)
|
||||
_rtl92e_dm_tx_power_reset_recovery(dev);
|
||||
|
||||
_rtl92e_dm_bb_initialgain_restore(dev);
|
||||
|
||||
}
|
||||
|
||||
static void _rtl92e_dm_bb_initialgain_restore(struct net_device *dev)
|
||||
@ -989,7 +976,6 @@ static void _rtl92e_dm_bb_initialgain_restore(struct net_device *dev)
|
||||
rtl92e_set_bb_reg(dev, rCCK0_CCA, bit_mask,
|
||||
(u32)priv->initgain_backup.cca);
|
||||
rtl92e_set_bb_reg(dev, UFWP, bMaskByte1, 0x1);
|
||||
|
||||
}
|
||||
|
||||
void rtl92e_dm_backup_state(struct net_device *dev)
|
||||
@ -1043,7 +1029,6 @@ static void _rtl92e_dm_dig_init(struct net_device *dev)
|
||||
|
||||
static void _rtl92e_dm_ctrl_initgain_byrssi(struct net_device *dev)
|
||||
{
|
||||
|
||||
if (!dm_digtable.dig_enable_flag)
|
||||
return;
|
||||
|
||||
@ -1091,12 +1076,11 @@ static void _rtl92e_dm_ctrl_initgain_byrssi_driver(struct net_device *dev)
|
||||
dm_digtable.dig_state = DM_STA_DIG_OFF;
|
||||
}
|
||||
|
||||
if (priv->rtllib->state == RTLLIB_LINKED)
|
||||
if (priv->rtllib->link_state == MAC80211_LINKED)
|
||||
dm_digtable.cur_sta_connect_state = DIG_STA_CONNECT;
|
||||
else
|
||||
dm_digtable.cur_sta_connect_state = DIG_STA_DISCONNECT;
|
||||
|
||||
|
||||
dm_digtable.rssi_val = priv->undecorated_smoothed_pwdb;
|
||||
_rtl92e_dm_initial_gain(dev);
|
||||
_rtl92e_dm_pd_th(dev);
|
||||
@ -1104,7 +1088,6 @@ static void _rtl92e_dm_ctrl_initgain_byrssi_driver(struct net_device *dev)
|
||||
if (dm_digtable.dig_algorithm_switch)
|
||||
dm_digtable.dig_algorithm_switch = 0;
|
||||
dm_digtable.pre_sta_connect_state = dm_digtable.cur_sta_connect_state;
|
||||
|
||||
}
|
||||
|
||||
static void _rtl92e_dm_ctrl_initgain_byrssi_false_alarm(struct net_device *dev)
|
||||
@ -1123,7 +1106,7 @@ static void _rtl92e_dm_ctrl_initgain_byrssi_false_alarm(struct net_device *dev)
|
||||
dm_digtable.dig_algorithm_switch = 0;
|
||||
}
|
||||
|
||||
if (priv->rtllib->state != RTLLIB_LINKED)
|
||||
if (priv->rtllib->link_state != MAC80211_LINKED)
|
||||
return;
|
||||
|
||||
if ((priv->undecorated_smoothed_pwdb > dm_digtable.rssi_low_thresh) &&
|
||||
@ -1194,7 +1177,6 @@ static void _rtl92e_dm_ctrl_initgain_byrssi_false_alarm(struct net_device *dev)
|
||||
_rtl92e_dm_ctrl_initgain_byrssi_highpwr(dev);
|
||||
}
|
||||
|
||||
|
||||
static void _rtl92e_dm_ctrl_initgain_byrssi_highpwr(struct net_device *dev)
|
||||
{
|
||||
struct r8192_priv *priv = rtllib_priv(dev);
|
||||
@ -1392,7 +1374,6 @@ static void _rtl92e_dm_cs_ratio(struct net_device *dev)
|
||||
reset_cnt = priv->reset_count;
|
||||
}
|
||||
|
||||
|
||||
if ((dm_digtable.precs_ratio_state != dm_digtable.curcs_ratio_state) ||
|
||||
!initialized || force_write) {
|
||||
if (dm_digtable.curcs_ratio_state == DIG_CS_RATIO_LOWER)
|
||||
@ -1426,7 +1407,7 @@ static void _rtl92e_dm_check_edca_turbo(struct net_device *dev)
|
||||
|
||||
if (priv->rtllib->iw_mode == IW_MODE_ADHOC)
|
||||
goto dm_CheckEdcaTurbo_EXIT;
|
||||
if (priv->rtllib->state != RTLLIB_LINKED)
|
||||
if (priv->rtllib->link_state != MAC80211_LINKED)
|
||||
goto dm_CheckEdcaTurbo_EXIT;
|
||||
if (priv->rtllib->ht_info->iot_action & HT_IOT_ACT_DISABLE_EDCA_TURBO)
|
||||
goto dm_CheckEdcaTurbo_EXIT;
|
||||
@ -1474,7 +1455,6 @@ static void _rtl92e_dm_check_edca_turbo(struct net_device *dev)
|
||||
edca_setting_UL[ht_info->IOTPeer]);
|
||||
priv->bis_cur_rdlstate = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
priv->bcurrent_turbo_EDCA = true;
|
||||
@ -1489,7 +1469,6 @@ static void _rtl92e_dm_check_edca_turbo(struct net_device *dev)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
dm_CheckEdcaTurbo_EXIT:
|
||||
priv->rtllib->bis_any_nonbepkts = false;
|
||||
lastTxOkCnt = priv->stats.txbytesunicast;
|
||||
@ -1746,7 +1725,6 @@ static void _rtl92e_dm_rx_path_sel_byrssi(struct net_device *dev)
|
||||
tmp_cck_min_pwdb = cur_cck_pwdb;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1812,7 +1790,6 @@ static void _rtl92e_dm_check_rx_path_selection(struct net_device *dev)
|
||||
schedule_delayed_work(&priv->rfpath_check_wq, 0);
|
||||
}
|
||||
|
||||
|
||||
static void _rtl92e_dm_init_fsync(struct net_device *dev)
|
||||
{
|
||||
struct r8192_priv *priv = rtllib_priv(dev);
|
||||
@ -1829,7 +1806,6 @@ static void _rtl92e_dm_init_fsync(struct net_device *dev)
|
||||
timer_setup(&priv->fsync_timer, _rtl92e_dm_fsync_timer_callback, 0);
|
||||
}
|
||||
|
||||
|
||||
static void _rtl92e_dm_deinit_fsync(struct net_device *dev)
|
||||
{
|
||||
struct r8192_priv *priv = rtllib_priv(dev);
|
||||
@ -1845,7 +1821,7 @@ static void _rtl92e_dm_fsync_timer_callback(struct timer_list *t)
|
||||
bool bSwitchFromCountDiff = false;
|
||||
bool bDoubleTimeInterval = false;
|
||||
|
||||
if (priv->rtllib->state == RTLLIB_LINKED &&
|
||||
if (priv->rtllib->link_state == MAC80211_LINKED &&
|
||||
priv->rtllib->bfsync_enable &&
|
||||
(priv->rtllib->ht_info->iot_action & HT_IOT_ACT_CDD_FSYNC)) {
|
||||
u32 rate_bitmap;
|
||||
@ -1864,7 +1840,6 @@ static void _rtl92e_dm_fsync_timer_callback(struct timer_list *t)
|
||||
else
|
||||
rate_count_diff = rate_count - priv->rate_record;
|
||||
if (rate_count_diff < priv->rate_count_diff_rec) {
|
||||
|
||||
u32 DiffNum = priv->rate_count_diff_rec -
|
||||
rate_count_diff;
|
||||
if (DiffNum >=
|
||||
@ -2005,7 +1980,6 @@ static void _rtl92e_dm_start_sw_fsync(struct net_device *dev)
|
||||
add_timer(&priv->fsync_timer);
|
||||
|
||||
rtl92e_writel(dev, rOFDM0_RxDetector2, 0x465c12cd);
|
||||
|
||||
}
|
||||
|
||||
static void _rtl92e_dm_check_fsync(struct net_device *dev)
|
||||
@ -2017,7 +1991,7 @@ static void _rtl92e_dm_check_fsync(struct net_device *dev)
|
||||
static u8 reg_c38_State = RegC38_Default;
|
||||
static u32 reset_cnt;
|
||||
|
||||
if (priv->rtllib->state == RTLLIB_LINKED &&
|
||||
if (priv->rtllib->link_state == MAC80211_LINKED &&
|
||||
priv->rtllib->ht_info->IOTPeer == HT_IOT_PEER_BROADCOM) {
|
||||
if (priv->rtllib->bfsync_enable == 0) {
|
||||
switch (priv->rtllib->fsync_state) {
|
||||
@ -2048,7 +2022,6 @@ static void _rtl92e_dm_check_fsync(struct net_device *dev)
|
||||
case SW_Fsync:
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
if (reg_c38_State != RegC38_Fsync_AP_BCM) {
|
||||
@ -2071,7 +2044,7 @@ static void _rtl92e_dm_check_fsync(struct net_device *dev)
|
||||
break;
|
||||
}
|
||||
|
||||
if (priv->rtllib->state == RTLLIB_LINKED) {
|
||||
if (priv->rtllib->link_state == MAC80211_LINKED) {
|
||||
if (priv->undecorated_smoothed_pwdb <=
|
||||
RegC38_TH) {
|
||||
if (reg_c38_State !=
|
||||
@ -2132,7 +2105,7 @@ static void _rtl92e_dm_dynamic_tx_power(struct net_device *dev)
|
||||
return;
|
||||
}
|
||||
if ((priv->rtllib->ht_info->IOTPeer == HT_IOT_PEER_ATHEROS) &&
|
||||
(priv->rtllib->mode == IEEE_G)) {
|
||||
(priv->rtllib->mode == WIRELESS_MODE_G)) {
|
||||
txhipower_threshold = TX_POWER_ATHEROAP_THRESH_HIGH;
|
||||
txlowpower_threshold = TX_POWER_ATHEROAP_THRESH_LOW;
|
||||
} else {
|
||||
@ -2140,7 +2113,7 @@ static void _rtl92e_dm_dynamic_tx_power(struct net_device *dev)
|
||||
txlowpower_threshold = TX_POWER_NEAR_FIELD_THRESH_LOW;
|
||||
}
|
||||
|
||||
if (priv->rtllib->state == RTLLIB_LINKED) {
|
||||
if (priv->rtllib->link_state == MAC80211_LINKED) {
|
||||
if (priv->undecorated_smoothed_pwdb >= txhipower_threshold) {
|
||||
priv->dynamic_tx_high_pwr = true;
|
||||
priv->dynamic_tx_low_pwr = false;
|
||||
@ -2164,7 +2137,6 @@ static void _rtl92e_dm_dynamic_tx_power(struct net_device *dev)
|
||||
}
|
||||
priv->last_dtp_flag_high = priv->dynamic_tx_high_pwr;
|
||||
priv->last_dtp_flag_low = priv->dynamic_tx_low_pwr;
|
||||
|
||||
}
|
||||
|
||||
static void _rtl92e_dm_check_txrateandretrycount(struct net_device *dev)
|
||||
|
@ -27,8 +27,8 @@ static u32 _rtl92e_ethtool_get_link(struct net_device *dev)
|
||||
{
|
||||
struct r8192_priv *priv = rtllib_priv(dev);
|
||||
|
||||
return ((priv->rtllib->state == RTLLIB_LINKED) ||
|
||||
(priv->rtllib->state == RTLLIB_LINKED_SCANNING));
|
||||
return ((priv->rtllib->link_state == MAC80211_LINKED) ||
|
||||
(priv->rtllib->link_state == MAC80211_LINKED_SCANNING));
|
||||
}
|
||||
|
||||
const struct ethtool_ops rtl819x_ethtool_ops = {
|
||||
|
@ -9,7 +9,6 @@
|
||||
#include "r8190P_rtl8256.h"
|
||||
#include "rtl_pm.h"
|
||||
|
||||
|
||||
int rtl92e_suspend(struct device *dev_d)
|
||||
{
|
||||
struct net_device *dev = dev_get_drvdata(dev_d);
|
||||
@ -62,7 +61,6 @@ int rtl92e_resume(struct device *dev_d)
|
||||
|
||||
netdev_info(dev, "================>r8192E resume call.\n");
|
||||
|
||||
|
||||
pci_read_config_dword(pdev, 0x40, &val);
|
||||
if ((val & 0x0000ff00) != 0)
|
||||
pci_write_config_dword(pdev, 0x40, val & 0xffff00ff);
|
||||
|
@ -118,7 +118,7 @@ void rtl92e_ips_enter(struct net_device *dev)
|
||||
|
||||
rt_state = priv->rtllib->rf_power_state;
|
||||
if (rt_state == rf_on && !psc->bSwRfProcessing &&
|
||||
(priv->rtllib->state != RTLLIB_LINKED) &&
|
||||
(priv->rtllib->link_state != MAC80211_LINKED) &&
|
||||
(priv->rtllib->iw_mode != IW_MODE_MASTER)) {
|
||||
psc->eInactivePowerState = rf_off;
|
||||
_rtl92e_ps_update_rf_state(dev);
|
||||
@ -209,7 +209,7 @@ void rtl92e_leisure_ps_enter(struct net_device *dev)
|
||||
&priv->rtllib->pwr_save_ctrl;
|
||||
|
||||
if (!((priv->rtllib->iw_mode == IW_MODE_INFRA) &&
|
||||
(priv->rtllib->state == RTLLIB_LINKED))
|
||||
(priv->rtllib->link_state == MAC80211_LINKED))
|
||||
|| (priv->rtllib->iw_mode == IW_MODE_ADHOC) ||
|
||||
(priv->rtllib->iw_mode == IW_MODE_MASTER))
|
||||
return;
|
||||
@ -217,16 +217,13 @@ void rtl92e_leisure_ps_enter(struct net_device *dev)
|
||||
if (psc->bLeisurePs) {
|
||||
if (psc->LpsIdleCount >= RT_CHECK_FOR_HANG_PERIOD) {
|
||||
|
||||
if (priv->rtllib->ps == RTLLIB_PS_DISABLED) {
|
||||
if (priv->rtllib->SetFwCmdHandler)
|
||||
priv->rtllib->SetFwCmdHandler(dev, FW_CMD_LPS_ENTER);
|
||||
_rtl92e_ps_set_mode(dev, RTLLIB_PS_MBCAST |
|
||||
RTLLIB_PS_UNICAST);
|
||||
}
|
||||
} else
|
||||
if (priv->rtllib->ps == RTLLIB_PS_DISABLED)
|
||||
_rtl92e_ps_set_mode(dev, RTLLIB_PS_MBCAST | RTLLIB_PS_UNICAST);
|
||||
} else {
|
||||
psc->LpsIdleCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void rtl92e_leisure_ps_leave(struct net_device *dev)
|
||||
{
|
||||
@ -235,10 +232,7 @@ void rtl92e_leisure_ps_leave(struct net_device *dev)
|
||||
&priv->rtllib->pwr_save_ctrl;
|
||||
|
||||
if (psc->bLeisurePs) {
|
||||
if (priv->rtllib->ps != RTLLIB_PS_DISABLED) {
|
||||
if (priv->rtllib->ps != RTLLIB_PS_DISABLED)
|
||||
_rtl92e_ps_set_mode(dev, RTLLIB_PS_DISABLED);
|
||||
if (priv->rtllib->SetFwCmdHandler)
|
||||
priv->rtllib->SetFwCmdHandler(dev, FW_CMD_LPS_LEAVE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -169,7 +169,7 @@ static int _rtl92e_wx_adapter_power_status(struct net_device *dev,
|
||||
priv->ps_force = false;
|
||||
psc->bLeisurePs = true;
|
||||
} else {
|
||||
if (priv->rtllib->state == RTLLIB_LINKED)
|
||||
if (priv->rtllib->link_state == MAC80211_LINKED)
|
||||
rtl92e_leisure_ps_leave(dev);
|
||||
|
||||
priv->ps_force = true;
|
||||
@ -311,10 +311,6 @@ static int _rtl92e_wx_get_range(struct net_device *dev,
|
||||
/* ~130 Mb/s real (802.11n) */
|
||||
range->throughput = 130 * 1000 * 1000;
|
||||
|
||||
if (priv->rf_set_sens != NULL)
|
||||
/* signal level threshold range */
|
||||
range->sensitivity = priv->max_sens;
|
||||
|
||||
range->max_qual.qual = 100;
|
||||
range->max_qual.level = 0;
|
||||
range->max_qual.noise = 0;
|
||||
@ -346,9 +342,11 @@ static int _rtl92e_wx_get_range(struct net_device *dev,
|
||||
|
||||
for (i = 0, val = 0; i < 14; i++) {
|
||||
if ((priv->rtllib->active_channel_map)[i + 1]) {
|
||||
s32 freq_khz;
|
||||
|
||||
range->freq[val].i = i + 1;
|
||||
range->freq[val].m = rtllib_wlan_frequencies[i] *
|
||||
100000;
|
||||
freq_khz = ieee80211_channel_to_freq_khz(i + 1, NL80211_BAND_2GHZ);
|
||||
range->freq[val].m = freq_khz * 100;
|
||||
range->freq[val].e = 1;
|
||||
val++;
|
||||
}
|
||||
@ -377,10 +375,10 @@ static int _rtl92e_wx_set_scan(struct net_device *dev,
|
||||
int ret;
|
||||
|
||||
if (!(ieee->softmac_features & IEEE_SOFTMAC_SCAN)) {
|
||||
if ((ieee->state >= RTLLIB_ASSOCIATING) &&
|
||||
(ieee->state <= RTLLIB_ASSOCIATING_AUTHENTICATED))
|
||||
if ((ieee->link_state >= RTLLIB_ASSOCIATING) &&
|
||||
(ieee->link_state <= RTLLIB_ASSOCIATING_AUTHENTICATED))
|
||||
return 0;
|
||||
if ((priv->rtllib->state == RTLLIB_LINKED) &&
|
||||
if ((priv->rtllib->link_state == MAC80211_LINKED) &&
|
||||
(priv->rtllib->CntAfterLink < 2))
|
||||
return 0;
|
||||
}
|
||||
@ -393,7 +391,7 @@ static int _rtl92e_wx_set_scan(struct net_device *dev,
|
||||
rt_state = priv->rtllib->rf_power_state;
|
||||
if (!priv->up)
|
||||
return -ENETDOWN;
|
||||
if (priv->rtllib->link_detect_info.bBusyTraffic == true)
|
||||
if (priv->rtllib->link_detect_info.bBusyTraffic)
|
||||
return -EAGAIN;
|
||||
|
||||
if (wrqu->data.flags & IW_SCAN_THIS_ESSID) {
|
||||
@ -411,7 +409,7 @@ static int _rtl92e_wx_set_scan(struct net_device *dev,
|
||||
|
||||
priv->rtllib->FirstIe_InScan = true;
|
||||
|
||||
if (priv->rtllib->state != RTLLIB_LINKED) {
|
||||
if (priv->rtllib->link_state != MAC80211_LINKED) {
|
||||
if (rt_state == rf_off) {
|
||||
if (priv->rtllib->rf_off_reason >
|
||||
RF_CHANGE_BY_IPS) {
|
||||
@ -425,10 +423,6 @@ static int _rtl92e_wx_set_scan(struct net_device *dev,
|
||||
mutex_unlock(&priv->rtllib->ips_mutex);
|
||||
}
|
||||
rtllib_stop_scan(priv->rtllib);
|
||||
if (priv->rtllib->LedControlHandler)
|
||||
priv->rtllib->LedControlHandler(dev,
|
||||
LED_CTL_SITE_SURVEY);
|
||||
|
||||
if (priv->rtllib->rf_power_state != rf_off) {
|
||||
priv->rtllib->actscanning = true;
|
||||
|
||||
@ -574,9 +568,9 @@ static int _rtl92e_wx_set_frag(struct net_device *dev,
|
||||
if (priv->hw_radio_off)
|
||||
return 0;
|
||||
|
||||
if (wrqu->frag.disabled)
|
||||
if (wrqu->frag.disabled) {
|
||||
priv->rtllib->fts = DEFAULT_FRAG_THRESHOLD;
|
||||
else {
|
||||
} else {
|
||||
if (wrqu->frag.value < MIN_FRAG_THRESHOLD ||
|
||||
wrqu->frag.value > MAX_FRAG_THRESHOLD)
|
||||
return -EINVAL;
|
||||
@ -807,45 +801,6 @@ static int _rtl92e_wx_get_retry(struct net_device *dev,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int _rtl92e_wx_get_sens(struct net_device *dev,
|
||||
struct iw_request_info *info,
|
||||
union iwreq_data *wrqu, char *extra)
|
||||
{
|
||||
struct r8192_priv *priv = rtllib_priv(dev);
|
||||
|
||||
if (priv->rf_set_sens == NULL)
|
||||
return -1; /* we have not this support for this radio */
|
||||
wrqu->sens.value = priv->sens;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int _rtl92e_wx_set_sens(struct net_device *dev,
|
||||
struct iw_request_info *info,
|
||||
union iwreq_data *wrqu, char *extra)
|
||||
{
|
||||
struct r8192_priv *priv = rtllib_priv(dev);
|
||||
|
||||
short err = 0;
|
||||
|
||||
if (priv->hw_radio_off)
|
||||
return 0;
|
||||
|
||||
mutex_lock(&priv->wx_mutex);
|
||||
if (priv->rf_set_sens == NULL) {
|
||||
err = -1; /* we have not this support for this radio */
|
||||
goto exit;
|
||||
}
|
||||
if (priv->rf_set_sens(dev, wrqu->sens.value) == 0)
|
||||
priv->sens = wrqu->sens.value;
|
||||
else
|
||||
err = -EINVAL;
|
||||
|
||||
exit:
|
||||
mutex_unlock(&priv->wx_mutex);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
static int _rtl92e_wx_set_encode_ext(struct net_device *dev,
|
||||
struct iw_request_info *info,
|
||||
union iwreq_data *wrqu, char *extra)
|
||||
@ -1066,8 +1021,6 @@ static iw_handler r8192_wx_handlers[] = {
|
||||
[IW_IOCTL(SIOCGIWFREQ)] = _rtl92e_wx_get_freq,
|
||||
[IW_IOCTL(SIOCSIWMODE)] = _rtl92e_wx_set_mode,
|
||||
[IW_IOCTL(SIOCGIWMODE)] = _rtl92e_wx_get_mode,
|
||||
[IW_IOCTL(SIOCSIWSENS)] = _rtl92e_wx_set_sens,
|
||||
[IW_IOCTL(SIOCGIWSENS)] = _rtl92e_wx_get_sens,
|
||||
[IW_IOCTL(SIOCGIWRANGE)] = _rtl92e_wx_get_range,
|
||||
[IW_IOCTL(SIOCSIWAP)] = _rtl92e_wx_set_wap,
|
||||
[IW_IOCTL(SIOCGIWAP)] = _rtl92e_wx_get_wap,
|
||||
@ -1171,7 +1124,7 @@ static struct iw_statistics *_rtl92e_get_wireless_stats(struct net_device *dev)
|
||||
int tmp_qual = 0;
|
||||
int tmp_noise = 0;
|
||||
|
||||
if (ieee->state < RTLLIB_LINKED) {
|
||||
if (ieee->link_state < MAC80211_LINKED) {
|
||||
wstats->qual.qual = 10;
|
||||
wstats->qual.level = 0;
|
||||
wstats->qual.noise = 0x100 - 100; /* -100 dBm */
|
||||
|
@ -24,7 +24,6 @@ enum ht_extchnl_offset {
|
||||
};
|
||||
|
||||
struct ht_capab_ele {
|
||||
|
||||
u8 AdvCoding:1;
|
||||
u8 ChlWidth:1;
|
||||
u8 MimoPwrSave:2;
|
||||
@ -46,7 +45,6 @@ struct ht_capab_ele {
|
||||
|
||||
u8 MCS[16];
|
||||
|
||||
|
||||
u16 ExtHTCapInfo;
|
||||
|
||||
u8 TxBFCap[4];
|
||||
@ -55,7 +53,6 @@ struct ht_capab_ele {
|
||||
|
||||
} __packed;
|
||||
|
||||
|
||||
struct ht_info_ele {
|
||||
u8 ControlChl;
|
||||
|
||||
@ -94,57 +91,40 @@ enum ht_aggre_mode {
|
||||
HT_AGG_FORCE_DISABLE = 2,
|
||||
};
|
||||
|
||||
|
||||
struct rt_hi_throughput {
|
||||
u8 enable_ht;
|
||||
u8 bCurrentHTSupport;
|
||||
|
||||
u8 bRegBW40MHz;
|
||||
u8 bCurBW40MHz;
|
||||
|
||||
u8 bRegShortGI40MHz;
|
||||
u8 bCurShortGI40MHz;
|
||||
|
||||
u8 bRegShortGI20MHz;
|
||||
u8 bCurShortGI20MHz;
|
||||
|
||||
u8 bRegSuppCCK;
|
||||
u8 bCurSuppCCK;
|
||||
|
||||
enum ht_spec_ver ePeerHTSpecVer;
|
||||
|
||||
|
||||
struct ht_capab_ele SelfHTCap;
|
||||
struct ht_info_ele SelfHTInfo;
|
||||
|
||||
u8 PeerHTCapBuf[32];
|
||||
u8 PeerHTInfoBuf[32];
|
||||
|
||||
|
||||
u8 bAMSDU_Support;
|
||||
u16 nAMSDU_MaxSize;
|
||||
u8 bCurrent_AMSDU_Support;
|
||||
u16 nCurrent_AMSDU_MaxSize;
|
||||
|
||||
u8 bAMPDUEnable;
|
||||
u8 bCurrentAMPDUEnable;
|
||||
u8 AMPDU_Factor;
|
||||
u8 CurrentAMPDUFactor;
|
||||
u8 MPDU_Density;
|
||||
u8 current_mpdu_density;
|
||||
|
||||
enum ht_aggre_mode ForcedAMPDUMode;
|
||||
u8 forced_ampdu_factor;
|
||||
u8 forced_mpdu_density;
|
||||
|
||||
enum ht_aggre_mode ForcedAMSDUMode;
|
||||
u8 forced_short_gi;
|
||||
|
||||
u8 current_op_mode;
|
||||
|
||||
u8 self_mimo_ps;
|
||||
u8 peer_mimo_ps;
|
||||
|
||||
enum ht_extchnl_offset CurSTAExtChnlOffset;
|
||||
u8 cur_tx_bw40mhz;
|
||||
u8 sw_bw_in_progress;
|
||||
@ -153,7 +133,6 @@ struct rt_hi_throughput {
|
||||
u8 current_rt2rt_aggregation;
|
||||
u8 current_rt2rt_long_slot_time;
|
||||
u8 sz_rt2rt_agg_buf[10];
|
||||
|
||||
u8 reg_rx_reorder_enable;
|
||||
u8 cur_rx_reorder_enable;
|
||||
u8 rx_reorder_win_size;
|
||||
|
@ -424,14 +424,12 @@ static u8 HT_PickMCSRate(struct rtllib_device *ieee, u8 *pOperateMCS)
|
||||
}
|
||||
|
||||
switch (ieee->mode) {
|
||||
case IEEE_A:
|
||||
case IEEE_B:
|
||||
case IEEE_G:
|
||||
case WIRELESS_MODE_B:
|
||||
case WIRELESS_MODE_G:
|
||||
for (i = 0; i <= 15; i++)
|
||||
pOperateMCS[i] = 0;
|
||||
break;
|
||||
case IEEE_N_24G:
|
||||
case IEEE_N_5G:
|
||||
case WIRELESS_MODE_N_24G:
|
||||
pOperateMCS[0] &= RATE_ADPT_1SS_MASK;
|
||||
pOperateMCS[1] &= RATE_ADPT_2SS_MASK;
|
||||
pOperateMCS[3] &= RATE_ADPT_MCS32_MASK;
|
||||
@ -835,11 +833,11 @@ static void HTSetConnectBwModeCallback(struct rtllib_device *ieee)
|
||||
ieee->set_chan(ieee->dev,
|
||||
ieee->current_network.channel);
|
||||
|
||||
ieee->SetBWModeHandler(ieee->dev, HT_CHANNEL_WIDTH_20_40,
|
||||
ieee->set_bw_mode_handler(ieee->dev, HT_CHANNEL_WIDTH_20_40,
|
||||
ht_info->CurSTAExtChnlOffset);
|
||||
} else {
|
||||
ieee->set_chan(ieee->dev, ieee->current_network.channel);
|
||||
ieee->SetBWModeHandler(ieee->dev, HT_CHANNEL_WIDTH_20,
|
||||
ieee->set_bw_mode_handler(ieee->dev, HT_CHANNEL_WIDTH_20,
|
||||
HT_EXTCHNL_OFFSET_NO_EXT);
|
||||
}
|
||||
|
||||
|
@ -104,7 +104,6 @@ struct acm {
|
||||
};
|
||||
|
||||
union qos_tclas {
|
||||
|
||||
struct _TYPE_GENERAL {
|
||||
u8 Priority;
|
||||
u8 ClassifierType;
|
||||
|
@ -53,6 +53,4 @@ struct rx_ts_record {
|
||||
u8 num;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
@ -38,6 +38,7 @@
|
||||
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/if_arp.h> /* ARPHRD_ETHER */
|
||||
#include <net/cfg80211.h>
|
||||
#include <net/lib80211.h>
|
||||
|
||||
#define MAX_PRECMD_CNT 16
|
||||
@ -139,7 +140,7 @@ struct cb_desc {
|
||||
u8 rata_index;
|
||||
u8 queue_index;
|
||||
u16 txbuf_size;
|
||||
u8 RATRIndex;
|
||||
u8 ratr_index;
|
||||
u8 bAMSDU:1;
|
||||
u8 bFromAggrQ:1;
|
||||
u8 reserved6:6;
|
||||
@ -308,9 +309,7 @@ enum rt_op_mode {
|
||||
};
|
||||
|
||||
#define aSifsTime \
|
||||
(((priv->rtllib->current_network.mode == IEEE_A) \
|
||||
|| (priv->rtllib->current_network.mode == IEEE_N_24G) \
|
||||
|| (priv->rtllib->current_network.mode == IEEE_N_5G)) ? 16 : 10)
|
||||
((priv->rtllib->current_network.mode == WIRELESS_MODE_N_24G) ? 16 : 10)
|
||||
|
||||
#define MGMT_QUEUE_NUM 5
|
||||
|
||||
@ -421,17 +420,6 @@ enum init_gain_op_type {
|
||||
IG_Max
|
||||
};
|
||||
|
||||
enum led_ctl_mode {
|
||||
LED_CTL_POWER_ON = 1,
|
||||
LED_CTL_LINK = 2,
|
||||
LED_CTL_NO_LINK = 3,
|
||||
LED_CTL_TX = 4,
|
||||
LED_CTL_RX = 5,
|
||||
LED_CTL_SITE_SURVEY = 6,
|
||||
LED_CTL_POWER_OFF = 7,
|
||||
LED_CTL_START_TO_LINK = 8,
|
||||
};
|
||||
|
||||
enum wireless_mode {
|
||||
WIRELESS_MODE_UNKNOWN = 0x00,
|
||||
WIRELESS_MODE_A = 0x01,
|
||||
@ -439,7 +427,6 @@ enum wireless_mode {
|
||||
WIRELESS_MODE_G = 0x04,
|
||||
WIRELESS_MODE_AUTO = 0x08,
|
||||
WIRELESS_MODE_N_24G = 0x10,
|
||||
WIRELESS_MODE_N_5G = 0x20
|
||||
};
|
||||
|
||||
#ifndef ETH_P_PAE
|
||||
@ -499,9 +486,6 @@ enum _REG_PREAMBLE_MODE {
|
||||
#define RTLLIB_CCK_MODULATION (1<<0)
|
||||
#define RTLLIB_OFDM_MODULATION (1<<1)
|
||||
|
||||
#define RTLLIB_24GHZ_BAND (1<<0)
|
||||
#define RTLLIB_52GHZ_BAND (1<<1)
|
||||
|
||||
#define RTLLIB_CCK_RATE_LEN 4
|
||||
#define RTLLIB_CCK_RATE_1MB 0x02
|
||||
#define RTLLIB_CCK_RATE_2MB 0x04
|
||||
@ -548,10 +532,8 @@ struct rtllib_rx_stats {
|
||||
u8 signal;
|
||||
u8 noise;
|
||||
u16 rate; /* in 100 kbps */
|
||||
u8 received_channel;
|
||||
u8 control;
|
||||
u8 mask;
|
||||
u8 freq;
|
||||
u16 len;
|
||||
u64 tsf;
|
||||
u32 beacon_time;
|
||||
@ -1136,10 +1118,9 @@ struct rtllib_network {
|
||||
struct list_head list;
|
||||
};
|
||||
|
||||
enum rtllib_state {
|
||||
|
||||
enum rtl_link_state {
|
||||
/* the card is not linked at all */
|
||||
RTLLIB_NOLINK = 0,
|
||||
MAC80211_NOLINK = 0,
|
||||
|
||||
/* RTLLIB_ASSOCIATING* are for BSS client mode
|
||||
* the driver shall not perform RX filtering unless
|
||||
@ -1164,14 +1145,14 @@ enum rtllib_state {
|
||||
/* the link is ok. the card associated to a BSS or linked
|
||||
* to a ibss cell or acting as an AP and creating the bss
|
||||
*/
|
||||
RTLLIB_LINKED,
|
||||
MAC80211_LINKED,
|
||||
|
||||
/* same as LINKED, but the driver shall apply RX filter
|
||||
* rules as we are in NO_LINK mode. As the card is still
|
||||
* logically linked, but it is doing a syncro site survey
|
||||
* then it will be back to LINKED state.
|
||||
*/
|
||||
RTLLIB_LINKED_SCANNING,
|
||||
MAC80211_LINKED_SCANNING,
|
||||
};
|
||||
|
||||
#define DEFAULT_MAX_SCAN_AGE (15 * HZ)
|
||||
@ -1298,7 +1279,6 @@ enum fw_cmd_io_type {
|
||||
|
||||
#define RT_MAX_LD_SLOT_NUM 10
|
||||
struct rt_link_detect {
|
||||
|
||||
u32 NumRecvBcnInPeriod;
|
||||
u32 NumRecvDataInPeriod;
|
||||
|
||||
@ -1316,7 +1296,6 @@ struct rt_link_detect {
|
||||
};
|
||||
|
||||
struct sw_cam_table {
|
||||
|
||||
u8 macaddr[ETH_ALEN];
|
||||
bool bused;
|
||||
u8 key_buf[16];
|
||||
@ -1509,7 +1488,7 @@ struct rtllib_device {
|
||||
*/
|
||||
struct rtllib_network current_network;
|
||||
|
||||
enum rtllib_state state;
|
||||
enum rtl_link_state link_state;
|
||||
|
||||
int short_slot;
|
||||
int mode; /* A, B, G */
|
||||
@ -1651,17 +1630,6 @@ struct rtllib_device {
|
||||
};
|
||||
|
||||
/* Callback functions */
|
||||
void (*set_security)(struct net_device *dev,
|
||||
struct rtllib_security *sec);
|
||||
|
||||
/* Used to TX data frame by using txb structs.
|
||||
* this is not used if in the softmac_features
|
||||
* is set the flag IEEE_SOFTMAC_TX_QUEUE
|
||||
*/
|
||||
int (*hard_start_xmit)(struct rtllib_txb *txb,
|
||||
struct net_device *dev);
|
||||
|
||||
int (*reset_port)(struct net_device *dev);
|
||||
|
||||
/* Softmac-generated frames (management) are TXed via this
|
||||
* callback if the flag IEEE_SOFTMAC_SINGLE_QUEUE is
|
||||
@ -1682,24 +1650,12 @@ struct rtllib_device {
|
||||
void (*softmac_data_hard_start_xmit)(struct sk_buff *skb,
|
||||
struct net_device *dev, int rate);
|
||||
|
||||
/* stops the HW queue for DATA frames. Useful to avoid
|
||||
* waste time to TX data frame when we are reassociating
|
||||
* This function can sleep.
|
||||
*/
|
||||
void (*data_hard_stop)(struct net_device *dev);
|
||||
|
||||
/* OK this is complementing to data_poll_hard_stop */
|
||||
void (*data_hard_resume)(struct net_device *dev);
|
||||
|
||||
/* ask to the driver to retune the radio.
|
||||
* This function can sleep. the driver should ensure
|
||||
* the radio has been switched before return.
|
||||
*/
|
||||
void (*set_chan)(struct net_device *dev, short ch);
|
||||
|
||||
void (*rtllib_start_hw_scan)(struct net_device *dev);
|
||||
void (*rtllib_stop_hw_scan)(struct net_device *dev);
|
||||
|
||||
/* indicate the driver that the link state is changed
|
||||
* for example it may indicate the card is associated now.
|
||||
* Driver might be interested in this to apply RX filter
|
||||
@ -1729,22 +1685,16 @@ struct rtllib_device {
|
||||
|
||||
/* check whether Tx hw resource available */
|
||||
short (*check_nic_enough_desc)(struct net_device *dev, int queue_index);
|
||||
void (*SetBWModeHandler)(struct net_device *dev,
|
||||
void (*set_bw_mode_handler)(struct net_device *dev,
|
||||
enum ht_channel_width bandwidth,
|
||||
enum ht_extchnl_offset Offset);
|
||||
bool (*GetNmodeSupportBySecCfg)(struct net_device *dev);
|
||||
void (*SetWirelessMode)(struct net_device *dev, u8 wireless_mode);
|
||||
void (*set_wireless_mode)(struct net_device *dev, u8 wireless_mode);
|
||||
bool (*GetHalfNmodeSupportByAPsHandler)(struct net_device *dev);
|
||||
u8 (*rtllib_ap_sec_type)(struct rtllib_device *ieee);
|
||||
void (*InitialGainHandler)(struct net_device *dev, u8 Operation);
|
||||
bool (*SetFwCmdHandler)(struct net_device *dev,
|
||||
enum fw_cmd_io_type FwCmdIO);
|
||||
void (*UpdateBeaconInterruptHandler)(struct net_device *dev,
|
||||
bool start);
|
||||
void (*init_gain_handler)(struct net_device *dev, u8 Operation);
|
||||
void (*ScanOperationBackupHandler)(struct net_device *dev,
|
||||
u8 Operation);
|
||||
void (*LedControlHandler)(struct net_device *dev,
|
||||
enum led_ctl_mode LedAction);
|
||||
void (*SetHwRegHandler)(struct net_device *dev, u8 variable, u8 *val);
|
||||
|
||||
void (*AllowAllDestAddrHandler)(struct net_device *dev,
|
||||
@ -1752,7 +1702,7 @@ struct rtllib_device {
|
||||
|
||||
void (*rtllib_ips_leave_wq)(struct net_device *dev);
|
||||
void (*rtllib_ips_leave)(struct net_device *dev);
|
||||
void (*LeisurePSLeave)(struct net_device *dev);
|
||||
void (*leisure_ps_leave)(struct net_device *dev);
|
||||
|
||||
/* This must be the last item so that it points to the data
|
||||
* allocated beyond this structure by alloc_rtllib
|
||||
@ -1760,12 +1710,7 @@ struct rtllib_device {
|
||||
u8 priv[];
|
||||
};
|
||||
|
||||
#define IEEE_A (1<<0)
|
||||
#define IEEE_B (1<<1)
|
||||
#define IEEE_G (1<<2)
|
||||
#define IEEE_N_24G (1<<4)
|
||||
#define IEEE_N_5G (1<<5)
|
||||
#define IEEE_MODE_MASK (IEEE_A|IEEE_B|IEEE_G)
|
||||
#define IEEE_MODE_MASK (WIRELESS_MODE_B | WIRELESS_MODE_G)
|
||||
|
||||
/* Generate a 802.11 header */
|
||||
|
||||
@ -2080,8 +2025,6 @@ void TsStartAddBaProcess(struct rtllib_device *ieee,
|
||||
void RemovePeerTS(struct rtllib_device *ieee, u8 *Addr);
|
||||
void RemoveAllTS(struct rtllib_device *ieee);
|
||||
|
||||
extern const long rtllib_wlan_frequencies[];
|
||||
|
||||
static inline const char *escape_essid(const char *essid, u8 essid_len)
|
||||
{
|
||||
static char escaped[IW_ESSID_MAX_SIZE * 2 + 1];
|
||||
|
@ -225,18 +225,6 @@ rtllib_rx_frame_mgmt(struct rtllib_device *ieee, struct sk_buff *skb,
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* See IEEE 802.1H for LLC/SNAP encapsulation/decapsulation
|
||||
* Ethernet-II snap header (RFC1042 for most EtherTypes)
|
||||
*/
|
||||
static unsigned char rfc1042_header[] = {
|
||||
0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
/* Bridge-Tunnel header (for EtherTypes ETH_P_AARP and ETH_P_IPX) */
|
||||
static unsigned char bridge_tunnel_header[] = {
|
||||
0xaa, 0xaa, 0x03, 0x00, 0x00, 0xf8
|
||||
};
|
||||
|
||||
/* No encapsulation header if EtherType < 0x600 (=length) */
|
||||
|
||||
/* Called by rtllib_rx_frame_decrypt */
|
||||
@ -264,8 +252,9 @@ static int rtllib_is_eapol_frame(struct rtllib_device *ieee,
|
||||
RTLLIB_FCTL_FROMDS &&
|
||||
memcmp(hdr->addr1, dev->dev_addr, ETH_ALEN) == 0) {
|
||||
/* FromDS frame with own addr as DA */
|
||||
} else
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (skb->len < 24 + 8)
|
||||
return 0;
|
||||
@ -433,8 +422,9 @@ static int is_duplicate_packet(struct rtllib_device *ieee,
|
||||
if (*last_frag + 1 != frag)
|
||||
/* out-of-order fragment */
|
||||
goto drop;
|
||||
} else
|
||||
} else {
|
||||
*last_seq = seq;
|
||||
}
|
||||
|
||||
*last_frag = frag;
|
||||
*last_time = jiffies;
|
||||
@ -1206,11 +1196,11 @@ static void rtllib_rx_check_leave_lps(struct rtllib_device *ieee, u8 unicast,
|
||||
u8 nr_subframes)
|
||||
{
|
||||
if (unicast) {
|
||||
if (ieee->state == RTLLIB_LINKED) {
|
||||
if (ieee->link_state == MAC80211_LINKED) {
|
||||
if (((ieee->link_detect_info.NumRxUnicastOkInPeriod +
|
||||
ieee->link_detect_info.NumTxOkInPeriod) > 8) ||
|
||||
(ieee->link_detect_info.NumRxUnicastOkInPeriod > 2)) {
|
||||
ieee->LeisurePSLeave(ieee->dev);
|
||||
ieee->leisure_ps_leave(ieee->dev);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2127,7 +2117,7 @@ int rtllib_parse_info_param(struct rtllib_device *ieee,
|
||||
network->tim.tim_period = info_element->data[1];
|
||||
|
||||
network->dtim_period = info_element->data[1];
|
||||
if (ieee->state != RTLLIB_LINKED)
|
||||
if (ieee->link_state != MAC80211_LINKED)
|
||||
break;
|
||||
network->last_dtim_sta_time = jiffies;
|
||||
|
||||
@ -2311,10 +2301,6 @@ static inline int rtllib_network_init(
|
||||
network->CountryIeLen = 0;
|
||||
memset(network->CountryIeBuf, 0, MAX_IE_LEN);
|
||||
HTInitializeBssDesc(&network->bssht);
|
||||
if (stats->freq == RTLLIB_52GHZ_BAND) {
|
||||
/* for A band (No DS info) */
|
||||
network->channel = stats->received_channel;
|
||||
} else
|
||||
network->flags |= NETWORK_HAS_CCK;
|
||||
|
||||
network->wpa_ie_len = 0;
|
||||
@ -2329,14 +2315,11 @@ static inline int rtllib_network_init(
|
||||
return 1;
|
||||
|
||||
network->mode = 0;
|
||||
if (stats->freq == RTLLIB_52GHZ_BAND)
|
||||
network->mode = IEEE_A;
|
||||
else {
|
||||
|
||||
if (network->flags & NETWORK_HAS_OFDM)
|
||||
network->mode |= IEEE_G;
|
||||
network->mode |= WIRELESS_MODE_G;
|
||||
if (network->flags & NETWORK_HAS_CCK)
|
||||
network->mode |= IEEE_B;
|
||||
}
|
||||
network->mode |= WIRELESS_MODE_B;
|
||||
|
||||
if (network->mode == 0) {
|
||||
netdev_dbg(ieee->dev, "Filtered out '%s (%pM)' network.\n",
|
||||
@ -2346,10 +2329,8 @@ static inline int rtllib_network_init(
|
||||
}
|
||||
|
||||
if (network->bssht.bd_support_ht) {
|
||||
if (network->mode == IEEE_A)
|
||||
network->mode = IEEE_N_5G;
|
||||
else if (network->mode & (IEEE_G | IEEE_B))
|
||||
network->mode = IEEE_N_24G;
|
||||
if (network->mode & (WIRELESS_MODE_G | WIRELESS_MODE_B))
|
||||
network->mode = WIRELESS_MODE_N_24G;
|
||||
}
|
||||
if (rtllib_is_empty_essid(network->ssid, network->ssid_len))
|
||||
network->flags |= NETWORK_EMPTY_ESSID;
|
||||
@ -2595,8 +2576,8 @@ static inline void rtllib_process_probe_response(
|
||||
if (is_same_network(&ieee->current_network, network,
|
||||
(network->ssid_len ? 1 : 0))) {
|
||||
update_network(ieee, &ieee->current_network, network);
|
||||
if ((ieee->current_network.mode == IEEE_N_24G ||
|
||||
ieee->current_network.mode == IEEE_G) &&
|
||||
if ((ieee->current_network.mode == WIRELESS_MODE_N_24G ||
|
||||
ieee->current_network.mode == WIRELESS_MODE_G) &&
|
||||
ieee->current_network.berp_info_valid) {
|
||||
if (ieee->current_network.erp_value & ERP_UseProtection)
|
||||
ieee->current_network.buseprotection = true;
|
||||
@ -2604,7 +2585,7 @@ static inline void rtllib_process_probe_response(
|
||||
ieee->current_network.buseprotection = false;
|
||||
}
|
||||
if (is_beacon(frame_ctl)) {
|
||||
if (ieee->state >= RTLLIB_LINKED)
|
||||
if (ieee->link_state >= MAC80211_LINKED)
|
||||
ieee->link_detect_info.NumRecvBcnInPeriod++;
|
||||
}
|
||||
}
|
||||
@ -2662,7 +2643,7 @@ static inline void rtllib_process_probe_response(
|
||||
|| ((ieee->current_network.ssid_len == network->ssid_len) &&
|
||||
(strncmp(ieee->current_network.ssid, network->ssid,
|
||||
network->ssid_len) == 0) &&
|
||||
(ieee->state == RTLLIB_NOLINK))))
|
||||
(ieee->link_state == MAC80211_NOLINK))))
|
||||
renew = 1;
|
||||
update_network(ieee, target, network);
|
||||
if (renew && (ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE))
|
||||
@ -2673,7 +2654,7 @@ static inline void rtllib_process_probe_response(
|
||||
if (is_beacon(frame_ctl) &&
|
||||
is_same_network(&ieee->current_network, network,
|
||||
(network->ssid_len ? 1 : 0)) &&
|
||||
(ieee->state == RTLLIB_LINKED)) {
|
||||
(ieee->link_state == MAC80211_LINKED)) {
|
||||
ieee->handle_beacon(ieee->dev, beacon, &ieee->current_network);
|
||||
}
|
||||
free_network:
|
||||
@ -2702,7 +2683,7 @@ static void rtllib_rx_mgt(struct rtllib_device *ieee,
|
||||
|
||||
if (ieee->sta_sleep || (ieee->ps != RTLLIB_PS_DISABLED &&
|
||||
ieee->iw_mode == IW_MODE_INFRA &&
|
||||
ieee->state == RTLLIB_LINKED))
|
||||
ieee->link_state == MAC80211_LINKED))
|
||||
schedule_work(&ieee->ps_task);
|
||||
|
||||
break;
|
||||
@ -2719,7 +2700,7 @@ static void rtllib_rx_mgt(struct rtllib_device *ieee,
|
||||
if ((ieee->softmac_features & IEEE_SOFTMAC_PROBERS) &&
|
||||
((ieee->iw_mode == IW_MODE_ADHOC ||
|
||||
ieee->iw_mode == IW_MODE_MASTER) &&
|
||||
ieee->state == RTLLIB_LINKED))
|
||||
ieee->link_state == MAC80211_LINKED))
|
||||
rtllib_rx_probe_rq(ieee, skb);
|
||||
break;
|
||||
}
|
||||
|
@ -22,7 +22,6 @@
|
||||
|
||||
static void rtllib_sta_wakeup(struct rtllib_device *ieee, short nl);
|
||||
|
||||
|
||||
static short rtllib_is_54g(struct rtllib_network *net)
|
||||
{
|
||||
return (net->rates_ex_len > 0) || (net->rates_len > 4);
|
||||
@ -139,7 +138,6 @@ static void enqueue_mgmt(struct rtllib_device *ieee, struct sk_buff *skb)
|
||||
*/
|
||||
ieee->mgmt_queue_head = nh;
|
||||
ieee->mgmt_queue_ring[nh] = skb;
|
||||
|
||||
}
|
||||
|
||||
static void init_mgmt_queue(struct rtllib_device *ieee)
|
||||
@ -147,14 +145,12 @@ static void init_mgmt_queue(struct rtllib_device *ieee)
|
||||
ieee->mgmt_queue_tail = ieee->mgmt_queue_head = 0;
|
||||
}
|
||||
|
||||
|
||||
u8 MgntQuery_TxRateExcludeCCKRates(struct rtllib_device *ieee)
|
||||
{
|
||||
u16 i;
|
||||
u8 QueryRate = 0;
|
||||
u8 BasicRate;
|
||||
|
||||
|
||||
for (i = 0; i < ieee->current_network.rates_len; i++) {
|
||||
BasicRate = ieee->current_network.rates[i] & 0x7F;
|
||||
if (!rtllib_is_cck_rate(BasicRate)) {
|
||||
@ -185,9 +181,7 @@ static u8 MgntQuery_MgntFrameTxRate(struct rtllib_device *ieee)
|
||||
rate = ieee->basic_rate & 0x7f;
|
||||
|
||||
if (rate == 0) {
|
||||
if (ieee->mode == IEEE_A ||
|
||||
ieee->mode == IEEE_N_5G ||
|
||||
(ieee->mode == IEEE_N_24G && !ht_info->bCurSuppCCK))
|
||||
if (ieee->mode == WIRELESS_MODE_N_24G && !ht_info->bCurSuppCCK)
|
||||
rate = 0x0c;
|
||||
else
|
||||
rate = 0x02;
|
||||
@ -219,7 +213,7 @@ inline void softmac_mgmt_xmit(struct sk_buff *skb, struct rtllib_device *ieee)
|
||||
tcb_desc->queue_index = HIGH_QUEUE;
|
||||
|
||||
tcb_desc->data_rate = MgntQuery_MgntFrameTxRate(ieee);
|
||||
tcb_desc->RATRIndex = 7;
|
||||
tcb_desc->ratr_index = 7;
|
||||
tcb_desc->tx_dis_rate_fallback = 1;
|
||||
tcb_desc->tx_use_drv_assinged_rate = 1;
|
||||
if (single) {
|
||||
@ -286,7 +280,6 @@ softmac_ps_mgmt_xmit(struct sk_buff *skb,
|
||||
type = WLAN_FC_GET_TYPE(fc);
|
||||
stype = WLAN_FC_GET_STYPE(fc);
|
||||
|
||||
|
||||
if (stype != RTLLIB_STYPE_PSPOLL)
|
||||
tcb_desc->queue_index = MGNT_QUEUE;
|
||||
else
|
||||
@ -295,9 +288,8 @@ softmac_ps_mgmt_xmit(struct sk_buff *skb,
|
||||
if (ieee->disable_mgnt_queue)
|
||||
tcb_desc->queue_index = HIGH_QUEUE;
|
||||
|
||||
|
||||
tcb_desc->data_rate = MgntQuery_MgntFrameTxRate(ieee);
|
||||
tcb_desc->RATRIndex = 7;
|
||||
tcb_desc->ratr_index = 7;
|
||||
tcb_desc->tx_dis_rate_fallback = 1;
|
||||
tcb_desc->tx_use_drv_assinged_rate = 1;
|
||||
if (single) {
|
||||
@ -308,7 +300,6 @@ softmac_ps_mgmt_xmit(struct sk_buff *skb,
|
||||
ieee->seq_ctrl[0] = 0;
|
||||
else
|
||||
ieee->seq_ctrl[0]++;
|
||||
|
||||
}
|
||||
/* avoid watchdog triggers */
|
||||
ieee->softmac_data_hard_start_xmit(skb, ieee->dev,
|
||||
@ -324,7 +315,6 @@ softmac_ps_mgmt_xmit(struct sk_buff *skb,
|
||||
ieee->seq_ctrl[0]++;
|
||||
}
|
||||
ieee->softmac_hard_start_xmit(skb, ieee->dev);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -388,7 +378,6 @@ static void rtllib_send_beacon(struct rtllib_device *ieee)
|
||||
(msecs_to_jiffies(ieee->current_network.beacon_interval - 5)));
|
||||
}
|
||||
|
||||
|
||||
static void rtllib_send_beacon_cb(struct timer_list *t)
|
||||
{
|
||||
struct rtllib_device *ieee =
|
||||
@ -411,7 +400,6 @@ void rtllib_EnableNetMonitorMode(struct net_device *dev,
|
||||
ieee->AllowAllDestAddrHandler(dev, true, !bInitState);
|
||||
}
|
||||
|
||||
|
||||
/* Disables network monitor mode. Only packets destinated to
|
||||
* us will be received.
|
||||
*/
|
||||
@ -425,7 +413,6 @@ void rtllib_DisableNetMonitorMode(struct net_device *dev,
|
||||
ieee->AllowAllDestAddrHandler(dev, false, !bInitState);
|
||||
}
|
||||
|
||||
|
||||
/* Enables the specialized promiscuous mode required by Intel.
|
||||
* In this mode, Intel intends to hear traffics from/to other STAs in the
|
||||
* same BSS. Therefore we don't have to disable checking BSSID and we only need
|
||||
@ -449,7 +436,6 @@ void rtllib_EnableIntelPromiscuousMode(struct net_device *dev,
|
||||
}
|
||||
EXPORT_SYMBOL(rtllib_EnableIntelPromiscuousMode);
|
||||
|
||||
|
||||
/* Disables the specialized promiscuous mode required by Intel.
|
||||
* See MgntEnableIntelPromiscuousMode for detail.
|
||||
*/
|
||||
@ -481,7 +467,6 @@ static void rtllib_send_probe(struct rtllib_device *ieee, u8 is_mesh)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void rtllib_send_probe_requests(struct rtllib_device *ieee, u8 is_mesh)
|
||||
{
|
||||
if (ieee->active_scan && (ieee->softmac_features &
|
||||
@ -523,12 +508,12 @@ static void rtllib_softmac_scan_syncro(struct rtllib_device *ieee, u8 is_mesh)
|
||||
* performing a complete syncro scan before conclude
|
||||
* there are no interesting cell and to create a
|
||||
* new one. In this case the link state is
|
||||
* RTLLIB_NOLINK until we found an interesting cell.
|
||||
* MAC80211_NOLINK until we found an interesting cell.
|
||||
* If so the ieee8021_new_net, called by the RX path
|
||||
* will set the state to RTLLIB_LINKED, so we stop
|
||||
* will set the state to MAC80211_LINKED, so we stop
|
||||
* scanning
|
||||
* 2- We are linked and the root uses run iwlist scan.
|
||||
* So we switch to RTLLIB_LINKED_SCANNING to remember
|
||||
* So we switch to MAC80211_LINKED_SCANNING to remember
|
||||
* that we are still logically linked (not interested in
|
||||
* new network events, despite for updating the net list,
|
||||
* but we are temporarly 'unlinked' as the driver shall
|
||||
@ -537,7 +522,7 @@ static void rtllib_softmac_scan_syncro(struct rtllib_device *ieee, u8 is_mesh)
|
||||
* if the state become LINKED because of the #1 situation
|
||||
*/
|
||||
|
||||
if (ieee->state == RTLLIB_LINKED)
|
||||
if (ieee->link_state == MAC80211_LINKED)
|
||||
goto out;
|
||||
if (ieee->sync_scan_hurryup) {
|
||||
netdev_info(ieee->dev,
|
||||
@ -558,7 +543,7 @@ out:
|
||||
ieee->actscanning = false;
|
||||
ieee->sync_scan_hurryup = 0;
|
||||
|
||||
if (ieee->state >= RTLLIB_LINKED) {
|
||||
if (ieee->link_state >= MAC80211_LINKED) {
|
||||
if (IS_DOT11D_ENABLE(ieee))
|
||||
dot11d_scan_complete(ieee);
|
||||
}
|
||||
@ -629,8 +614,6 @@ out1:
|
||||
mutex_unlock(&ieee->scan_mutex);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void rtllib_beacons_start(struct rtllib_device *ieee)
|
||||
{
|
||||
unsigned long flags;
|
||||
@ -653,10 +636,8 @@ static void rtllib_beacons_stop(struct rtllib_device *ieee)
|
||||
|
||||
spin_unlock_irqrestore(&ieee->beacon_lock, flags);
|
||||
del_timer_sync(&ieee->beacon_timer);
|
||||
|
||||
}
|
||||
|
||||
|
||||
void rtllib_stop_send_beacons(struct rtllib_device *ieee)
|
||||
{
|
||||
ieee->stop_send_beacons(ieee->dev);
|
||||
@ -665,7 +646,6 @@ void rtllib_stop_send_beacons(struct rtllib_device *ieee)
|
||||
}
|
||||
EXPORT_SYMBOL(rtllib_stop_send_beacons);
|
||||
|
||||
|
||||
void rtllib_start_send_beacons(struct rtllib_device *ieee)
|
||||
{
|
||||
ieee->start_send_beacons(ieee->dev);
|
||||
@ -674,7 +654,6 @@ void rtllib_start_send_beacons(struct rtllib_device *ieee)
|
||||
}
|
||||
EXPORT_SYMBOL(rtllib_start_send_beacons);
|
||||
|
||||
|
||||
static void rtllib_softmac_stop_scan(struct rtllib_device *ieee)
|
||||
{
|
||||
mutex_lock(&ieee->scan_mutex);
|
||||
@ -682,32 +661,24 @@ static void rtllib_softmac_stop_scan(struct rtllib_device *ieee)
|
||||
if (ieee->scanning_continue == 1) {
|
||||
ieee->scanning_continue = 0;
|
||||
ieee->actscanning = false;
|
||||
|
||||
cancel_delayed_work_sync(&ieee->softmac_scan_wq);
|
||||
}
|
||||
|
||||
mutex_unlock(&ieee->scan_mutex);
|
||||
cancel_delayed_work_sync(&ieee->softmac_scan_wq);
|
||||
} else {
|
||||
mutex_unlock(&ieee->scan_mutex);
|
||||
}
|
||||
}
|
||||
|
||||
void rtllib_stop_scan(struct rtllib_device *ieee)
|
||||
{
|
||||
if (ieee->softmac_features & IEEE_SOFTMAC_SCAN) {
|
||||
if (ieee->softmac_features & IEEE_SOFTMAC_SCAN)
|
||||
rtllib_softmac_stop_scan(ieee);
|
||||
} else {
|
||||
if (ieee->rtllib_stop_hw_scan)
|
||||
ieee->rtllib_stop_hw_scan(ieee->dev);
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL(rtllib_stop_scan);
|
||||
|
||||
void rtllib_stop_scan_syncro(struct rtllib_device *ieee)
|
||||
{
|
||||
if (ieee->softmac_features & IEEE_SOFTMAC_SCAN) {
|
||||
if (ieee->softmac_features & IEEE_SOFTMAC_SCAN)
|
||||
ieee->sync_scan_hurryup = 1;
|
||||
} else {
|
||||
if (ieee->rtllib_stop_hw_scan)
|
||||
ieee->rtllib_stop_hw_scan(ieee->dev);
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL(rtllib_stop_scan_syncro);
|
||||
|
||||
@ -739,9 +710,6 @@ static void rtllib_start_scan(struct rtllib_device *ieee)
|
||||
ieee->scanning_continue = 1;
|
||||
schedule_delayed_work(&ieee->softmac_scan_wq, 0);
|
||||
}
|
||||
} else {
|
||||
if (ieee->rtllib_start_hw_scan)
|
||||
ieee->rtllib_start_hw_scan(ieee->dev);
|
||||
}
|
||||
}
|
||||
|
||||
@ -753,12 +721,8 @@ void rtllib_start_scan_syncro(struct rtllib_device *ieee, u8 is_mesh)
|
||||
RESET_CIE_WATCHDOG(ieee);
|
||||
}
|
||||
ieee->sync_scan_hurryup = 0;
|
||||
if (ieee->softmac_features & IEEE_SOFTMAC_SCAN) {
|
||||
if (ieee->softmac_features & IEEE_SOFTMAC_SCAN)
|
||||
rtllib_softmac_scan_syncro(ieee, is_mesh);
|
||||
} else {
|
||||
if (ieee->rtllib_start_hw_scan)
|
||||
ieee->rtllib_start_hw_scan(ieee->dev);
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL(rtllib_start_scan_syncro);
|
||||
|
||||
@ -838,15 +802,16 @@ static struct sk_buff *rtllib_probe_resp(struct rtllib_device *ieee,
|
||||
else
|
||||
atim_len = 0;
|
||||
|
||||
if ((ieee->current_network.mode == IEEE_G) ||
|
||||
(ieee->current_network.mode == IEEE_N_24G &&
|
||||
if ((ieee->current_network.mode == WIRELESS_MODE_G) ||
|
||||
(ieee->current_network.mode == WIRELESS_MODE_N_24G &&
|
||||
ieee->ht_info->bCurSuppCCK)) {
|
||||
erp_len = 3;
|
||||
erpinfo_content = 0;
|
||||
if (ieee->current_network.buseprotection)
|
||||
erpinfo_content |= ERP_UseProtection;
|
||||
} else
|
||||
} else {
|
||||
erp_len = 0;
|
||||
}
|
||||
|
||||
crypt = ieee->crypt_info.crypt[ieee->crypt_info.tx_keyidx];
|
||||
encrypt = ieee->host_encrypt && crypt && crypt->ops &&
|
||||
@ -903,7 +868,6 @@ static struct sk_buff *rtllib_probe_resp(struct rtllib_device *ieee,
|
||||
if (encrypt)
|
||||
beacon_buf->capability |= cpu_to_le16(WLAN_CAPABILITY_PRIVACY);
|
||||
|
||||
|
||||
beacon_buf->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_PROBE_RESP);
|
||||
beacon_buf->info_element[0].id = MFIE_TYPE_SSID;
|
||||
beacon_buf->info_element[0].len = ssid_len;
|
||||
@ -982,7 +946,6 @@ static struct sk_buff *rtllib_assoc_resp(struct rtllib_device *ieee, u8 *dest)
|
||||
assoc->capability = cpu_to_le16(ieee->iw_mode == IW_MODE_MASTER ?
|
||||
WLAN_CAPABILITY_ESS : WLAN_CAPABILITY_IBSS);
|
||||
|
||||
|
||||
if (ieee->short_slot)
|
||||
assoc->capability |=
|
||||
cpu_to_le16(WLAN_CAPABILITY_SHORT_SLOT_TIME);
|
||||
@ -1037,8 +1000,6 @@ static struct sk_buff *rtllib_auth_resp(struct rtllib_device *ieee, int status,
|
||||
ether_addr_copy(auth->header.addr1, dest);
|
||||
auth->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_AUTH);
|
||||
return skb;
|
||||
|
||||
|
||||
}
|
||||
|
||||
static struct sk_buff *rtllib_null_func(struct rtllib_device *ieee, short pwr)
|
||||
@ -1063,8 +1024,6 @@ static struct sk_buff *rtllib_null_func(struct rtllib_device *ieee, short pwr)
|
||||
(pwr ? RTLLIB_FCTL_PM : 0));
|
||||
|
||||
return skb;
|
||||
|
||||
|
||||
}
|
||||
|
||||
static struct sk_buff *rtllib_pspoll_func(struct rtllib_device *ieee)
|
||||
@ -1088,7 +1047,6 @@ static struct sk_buff *rtllib_pspoll_func(struct rtllib_device *ieee)
|
||||
RTLLIB_FCTL_PM);
|
||||
|
||||
return skb;
|
||||
|
||||
}
|
||||
|
||||
static void rtllib_resp_to_assoc_rq(struct rtllib_device *ieee, u8 *dest)
|
||||
@ -1099,7 +1057,6 @@ static void rtllib_resp_to_assoc_rq(struct rtllib_device *ieee, u8 *dest)
|
||||
softmac_mgmt_xmit(buf, ieee);
|
||||
}
|
||||
|
||||
|
||||
static void rtllib_resp_to_auth(struct rtllib_device *ieee, int s, u8 *dest)
|
||||
{
|
||||
struct sk_buff *buf = rtllib_auth_resp(ieee, s, dest);
|
||||
@ -1108,7 +1065,6 @@ static void rtllib_resp_to_auth(struct rtllib_device *ieee, int s, u8 *dest)
|
||||
softmac_mgmt_xmit(buf, ieee);
|
||||
}
|
||||
|
||||
|
||||
static void rtllib_resp_to_probe(struct rtllib_device *ieee, u8 *dest)
|
||||
{
|
||||
struct sk_buff *buf = rtllib_probe_resp(ieee, dest);
|
||||
@ -1117,7 +1073,6 @@ static void rtllib_resp_to_probe(struct rtllib_device *ieee, u8 *dest)
|
||||
softmac_mgmt_xmit(buf, ieee);
|
||||
}
|
||||
|
||||
|
||||
static inline int SecIsInPMKIDList(struct rtllib_device *ieee, u8 *bssid)
|
||||
{
|
||||
int i = 0;
|
||||
@ -1230,7 +1185,6 @@ rtllib_association_req(struct rtllib_network *beacon,
|
||||
|
||||
hdr = skb_put(skb, sizeof(struct rtllib_assoc_request_frame) + 2);
|
||||
|
||||
|
||||
hdr->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_ASSOC_REQ);
|
||||
hdr->header.duration_id = cpu_to_le16(37);
|
||||
ether_addr_copy(hdr->header.addr1, beacon->bssid);
|
||||
@ -1250,7 +1204,6 @@ rtllib_association_req(struct rtllib_network *beacon,
|
||||
(beacon->capability & WLAN_CAPABILITY_SHORT_SLOT_TIME))
|
||||
hdr->capability |= cpu_to_le16(WLAN_CAPABILITY_SHORT_SLOT_TIME);
|
||||
|
||||
|
||||
hdr->listen_interval = cpu_to_le16(beacon->listen_interval);
|
||||
|
||||
hdr->info_element[0].id = MFIE_TYPE_SSID;
|
||||
@ -1397,7 +1350,7 @@ static void rtllib_associate_abort(struct rtllib_device *ieee)
|
||||
* Here we will check if there are good nets to associate
|
||||
* with, so we retry or just get back to NO_LINK and scanning
|
||||
*/
|
||||
if (ieee->state == RTLLIB_ASSOCIATING_AUTHENTICATING) {
|
||||
if (ieee->link_state == RTLLIB_ASSOCIATING_AUTHENTICATING) {
|
||||
netdev_dbg(ieee->dev, "Authentication failed\n");
|
||||
ieee->softmac_stats.no_auth_rs++;
|
||||
} else {
|
||||
@ -1405,7 +1358,7 @@ static void rtllib_associate_abort(struct rtllib_device *ieee)
|
||||
ieee->softmac_stats.no_ass_rs++;
|
||||
}
|
||||
|
||||
ieee->state = RTLLIB_ASSOCIATING_RETRY;
|
||||
ieee->link_state = RTLLIB_ASSOCIATING_RETRY;
|
||||
|
||||
schedule_delayed_work(&ieee->associate_retry_wq,
|
||||
RTLLIB_SOFTMAC_ASSOC_RETRY_TIME);
|
||||
@ -1431,10 +1384,10 @@ static void rtllib_associate_step1(struct rtllib_device *ieee, u8 *daddr)
|
||||
|
||||
skb = rtllib_authentication_req(beacon, ieee, 0, daddr);
|
||||
|
||||
if (!skb)
|
||||
if (!skb) {
|
||||
rtllib_associate_abort(ieee);
|
||||
else {
|
||||
ieee->state = RTLLIB_ASSOCIATING_AUTHENTICATING;
|
||||
} else {
|
||||
ieee->link_state = RTLLIB_ASSOCIATING_AUTHENTICATING;
|
||||
netdev_dbg(ieee->dev, "Sending authentication request\n");
|
||||
softmac_mgmt_xmit(skb, ieee);
|
||||
if (!timer_pending(&ieee->associate_timer)) {
|
||||
@ -1456,9 +1409,9 @@ static void rtllib_auth_challenge(struct rtllib_device *ieee, u8 *challenge,
|
||||
|
||||
skb = rtllib_authentication_req(beacon, ieee, chlen + 2, beacon->bssid);
|
||||
|
||||
if (!skb)
|
||||
if (!skb) {
|
||||
rtllib_associate_abort(ieee);
|
||||
else {
|
||||
} else {
|
||||
c = skb_put(skb, chlen + 2);
|
||||
*(c++) = MFIE_TYPE_CHALLENGE;
|
||||
*(c++) = chlen;
|
||||
@ -1487,9 +1440,9 @@ static void rtllib_associate_step2(struct rtllib_device *ieee)
|
||||
|
||||
ieee->softmac_stats.tx_ass_rq++;
|
||||
skb = rtllib_association_req(beacon, ieee);
|
||||
if (!skb)
|
||||
if (!skb) {
|
||||
rtllib_associate_abort(ieee);
|
||||
else {
|
||||
} else {
|
||||
softmac_mgmt_xmit(skb, ieee);
|
||||
mod_timer(&ieee->associate_timer, jiffies + (HZ / 2));
|
||||
}
|
||||
@ -1518,7 +1471,7 @@ static void rtllib_associate_complete_wq(void *data)
|
||||
netdev_info(ieee->dev, "Using G rates:%d\n", ieee->rate);
|
||||
} else {
|
||||
ieee->rate = 22;
|
||||
ieee->SetWirelessMode(ieee->dev, IEEE_B);
|
||||
ieee->set_wireless_mode(ieee->dev, WIRELESS_MODE_B);
|
||||
netdev_info(ieee->dev, "Using B rates:%d\n", ieee->rate);
|
||||
}
|
||||
if (ieee->ht_info->bCurrentHTSupport && ieee->ht_info->enable_ht) {
|
||||
@ -1546,10 +1499,6 @@ static void rtllib_associate_complete_wq(void *data)
|
||||
netdev_info(ieee->dev, "silent reset associate\n");
|
||||
ieee->is_silent_reset = false;
|
||||
}
|
||||
|
||||
if (ieee->data_hard_resume)
|
||||
ieee->data_hard_resume(ieee->dev);
|
||||
|
||||
}
|
||||
|
||||
static void rtllib_sta_send_associnfo(struct rtllib_device *ieee)
|
||||
@ -1560,7 +1509,7 @@ static void rtllib_associate_complete(struct rtllib_device *ieee)
|
||||
{
|
||||
del_timer_sync(&ieee->associate_timer);
|
||||
|
||||
ieee->state = RTLLIB_LINKED;
|
||||
ieee->link_state = MAC80211_LINKED;
|
||||
rtllib_sta_send_associnfo(ieee);
|
||||
|
||||
schedule_work(&ieee->associate_complete_wq);
|
||||
@ -1575,9 +1524,6 @@ static void rtllib_associate_procedure_wq(void *data)
|
||||
ieee->rtllib_ips_leave(ieee->dev);
|
||||
mutex_lock(&ieee->wx_mutex);
|
||||
|
||||
if (ieee->data_hard_stop)
|
||||
ieee->data_hard_stop(ieee->dev);
|
||||
|
||||
rtllib_stop_scan(ieee);
|
||||
HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, HT_EXTCHNL_OFFSET_NO_EXT);
|
||||
if (ieee->rf_power_state == rf_off) {
|
||||
@ -1603,7 +1549,7 @@ inline void rtllib_softmac_new_net(struct rtllib_device *ieee,
|
||||
/* we are interested in new only if we are not associated
|
||||
* and we are not associating / authenticating
|
||||
*/
|
||||
if (ieee->state != RTLLIB_NOLINK)
|
||||
if (ieee->link_state != MAC80211_NOLINK)
|
||||
return;
|
||||
|
||||
if ((ieee->iw_mode == IW_MODE_INFRA) && !(net->capability &
|
||||
@ -1638,11 +1584,12 @@ inline void rtllib_softmac_new_net(struct rtllib_device *ieee,
|
||||
net->ssid_len = net->hidden_ssid_len;
|
||||
ssidbroad = 1;
|
||||
}
|
||||
} else
|
||||
} else {
|
||||
ssidmatch =
|
||||
(ieee->current_network.ssid_len == net->ssid_len) &&
|
||||
(!strncmp(ieee->current_network.ssid, net->ssid,
|
||||
net->ssid_len));
|
||||
}
|
||||
|
||||
/* if the user set the AP check if match.
|
||||
* if the network does not broadcast essid we check the
|
||||
@ -1701,10 +1648,7 @@ inline void rtllib_softmac_new_net(struct rtllib_device *ieee,
|
||||
ieee->ht_info->bCurrentHTSupport =
|
||||
false;
|
||||
|
||||
ieee->state = RTLLIB_ASSOCIATING;
|
||||
if (ieee->LedControlHandler != NULL)
|
||||
ieee->LedControlHandler(ieee->dev,
|
||||
LED_CTL_START_TO_LINK);
|
||||
ieee->link_state = RTLLIB_ASSOCIATING;
|
||||
schedule_delayed_work(
|
||||
&ieee->associate_procedure_wq, 0);
|
||||
} else {
|
||||
@ -1712,19 +1656,17 @@ inline void rtllib_softmac_new_net(struct rtllib_device *ieee,
|
||||
(ieee->modulation &
|
||||
RTLLIB_OFDM_MODULATION)) {
|
||||
ieee->rate = 108;
|
||||
ieee->SetWirelessMode(ieee->dev,
|
||||
IEEE_G);
|
||||
ieee->set_wireless_mode(ieee->dev, WIRELESS_MODE_G);
|
||||
netdev_info(ieee->dev,
|
||||
"Using G rates\n");
|
||||
} else {
|
||||
ieee->rate = 22;
|
||||
ieee->SetWirelessMode(ieee->dev,
|
||||
IEEE_B);
|
||||
ieee->set_wireless_mode(ieee->dev, WIRELESS_MODE_B);
|
||||
netdev_info(ieee->dev,
|
||||
"Using B rates\n");
|
||||
}
|
||||
memset(ieee->dot11ht_oper_rate_set, 0, 16);
|
||||
ieee->state = RTLLIB_LINKED;
|
||||
ieee->link_state = MAC80211_LINKED;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1738,12 +1680,11 @@ static void rtllib_softmac_check_all_nets(struct rtllib_device *ieee)
|
||||
spin_lock_irqsave(&ieee->lock, flags);
|
||||
|
||||
list_for_each_entry(target, &ieee->network_list, list) {
|
||||
|
||||
/* if the state become different that NOLINK means
|
||||
* we had found what we are searching for
|
||||
*/
|
||||
|
||||
if (ieee->state != RTLLIB_NOLINK)
|
||||
if (ieee->link_state != MAC80211_NOLINK)
|
||||
break;
|
||||
|
||||
if (ieee->scan_age == 0 || time_after(target->last_scanned +
|
||||
@ -1885,8 +1826,8 @@ static inline u16 assoc_parse(struct rtllib_device *ieee, struct sk_buff *skb,
|
||||
status_code = le16_to_cpu(response_head->status);
|
||||
if ((status_code == WLAN_STATUS_ASSOC_DENIED_RATES ||
|
||||
status_code == WLAN_STATUS_CAPS_UNSUPPORTED) &&
|
||||
((ieee->mode == IEEE_G) &&
|
||||
(ieee->current_network.mode == IEEE_N_24G) &&
|
||||
((ieee->mode == WIRELESS_MODE_G) &&
|
||||
(ieee->current_network.mode == WIRELESS_MODE_N_24G) &&
|
||||
(ieee->AsocRetryCount++ < (RT_ASOC_RETRY_LIMIT - 1)))) {
|
||||
ieee->ht_info->iot_action |= HT_IOT_ACT_PURE_N_MODE;
|
||||
} else {
|
||||
@ -1925,7 +1866,6 @@ static inline void rtllib_rx_assoc_rq(struct rtllib_device *ieee,
|
||||
{
|
||||
u8 dest[ETH_ALEN];
|
||||
|
||||
|
||||
ieee->softmac_stats.rx_ass_rq++;
|
||||
if (assoc_rq_parse(ieee->dev, skb, dest) != -1)
|
||||
rtllib_resp_to_assoc_rq(ieee, dest);
|
||||
@ -1935,7 +1875,6 @@ static inline void rtllib_rx_assoc_rq(struct rtllib_device *ieee,
|
||||
|
||||
void rtllib_sta_ps_send_null_frame(struct rtllib_device *ieee, short pwr)
|
||||
{
|
||||
|
||||
struct sk_buff *buf = rtllib_null_func(ieee, pwr);
|
||||
|
||||
if (buf)
|
||||
@ -2033,8 +1972,6 @@ static short rtllib_sta_ps_sleep(struct rtllib_device *ieee, u64 *time)
|
||||
}
|
||||
|
||||
return 1;
|
||||
|
||||
|
||||
}
|
||||
|
||||
static inline void rtllib_sta_ps(struct work_struct *work)
|
||||
@ -2050,7 +1987,7 @@ static inline void rtllib_sta_ps(struct work_struct *work)
|
||||
|
||||
if ((ieee->ps == RTLLIB_PS_DISABLED ||
|
||||
ieee->iw_mode != IW_MODE_INFRA ||
|
||||
ieee->state != RTLLIB_LINKED)) {
|
||||
ieee->link_state != MAC80211_LINKED)) {
|
||||
spin_lock_irqsave(&ieee->mgmt_tx_lock, flags2);
|
||||
rtllib_sta_wakeup(ieee, 1);
|
||||
|
||||
@ -2073,7 +2010,6 @@ static inline void rtllib_sta_ps(struct work_struct *work)
|
||||
ieee->ps_time = time;
|
||||
}
|
||||
spin_unlock_irqrestore(&ieee->mgmt_tx_lock, flags2);
|
||||
|
||||
}
|
||||
|
||||
ieee->bAwakePktSent = false;
|
||||
@ -2088,7 +2024,6 @@ static inline void rtllib_sta_ps(struct work_struct *work)
|
||||
|
||||
out:
|
||||
spin_unlock_irqrestore(&ieee->lock, flags);
|
||||
|
||||
}
|
||||
|
||||
static void rtllib_sta_wakeup(struct rtllib_device *ieee, short nl)
|
||||
@ -2105,7 +2040,6 @@ static void rtllib_sta_wakeup(struct rtllib_device *ieee, short nl)
|
||||
}
|
||||
}
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
if (ieee->sta_sleep == LPS_IS_SLEEP)
|
||||
@ -2207,7 +2141,7 @@ rtllib_rx_assoc_resp(struct rtllib_device *ieee, struct sk_buff *skb,
|
||||
WLAN_FC_GET_STYPE(frame_ctl));
|
||||
|
||||
if ((ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE) &&
|
||||
ieee->state == RTLLIB_ASSOCIATING_AUTHENTICATED &&
|
||||
ieee->link_state == RTLLIB_ASSOCIATING_AUTHENTICATED &&
|
||||
(ieee->iw_mode == IW_MODE_INFRA)) {
|
||||
errcode = assoc_parse(ieee, skb, &aid);
|
||||
if (!errcode) {
|
||||
@ -2217,7 +2151,7 @@ rtllib_rx_assoc_resp(struct rtllib_device *ieee, struct sk_buff *skb,
|
||||
|
||||
if (!network)
|
||||
return 1;
|
||||
ieee->state = RTLLIB_LINKED;
|
||||
ieee->link_state = MAC80211_LINKED;
|
||||
ieee->assoc_id = aid;
|
||||
ieee->softmac_stats.rx_ass_ok++;
|
||||
/* station support qos */
|
||||
@ -2286,7 +2220,7 @@ static void rtllib_rx_auth_resp(struct rtllib_device *ieee, struct sk_buff *skb)
|
||||
}
|
||||
|
||||
if (ieee->open_wep || !challenge) {
|
||||
ieee->state = RTLLIB_ASSOCIATING_AUTHENTICATED;
|
||||
ieee->link_state = RTLLIB_ASSOCIATING_AUTHENTICATED;
|
||||
ieee->softmac_stats.rx_auth_rs_ok++;
|
||||
if (!(ieee->ht_info->iot_action & HT_IOT_ACT_PURE_N_MODE)) {
|
||||
if (!ieee->GetNmodeSupportBySecCfg(ieee->dev)) {
|
||||
@ -2301,14 +2235,14 @@ static void rtllib_rx_auth_resp(struct rtllib_device *ieee, struct sk_buff *skb)
|
||||
}
|
||||
/* Dummy wirless mode setting to avoid encryption issue */
|
||||
if (bSupportNmode) {
|
||||
ieee->SetWirelessMode(ieee->dev,
|
||||
ieee->set_wireless_mode(ieee->dev,
|
||||
ieee->current_network.mode);
|
||||
} else {
|
||||
/*TODO*/
|
||||
ieee->SetWirelessMode(ieee->dev, IEEE_G);
|
||||
ieee->set_wireless_mode(ieee->dev, WIRELESS_MODE_G);
|
||||
}
|
||||
|
||||
if ((ieee->current_network.mode == IEEE_N_24G) &&
|
||||
if ((ieee->current_network.mode == WIRELESS_MODE_N_24G) &&
|
||||
bHalfSupportNmode) {
|
||||
netdev_info(ieee->dev, "======>enter half N mode\n");
|
||||
ieee->bHalfWirelessN24GMode = true;
|
||||
@ -2325,9 +2259,8 @@ static inline int
|
||||
rtllib_rx_auth(struct rtllib_device *ieee, struct sk_buff *skb,
|
||||
struct rtllib_rx_stats *rx_stats)
|
||||
{
|
||||
|
||||
if (ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE) {
|
||||
if (ieee->state == RTLLIB_ASSOCIATING_AUTHENTICATING &&
|
||||
if (ieee->link_state == RTLLIB_ASSOCIATING_AUTHENTICATING &&
|
||||
(ieee->iw_mode == IW_MODE_INFRA)) {
|
||||
netdev_dbg(ieee->dev,
|
||||
"Received authentication response");
|
||||
@ -2352,23 +2285,19 @@ rtllib_rx_deauth(struct rtllib_device *ieee, struct sk_buff *skb)
|
||||
* both for disassociation and deauthentication
|
||||
*/
|
||||
if ((ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE) &&
|
||||
ieee->state == RTLLIB_LINKED &&
|
||||
ieee->link_state == MAC80211_LINKED &&
|
||||
(ieee->iw_mode == IW_MODE_INFRA)) {
|
||||
frame_ctl = le16_to_cpu(header->frame_ctl);
|
||||
netdev_info(ieee->dev,
|
||||
"==========>received disassoc/deauth(%x) frame, reason code:%x\n",
|
||||
WLAN_FC_GET_STYPE(frame_ctl),
|
||||
((struct rtllib_disassoc *)skb->data)->reason);
|
||||
ieee->state = RTLLIB_ASSOCIATING;
|
||||
ieee->link_state = RTLLIB_ASSOCIATING;
|
||||
ieee->softmac_stats.reassoc++;
|
||||
ieee->is_roaming = true;
|
||||
ieee->link_detect_info.bBusyTraffic = false;
|
||||
rtllib_disassociate(ieee);
|
||||
RemovePeerTS(ieee, header->addr2);
|
||||
if (ieee->LedControlHandler != NULL)
|
||||
ieee->LedControlHandler(ieee->dev,
|
||||
LED_CTL_START_TO_LINK);
|
||||
|
||||
if (!(ieee->rtllib_ap_sec_type(ieee) &
|
||||
(SEC_ALG_CCMP | SEC_ALG_TKIP)))
|
||||
schedule_delayed_work(
|
||||
@ -2437,7 +2366,6 @@ inline int rtllib_rx_frame_softmac(struct rtllib_device *ieee,
|
||||
*/
|
||||
void rtllib_softmac_xmit(struct rtllib_txb *txb, struct rtllib_device *ieee)
|
||||
{
|
||||
|
||||
unsigned int queue_index = txb->queue_index;
|
||||
unsigned long flags;
|
||||
int i;
|
||||
@ -2482,7 +2410,6 @@ void rtllib_softmac_xmit(struct rtllib_txb *txb, struct rtllib_device *ieee)
|
||||
rtllib_txb_free(txb);
|
||||
|
||||
spin_unlock_irqrestore(&ieee->lock, flags);
|
||||
|
||||
}
|
||||
|
||||
void rtllib_reset_queue(struct rtllib_device *ieee)
|
||||
@ -2497,7 +2424,6 @@ void rtllib_reset_queue(struct rtllib_device *ieee)
|
||||
}
|
||||
ieee->queue_stop = 0;
|
||||
spin_unlock_irqrestore(&ieee->lock, flags);
|
||||
|
||||
}
|
||||
EXPORT_SYMBOL(rtllib_reset_queue);
|
||||
|
||||
@ -2534,26 +2460,18 @@ static void rtllib_start_master_bss(struct rtllib_device *ieee)
|
||||
ether_addr_copy(ieee->current_network.bssid, ieee->dev->dev_addr);
|
||||
|
||||
ieee->set_chan(ieee->dev, ieee->current_network.channel);
|
||||
ieee->state = RTLLIB_LINKED;
|
||||
ieee->link_state = MAC80211_LINKED;
|
||||
ieee->link_change(ieee->dev);
|
||||
notify_wx_assoc_event(ieee);
|
||||
|
||||
if (ieee->data_hard_resume)
|
||||
ieee->data_hard_resume(ieee->dev);
|
||||
|
||||
netif_carrier_on(ieee->dev);
|
||||
}
|
||||
|
||||
static void rtllib_start_monitor_mode(struct rtllib_device *ieee)
|
||||
{
|
||||
/* reset hardware status */
|
||||
if (ieee->raw_tx) {
|
||||
if (ieee->data_hard_resume)
|
||||
ieee->data_hard_resume(ieee->dev);
|
||||
|
||||
if (ieee->raw_tx)
|
||||
netif_carrier_on(ieee->dev);
|
||||
}
|
||||
}
|
||||
|
||||
static void rtllib_start_ibss_wq(void *data)
|
||||
{
|
||||
@ -2579,12 +2497,11 @@ static void rtllib_start_ibss_wq(void *data)
|
||||
ieee->ssid_set = 1;
|
||||
}
|
||||
|
||||
ieee->state = RTLLIB_NOLINK;
|
||||
ieee->mode = IEEE_G;
|
||||
ieee->link_state = MAC80211_NOLINK;
|
||||
ieee->mode = WIRELESS_MODE_G;
|
||||
/* check if we have this cell in our network list */
|
||||
rtllib_softmac_check_all_nets(ieee);
|
||||
|
||||
|
||||
/* if not then the state is not linked. Maybe the user switched to
|
||||
* ad-hoc mode just after being in monitor mode, or just after
|
||||
* being very few time in managed mode (so the card have had no
|
||||
@ -2592,25 +2509,24 @@ static void rtllib_start_ibss_wq(void *data)
|
||||
* after setting ad-hoc mode. So we have to give another try..
|
||||
* Here, in ibss mode, should be safe to do this without extra care
|
||||
* (in bss mode we had to make sure no-one tried to associate when
|
||||
* we had just checked the ieee->state and we was going to start the
|
||||
* we had just checked the ieee->link_state and we was going to start the
|
||||
* scan) because in ibss mode the rtllib_new_net function, when
|
||||
* finds a good net, just set the ieee->state to RTLLIB_LINKED,
|
||||
* finds a good net, just set the ieee->link_state to MAC80211_LINKED,
|
||||
* so, at worst, we waste a bit of time to initiate an unneeded syncro
|
||||
* scan, that will stop at the first round because it sees the state
|
||||
* associated.
|
||||
*/
|
||||
if (ieee->state == RTLLIB_NOLINK)
|
||||
if (ieee->link_state == MAC80211_NOLINK)
|
||||
rtllib_start_scan_syncro(ieee, 0);
|
||||
|
||||
/* the network definitively is not here.. create a new cell */
|
||||
if (ieee->state == RTLLIB_NOLINK) {
|
||||
if (ieee->link_state == MAC80211_NOLINK) {
|
||||
netdev_info(ieee->dev, "creating new IBSS cell\n");
|
||||
ieee->current_network.channel = ieee->bss_start_channel;
|
||||
if (!ieee->wap_set)
|
||||
eth_random_addr(ieee->current_network.bssid);
|
||||
|
||||
if (ieee->modulation & RTLLIB_CCK_MODULATION) {
|
||||
|
||||
ieee->current_network.rates_len = 4;
|
||||
|
||||
ieee->current_network.rates[0] =
|
||||
@ -2622,8 +2538,9 @@ static void rtllib_start_ibss_wq(void *data)
|
||||
ieee->current_network.rates[3] =
|
||||
RTLLIB_BASIC_RATE_MASK | RTLLIB_CCK_RATE_11MB;
|
||||
|
||||
} else
|
||||
} else {
|
||||
ieee->current_network.rates_len = 0;
|
||||
}
|
||||
|
||||
if (ieee->modulation & RTLLIB_OFDM_MODULATION) {
|
||||
ieee->current_network.rates_ex_len = 8;
|
||||
@ -2652,35 +2569,28 @@ static void rtllib_start_ibss_wq(void *data)
|
||||
}
|
||||
|
||||
ieee->current_network.qos_data.supported = 0;
|
||||
ieee->SetWirelessMode(ieee->dev, IEEE_G);
|
||||
ieee->set_wireless_mode(ieee->dev, WIRELESS_MODE_G);
|
||||
ieee->current_network.mode = ieee->mode;
|
||||
ieee->current_network.atim_window = 0;
|
||||
ieee->current_network.capability = WLAN_CAPABILITY_IBSS;
|
||||
}
|
||||
|
||||
netdev_info(ieee->dev, "%s(): ieee->mode = %d\n", __func__, ieee->mode);
|
||||
if ((ieee->mode == IEEE_N_24G) || (ieee->mode == IEEE_N_5G))
|
||||
if (ieee->mode == WIRELESS_MODE_N_24G)
|
||||
HTUseDefaultSetting(ieee);
|
||||
else
|
||||
ieee->ht_info->bCurrentHTSupport = false;
|
||||
|
||||
ieee->SetHwRegHandler(ieee->dev, HW_VAR_MEDIA_STATUS,
|
||||
(u8 *)(&ieee->state));
|
||||
(u8 *)(&ieee->link_state));
|
||||
|
||||
ieee->state = RTLLIB_LINKED;
|
||||
ieee->link_state = MAC80211_LINKED;
|
||||
ieee->link_change(ieee->dev);
|
||||
|
||||
HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, HT_EXTCHNL_OFFSET_NO_EXT);
|
||||
if (ieee->LedControlHandler != NULL)
|
||||
ieee->LedControlHandler(ieee->dev, LED_CTL_LINK);
|
||||
|
||||
rtllib_start_send_beacons(ieee);
|
||||
|
||||
notify_wx_assoc_event(ieee);
|
||||
|
||||
if (ieee->data_hard_resume)
|
||||
ieee->data_hard_resume(ieee->dev);
|
||||
|
||||
netif_carrier_on(ieee->dev);
|
||||
|
||||
mutex_unlock(&ieee->wx_mutex);
|
||||
@ -2708,7 +2618,7 @@ static void rtllib_start_bss(struct rtllib_device *ieee)
|
||||
rtllib_softmac_check_all_nets(ieee);
|
||||
|
||||
/* ensure no-one start an associating process (thus setting
|
||||
* the ieee->state to rtllib_ASSOCIATING) while we
|
||||
* the ieee->link_state to rtllib_ASSOCIATING) while we
|
||||
* have just checked it and we are going to enable scan.
|
||||
* The rtllib_new_net function is always called with
|
||||
* lock held (from both rtllib_softmac_check_all_nets and
|
||||
@ -2716,7 +2626,7 @@ static void rtllib_start_bss(struct rtllib_device *ieee)
|
||||
*/
|
||||
spin_lock_irqsave(&ieee->lock, flags);
|
||||
|
||||
if (ieee->state == RTLLIB_NOLINK)
|
||||
if (ieee->link_state == MAC80211_NOLINK)
|
||||
rtllib_start_scan(ieee);
|
||||
spin_unlock_irqrestore(&ieee->lock, flags);
|
||||
}
|
||||
@ -2734,11 +2644,9 @@ void rtllib_disassociate(struct rtllib_device *ieee)
|
||||
if (ieee->softmac_features & IEEE_SOFTMAC_TX_QUEUE)
|
||||
rtllib_reset_queue(ieee);
|
||||
|
||||
if (ieee->data_hard_stop)
|
||||
ieee->data_hard_stop(ieee->dev);
|
||||
if (IS_DOT11D_ENABLE(ieee))
|
||||
dot11d_reset(ieee);
|
||||
ieee->state = RTLLIB_NOLINK;
|
||||
ieee->link_state = MAC80211_NOLINK;
|
||||
ieee->is_set_key = false;
|
||||
ieee->wap_set = 0;
|
||||
|
||||
@ -2757,14 +2665,14 @@ static void rtllib_associate_retry_wq(void *data)
|
||||
if (!ieee->proto_started)
|
||||
goto exit;
|
||||
|
||||
if (ieee->state != RTLLIB_ASSOCIATING_RETRY)
|
||||
if (ieee->link_state != RTLLIB_ASSOCIATING_RETRY)
|
||||
goto exit;
|
||||
|
||||
/* until we do not set the state to RTLLIB_NOLINK
|
||||
/* until we do not set the state to MAC80211_NOLINK
|
||||
* there are no possibility to have someone else trying
|
||||
* to start an association procedure (we get here with
|
||||
* ieee->state = RTLLIB_ASSOCIATING).
|
||||
* When we set the state to RTLLIB_NOLINK it is possible
|
||||
* ieee->link_state = RTLLIB_ASSOCIATING).
|
||||
* When we set the state to MAC80211_NOLINK it is possible
|
||||
* that the RX path run an attempt to associate, but
|
||||
* both rtllib_softmac_check_all_nets and the
|
||||
* RX path works with ieee->lock held so there are no
|
||||
@ -2774,13 +2682,13 @@ static void rtllib_associate_retry_wq(void *data)
|
||||
* state and we are going to start the scan.
|
||||
*/
|
||||
ieee->beinretry = true;
|
||||
ieee->state = RTLLIB_NOLINK;
|
||||
ieee->link_state = MAC80211_NOLINK;
|
||||
|
||||
rtllib_softmac_check_all_nets(ieee);
|
||||
|
||||
spin_lock_irqsave(&ieee->lock, flags);
|
||||
|
||||
if (ieee->state == RTLLIB_NOLINK)
|
||||
if (ieee->link_state == MAC80211_NOLINK)
|
||||
rtllib_start_scan(ieee);
|
||||
spin_unlock_irqrestore(&ieee->lock, flags);
|
||||
|
||||
@ -2806,7 +2714,6 @@ static struct sk_buff *rtllib_get_beacon_(struct rtllib_device *ieee)
|
||||
b->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_BEACON);
|
||||
|
||||
return skb;
|
||||
|
||||
}
|
||||
|
||||
struct sk_buff *rtllib_get_beacon(struct rtllib_device *ieee)
|
||||
@ -2840,7 +2747,6 @@ void rtllib_softmac_stop_protocol(struct rtllib_device *ieee, u8 mesh_flag,
|
||||
}
|
||||
EXPORT_SYMBOL(rtllib_softmac_stop_protocol);
|
||||
|
||||
|
||||
void rtllib_stop_protocol(struct rtllib_device *ieee, u8 shutdown)
|
||||
{
|
||||
if (!ieee->proto_started)
|
||||
@ -2859,10 +2765,10 @@ void rtllib_stop_protocol(struct rtllib_device *ieee, u8 shutdown)
|
||||
cancel_delayed_work_sync(&ieee->link_change_wq);
|
||||
rtllib_stop_scan(ieee);
|
||||
|
||||
if (ieee->state <= RTLLIB_ASSOCIATING_AUTHENTICATED)
|
||||
ieee->state = RTLLIB_NOLINK;
|
||||
if (ieee->link_state <= RTLLIB_ASSOCIATING_AUTHENTICATED)
|
||||
ieee->link_state = MAC80211_NOLINK;
|
||||
|
||||
if (ieee->state == RTLLIB_LINKED) {
|
||||
if (ieee->link_state == MAC80211_LINKED) {
|
||||
if (ieee->iw_mode == IW_MODE_INFRA)
|
||||
SendDisassociation(ieee, 1, WLAN_REASON_DEAUTH_LEAVING);
|
||||
rtllib_disassociate(ieee);
|
||||
@ -2918,27 +2824,25 @@ void rtllib_start_protocol(struct rtllib_device *ieee)
|
||||
ieee->last_packet_time[i] = 0;
|
||||
}
|
||||
|
||||
if (ieee->UpdateBeaconInterruptHandler)
|
||||
ieee->UpdateBeaconInterruptHandler(ieee->dev, false);
|
||||
|
||||
ieee->wmm_acm = 0;
|
||||
/* if the user set the MAC of the ad-hoc cell and then
|
||||
* switch to managed mode, shall we make sure that association
|
||||
* attempts does not fail just because the user provide the essid
|
||||
* and the nic is still checking for the AP MAC ??
|
||||
*/
|
||||
if (ieee->iw_mode == IW_MODE_INFRA) {
|
||||
switch (ieee->iw_mode) {
|
||||
case IW_MODE_INFRA:
|
||||
rtllib_start_bss(ieee);
|
||||
} else if (ieee->iw_mode == IW_MODE_ADHOC) {
|
||||
if (ieee->UpdateBeaconInterruptHandler)
|
||||
ieee->UpdateBeaconInterruptHandler(ieee->dev, true);
|
||||
|
||||
break;
|
||||
case IW_MODE_ADHOC:
|
||||
rtllib_start_ibss(ieee);
|
||||
|
||||
} else if (ieee->iw_mode == IW_MODE_MASTER) {
|
||||
break;
|
||||
case IW_MODE_MASTER:
|
||||
rtllib_start_master_bss(ieee);
|
||||
} else if (ieee->iw_mode == IW_MODE_MONITOR) {
|
||||
break;
|
||||
case IW_MODE_MONITOR:
|
||||
rtllib_start_monitor_mode(ieee);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2948,7 +2852,7 @@ int rtllib_softmac_init(struct rtllib_device *ieee)
|
||||
|
||||
memset(&ieee->current_network, 0, sizeof(struct rtllib_network));
|
||||
|
||||
ieee->state = RTLLIB_NOLINK;
|
||||
ieee->link_state = MAC80211_NOLINK;
|
||||
for (i = 0; i < 5; i++)
|
||||
ieee->seq_ctrl[i] = 0;
|
||||
ieee->dot11d_info = kzalloc(sizeof(struct rt_dot11d_info), GFP_ATOMIC);
|
||||
@ -3139,7 +3043,7 @@ static void rtllib_MgntDisconnectIBSS(struct rtllib_device *rtllib)
|
||||
u8 i;
|
||||
bool bFilterOutNonAssociatedBSSID = false;
|
||||
|
||||
rtllib->state = RTLLIB_NOLINK;
|
||||
rtllib->link_state = MAC80211_NOLINK;
|
||||
|
||||
for (i = 0; i < 6; i++)
|
||||
rtllib->current_network.bssid[i] = 0x55;
|
||||
@ -3155,7 +3059,6 @@ static void rtllib_MgntDisconnectIBSS(struct rtllib_device *rtllib)
|
||||
rtllib->SetHwRegHandler(rtllib->dev, HW_VAR_CECHK_BSSID,
|
||||
(u8 *)(&bFilterOutNonAssociatedBSSID));
|
||||
notify_wx_assoc_event(rtllib);
|
||||
|
||||
}
|
||||
|
||||
static void rtllib_MlmeDisassociateRequest(struct rtllib_device *rtllib,
|
||||
@ -3167,7 +3070,7 @@ static void rtllib_MlmeDisassociateRequest(struct rtllib_device *rtllib,
|
||||
RemovePeerTS(rtllib, asSta);
|
||||
|
||||
if (memcmp(rtllib->current_network.bssid, asSta, 6) == 0) {
|
||||
rtllib->state = RTLLIB_NOLINK;
|
||||
rtllib->link_state = MAC80211_NOLINK;
|
||||
|
||||
for (i = 0; i < 6; i++)
|
||||
rtllib->current_network.bssid[i] = 0x22;
|
||||
@ -3179,9 +3082,7 @@ static void rtllib_MlmeDisassociateRequest(struct rtllib_device *rtllib,
|
||||
|
||||
rtllib->SetHwRegHandler(rtllib->dev, HW_VAR_BSSID,
|
||||
rtllib->current_network.bssid);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
@ -3198,7 +3099,7 @@ rtllib_MgntDisconnectAP(
|
||||
rtllib_MlmeDisassociateRequest(rtllib, rtllib->current_network.bssid,
|
||||
asRsn);
|
||||
|
||||
rtllib->state = RTLLIB_NOLINK;
|
||||
rtllib->link_state = MAC80211_NOLINK;
|
||||
}
|
||||
|
||||
bool rtllib_MgntDisconnect(struct rtllib_device *rtllib, u8 asRsn)
|
||||
@ -3206,12 +3107,11 @@ bool rtllib_MgntDisconnect(struct rtllib_device *rtllib, u8 asRsn)
|
||||
if (rtllib->ps != RTLLIB_PS_DISABLED)
|
||||
rtllib->sta_wake_up(rtllib->dev);
|
||||
|
||||
if (rtllib->state == RTLLIB_LINKED) {
|
||||
if (rtllib->link_state == MAC80211_LINKED) {
|
||||
if (rtllib->iw_mode == IW_MODE_ADHOC)
|
||||
rtllib_MgntDisconnectIBSS(rtllib);
|
||||
if (rtllib->iw_mode == IW_MODE_INFRA)
|
||||
rtllib_MgntDisconnectAP(rtllib, asRsn);
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
@ -3226,11 +3126,10 @@ void notify_wx_assoc_event(struct rtllib_device *ieee)
|
||||
return;
|
||||
|
||||
wrqu.ap_addr.sa_family = ARPHRD_ETHER;
|
||||
if (ieee->state == RTLLIB_LINKED)
|
||||
if (ieee->link_state == MAC80211_LINKED) {
|
||||
memcpy(wrqu.ap_addr.sa_data, ieee->current_network.bssid,
|
||||
ETH_ALEN);
|
||||
else {
|
||||
|
||||
} else {
|
||||
netdev_info(ieee->dev, "%s(): Tell user space disconnected\n",
|
||||
__func__);
|
||||
eth_zero_addr(wrqu.ap_addr.sa_data);
|
||||
|
@ -15,16 +15,6 @@
|
||||
|
||||
#include "rtllib.h"
|
||||
#include "dot11d.h"
|
||||
/* FIXME: add A freqs */
|
||||
|
||||
const long rtllib_wlan_frequencies[] = {
|
||||
2412, 2417, 2422, 2427,
|
||||
2432, 2437, 2442, 2447,
|
||||
2452, 2457, 2462, 2467,
|
||||
2472, 2484
|
||||
};
|
||||
EXPORT_SYMBOL(rtllib_wlan_frequencies);
|
||||
|
||||
|
||||
int rtllib_wx_set_freq(struct rtllib_device *ieee, struct iw_request_info *a,
|
||||
union iwreq_data *wrqu, char *b)
|
||||
@ -43,15 +33,8 @@ int rtllib_wx_set_freq(struct rtllib_device *ieee, struct iw_request_info *a,
|
||||
if (fwrq->e == 1) {
|
||||
if ((fwrq->m >= (int)2.412e8 &&
|
||||
fwrq->m <= (int)2.487e8)) {
|
||||
int f = fwrq->m / 100000;
|
||||
int c = 0;
|
||||
|
||||
while ((c < 14) && (f != rtllib_wlan_frequencies[c]))
|
||||
c++;
|
||||
|
||||
/* hack to fall through */
|
||||
fwrq->m = ieee80211_freq_khz_to_channel(fwrq->m / 100);
|
||||
fwrq->e = 0;
|
||||
fwrq->m = c + 1;
|
||||
}
|
||||
}
|
||||
|
||||
@ -70,7 +53,7 @@ int rtllib_wx_set_freq(struct rtllib_device *ieee, struct iw_request_info *a,
|
||||
|
||||
if (ieee->iw_mode == IW_MODE_ADHOC ||
|
||||
ieee->iw_mode == IW_MODE_MASTER)
|
||||
if (ieee->state == RTLLIB_LINKED) {
|
||||
if (ieee->link_state == MAC80211_LINKED) {
|
||||
rtllib_stop_send_beacons(ieee);
|
||||
rtllib_start_send_beacons(ieee);
|
||||
}
|
||||
@ -83,7 +66,6 @@ out:
|
||||
}
|
||||
EXPORT_SYMBOL(rtllib_wx_set_freq);
|
||||
|
||||
|
||||
int rtllib_wx_get_freq(struct rtllib_device *ieee,
|
||||
struct iw_request_info *a,
|
||||
union iwreq_data *wrqu, char *b)
|
||||
@ -92,8 +74,8 @@ int rtllib_wx_get_freq(struct rtllib_device *ieee,
|
||||
|
||||
if (ieee->current_network.channel == 0)
|
||||
return -1;
|
||||
fwrq->m = rtllib_wlan_frequencies[ieee->current_network.channel-1] *
|
||||
100000;
|
||||
fwrq->m = ieee80211_channel_to_freq_khz(ieee->current_network.channel,
|
||||
NL80211_BAND_2GHZ) * 100;
|
||||
fwrq->e = 1;
|
||||
return 0;
|
||||
}
|
||||
@ -113,8 +95,8 @@ int rtllib_wx_get_wap(struct rtllib_device *ieee,
|
||||
/* We want avoid to give to the user inconsistent infos*/
|
||||
spin_lock_irqsave(&ieee->lock, flags);
|
||||
|
||||
if (ieee->state != RTLLIB_LINKED &&
|
||||
ieee->state != RTLLIB_LINKED_SCANNING &&
|
||||
if (ieee->link_state != MAC80211_LINKED &&
|
||||
ieee->link_state != MAC80211_LINKED_SCANNING &&
|
||||
ieee->wap_set == 0)
|
||||
|
||||
eth_zero_addr(wrqu->ap_addr.sa_data);
|
||||
@ -128,13 +110,11 @@ int rtllib_wx_get_wap(struct rtllib_device *ieee,
|
||||
}
|
||||
EXPORT_SYMBOL(rtllib_wx_get_wap);
|
||||
|
||||
|
||||
int rtllib_wx_set_wap(struct rtllib_device *ieee,
|
||||
struct iw_request_info *info,
|
||||
union iwreq_data *awrq,
|
||||
char *extra)
|
||||
{
|
||||
|
||||
int ret = 0;
|
||||
unsigned long flags;
|
||||
|
||||
@ -164,7 +144,6 @@ int rtllib_wx_set_wap(struct rtllib_device *ieee,
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
||||
if (ifup)
|
||||
rtllib_stop_protocol(ieee, true);
|
||||
|
||||
@ -205,8 +184,8 @@ int rtllib_wx_get_essid(struct rtllib_device *ieee, struct iw_request_info *a,
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (ieee->state != RTLLIB_LINKED &&
|
||||
ieee->state != RTLLIB_LINKED_SCANNING &&
|
||||
if (ieee->link_state != MAC80211_LINKED &&
|
||||
ieee->link_state != MAC80211_LINKED_SCANNING &&
|
||||
ieee->ssid_set == 0) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
@ -220,7 +199,6 @@ out:
|
||||
spin_unlock_irqrestore(&ieee->lock, flags);
|
||||
|
||||
return ret;
|
||||
|
||||
}
|
||||
EXPORT_SYMBOL(rtllib_wx_get_essid);
|
||||
|
||||
@ -228,7 +206,6 @@ int rtllib_wx_set_rate(struct rtllib_device *ieee,
|
||||
struct iw_request_info *info,
|
||||
union iwreq_data *wrqu, char *extra)
|
||||
{
|
||||
|
||||
u32 target_rate = wrqu->bitrate.value;
|
||||
|
||||
ieee->rate = target_rate / 100000;
|
||||
@ -250,14 +227,13 @@ int rtllib_wx_get_rate(struct rtllib_device *ieee,
|
||||
}
|
||||
EXPORT_SYMBOL(rtllib_wx_get_rate);
|
||||
|
||||
|
||||
int rtllib_wx_set_rts(struct rtllib_device *ieee,
|
||||
struct iw_request_info *info,
|
||||
union iwreq_data *wrqu, char *extra)
|
||||
{
|
||||
if (wrqu->rts.disabled || !wrqu->rts.fixed)
|
||||
if (wrqu->rts.disabled || !wrqu->rts.fixed) {
|
||||
ieee->rts = DEFAULT_RTS_THRESHOLD;
|
||||
else {
|
||||
} else {
|
||||
if (wrqu->rts.value < MIN_RTS_THRESHOLD ||
|
||||
wrqu->rts.value > MAX_RTS_THRESHOLD)
|
||||
return -EINVAL;
|
||||
@ -332,6 +308,7 @@ void rtllib_wx_sync_scan_wq(void *data)
|
||||
enum ht_channel_width bandwidth = 0;
|
||||
int b40M = 0;
|
||||
|
||||
mutex_lock(&ieee->wx_mutex);
|
||||
if (!(ieee->softmac_features & IEEE_SOFTMAC_SCAN)) {
|
||||
rtllib_start_scan_syncro(ieee, 0);
|
||||
goto out;
|
||||
@ -339,17 +316,14 @@ void rtllib_wx_sync_scan_wq(void *data)
|
||||
|
||||
chan = ieee->current_network.channel;
|
||||
|
||||
ieee->LeisurePSLeave(ieee->dev);
|
||||
ieee->leisure_ps_leave(ieee->dev);
|
||||
/* notify AP to be in PS mode */
|
||||
rtllib_sta_ps_send_null_frame(ieee, 1);
|
||||
rtllib_sta_ps_send_null_frame(ieee, 1);
|
||||
|
||||
rtllib_stop_all_queues(ieee);
|
||||
|
||||
if (ieee->data_hard_stop)
|
||||
ieee->data_hard_stop(ieee->dev);
|
||||
rtllib_stop_send_beacons(ieee);
|
||||
ieee->state = RTLLIB_LINKED_SCANNING;
|
||||
ieee->link_state = MAC80211_LINKED_SCANNING;
|
||||
ieee->link_change(ieee->dev);
|
||||
/* wait for ps packet to be kicked out successfully */
|
||||
msleep(50);
|
||||
@ -361,7 +335,7 @@ void rtllib_wx_sync_scan_wq(void *data)
|
||||
b40M = 1;
|
||||
chan_offset = ieee->ht_info->CurSTAExtChnlOffset;
|
||||
bandwidth = (enum ht_channel_width)ieee->ht_info->bCurBW40MHz;
|
||||
ieee->SetBWModeHandler(ieee->dev, HT_CHANNEL_WIDTH_20,
|
||||
ieee->set_bw_mode_handler(ieee->dev, HT_CHANNEL_WIDTH_20,
|
||||
HT_EXTCHNL_OFFSET_NO_EXT);
|
||||
}
|
||||
|
||||
@ -374,14 +348,14 @@ void rtllib_wx_sync_scan_wq(void *data)
|
||||
ieee->set_chan(ieee->dev, chan - 2);
|
||||
else
|
||||
ieee->set_chan(ieee->dev, chan);
|
||||
ieee->SetBWModeHandler(ieee->dev, bandwidth, chan_offset);
|
||||
ieee->set_bw_mode_handler(ieee->dev, bandwidth, chan_offset);
|
||||
} else {
|
||||
ieee->set_chan(ieee->dev, chan);
|
||||
}
|
||||
|
||||
ieee->ScanOperationBackupHandler(ieee->dev, SCAN_OPT_RESTORE);
|
||||
|
||||
ieee->state = RTLLIB_LINKED;
|
||||
ieee->link_state = MAC80211_LINKED;
|
||||
ieee->link_change(ieee->dev);
|
||||
|
||||
/* Notify AP that I wake up again */
|
||||
@ -392,10 +366,6 @@ void rtllib_wx_sync_scan_wq(void *data)
|
||||
ieee->link_detect_info.NumRecvBcnInPeriod = 1;
|
||||
ieee->link_detect_info.NumRecvDataInPeriod = 1;
|
||||
}
|
||||
|
||||
if (ieee->data_hard_resume)
|
||||
ieee->data_hard_resume(ieee->dev);
|
||||
|
||||
if (ieee->iw_mode == IW_MODE_ADHOC || ieee->iw_mode == IW_MODE_MASTER)
|
||||
rtllib_start_send_beacons(ieee);
|
||||
|
||||
@ -403,7 +373,6 @@ void rtllib_wx_sync_scan_wq(void *data)
|
||||
|
||||
out:
|
||||
mutex_unlock(&ieee->wx_mutex);
|
||||
|
||||
}
|
||||
|
||||
int rtllib_wx_set_scan(struct rtllib_device *ieee, struct iw_request_info *a,
|
||||
@ -411,21 +380,18 @@ int rtllib_wx_set_scan(struct rtllib_device *ieee, struct iw_request_info *a,
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
mutex_lock(&ieee->wx_mutex);
|
||||
|
||||
if (ieee->iw_mode == IW_MODE_MONITOR || !(ieee->proto_started)) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (ieee->state == RTLLIB_LINKED) {
|
||||
if (ieee->link_state == MAC80211_LINKED) {
|
||||
schedule_work(&ieee->wx_sync_scan_wq);
|
||||
/* intentionally forget to up sem */
|
||||
return 0;
|
||||
}
|
||||
|
||||
out:
|
||||
mutex_unlock(&ieee->wx_mutex);
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL(rtllib_wx_set_scan);
|
||||
@ -434,7 +400,6 @@ int rtllib_wx_set_essid(struct rtllib_device *ieee,
|
||||
struct iw_request_info *a,
|
||||
union iwreq_data *wrqu, char *extra)
|
||||
{
|
||||
|
||||
int ret = 0, len;
|
||||
short proto_started;
|
||||
unsigned long flags;
|
||||
@ -454,7 +419,6 @@ int rtllib_wx_set_essid(struct rtllib_device *ieee,
|
||||
if (proto_started)
|
||||
rtllib_stop_protocol(ieee, true);
|
||||
|
||||
|
||||
/* this is just to be sure that the GET wx callback
|
||||
* has consistent infos. not needed otherwise
|
||||
*/
|
||||
@ -492,7 +456,6 @@ int rtllib_wx_set_rawtx(struct rtllib_device *ieee,
|
||||
struct iw_request_info *info,
|
||||
union iwreq_data *wrqu, char *extra)
|
||||
{
|
||||
|
||||
int *parms = (int *)extra;
|
||||
int enable = (parms[0] > 0);
|
||||
short prev = ieee->raw_tx;
|
||||
@ -508,12 +471,8 @@ int rtllib_wx_set_rawtx(struct rtllib_device *ieee,
|
||||
ieee->raw_tx ? "enabled" : "disabled");
|
||||
|
||||
if (ieee->iw_mode == IW_MODE_MONITOR) {
|
||||
if (prev == 0 && ieee->raw_tx) {
|
||||
if (ieee->data_hard_resume)
|
||||
ieee->data_hard_resume(ieee->dev);
|
||||
|
||||
if (prev == 0 && ieee->raw_tx)
|
||||
netif_carrier_on(ieee->dev);
|
||||
}
|
||||
|
||||
if (prev && ieee->raw_tx == 1)
|
||||
netif_carrier_off(ieee->dev);
|
||||
@ -530,14 +489,13 @@ int rtllib_wx_get_name(struct rtllib_device *ieee, struct iw_request_info *info,
|
||||
{
|
||||
const char *b = ieee->modulation & RTLLIB_CCK_MODULATION ? "b" : "";
|
||||
const char *g = ieee->modulation & RTLLIB_OFDM_MODULATION ? "g" : "";
|
||||
const char *n = ieee->mode & (IEEE_N_24G | IEEE_N_5G) ? "n" : "";
|
||||
const char *n = ieee->mode & (WIRELESS_MODE_N_24G) ? "n" : "";
|
||||
|
||||
scnprintf(wrqu->name, sizeof(wrqu->name), "802.11%s%s%s", b, g, n);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(rtllib_wx_get_name);
|
||||
|
||||
|
||||
/* this is mostly stolen from hostap */
|
||||
int rtllib_wx_set_power(struct rtllib_device *ieee,
|
||||
struct iw_request_info *info,
|
||||
@ -583,12 +541,10 @@ int rtllib_wx_set_power(struct rtllib_device *ieee,
|
||||
default:
|
||||
ret = -EINVAL;
|
||||
goto exit;
|
||||
|
||||
}
|
||||
exit:
|
||||
mutex_unlock(&ieee->wx_mutex);
|
||||
return ret;
|
||||
|
||||
}
|
||||
EXPORT_SYMBOL(rtllib_wx_set_power);
|
||||
|
||||
@ -625,6 +581,5 @@ int rtllib_wx_get_power(struct rtllib_device *ieee,
|
||||
exit:
|
||||
mutex_unlock(&ieee->wx_mutex);
|
||||
return 0;
|
||||
|
||||
}
|
||||
EXPORT_SYMBOL(rtllib_wx_get_power);
|
||||
|
@ -406,7 +406,7 @@ static void rtllib_query_protectionmode(struct rtllib_device *ieee,
|
||||
if (is_broadcast_ether_addr(skb->data + 16))
|
||||
return;
|
||||
|
||||
if (ieee->mode < IEEE_N_24G) {
|
||||
if (ieee->mode < WIRELESS_MODE_N_24G) {
|
||||
if (skb->len > ieee->rts) {
|
||||
tcb_desc->bRTSEnable = true;
|
||||
tcb_desc->rts_rate = MGN_24M;
|
||||
@ -486,7 +486,7 @@ static void rtllib_txrate_selectmode(struct rtllib_device *ieee,
|
||||
!tcb_desc->tx_use_drv_assinged_rate) {
|
||||
if (ieee->iw_mode == IW_MODE_INFRA ||
|
||||
ieee->iw_mode == IW_MODE_ADHOC)
|
||||
tcb_desc->RATRIndex = 0;
|
||||
tcb_desc->ratr_index = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -572,8 +572,7 @@ static int rtllib_xmit_inter(struct sk_buff *skb, struct net_device *dev)
|
||||
/* If there is no driver handler to take the TXB, don't bother
|
||||
* creating it...
|
||||
*/
|
||||
if ((!ieee->hard_start_xmit && !(ieee->softmac_features &
|
||||
IEEE_SOFTMAC_TX_QUEUE)) ||
|
||||
if (!(ieee->softmac_features & IEEE_SOFTMAC_TX_QUEUE) ||
|
||||
((!ieee->softmac_data_hard_start_xmit &&
|
||||
(ieee->softmac_features & IEEE_SOFTMAC_TX_QUEUE)))) {
|
||||
netdev_warn(ieee->dev, "No xmit handler.\n");
|
||||
@ -892,7 +891,7 @@ static int rtllib_xmit_inter(struct sk_buff *skb, struct net_device *dev)
|
||||
tcb_desc->tx_dis_rate_fallback = 1;
|
||||
}
|
||||
|
||||
tcb_desc->RATRIndex = 7;
|
||||
tcb_desc->ratr_index = 7;
|
||||
tcb_desc->tx_use_drv_assinged_rate = 1;
|
||||
} else {
|
||||
if (is_multicast_ether_addr(header.addr1))
|
||||
@ -916,7 +915,7 @@ static int rtllib_xmit_inter(struct sk_buff *skb, struct net_device *dev)
|
||||
tcb_desc->tx_dis_rate_fallback = 1;
|
||||
}
|
||||
|
||||
tcb_desc->RATRIndex = 7;
|
||||
tcb_desc->ratr_index = 7;
|
||||
tcb_desc->tx_use_drv_assinged_rate = 1;
|
||||
tcb_desc->bdhcp = 1;
|
||||
}
|
||||
@ -938,11 +937,6 @@ static int rtllib_xmit_inter(struct sk_buff *skb, struct net_device *dev)
|
||||
dev->stats.tx_bytes += le16_to_cpu(txb->payload_size);
|
||||
rtllib_softmac_xmit(txb, ieee);
|
||||
} else {
|
||||
if ((*ieee->hard_start_xmit)(txb, dev) == 0) {
|
||||
stats->tx_packets++;
|
||||
stats->tx_bytes += le16_to_cpu(txb->payload_size);
|
||||
return 0;
|
||||
}
|
||||
rtllib_txb_free(txb);
|
||||
}
|
||||
}
|
||||
|
@ -19,7 +19,7 @@
|
||||
#include "rtllib.h"
|
||||
|
||||
static const char * const rtllib_modes[] = {
|
||||
"a", "b", "g", "?", "N-24G", "N-5G"
|
||||
"a", "b", "g", "?", "N-24G"
|
||||
};
|
||||
|
||||
#define MAX_CUSTOM_LEN 64
|
||||
@ -118,7 +118,7 @@ static inline char *rtl819x_translate_scan(struct rtllib_device *ieee,
|
||||
max_rate = rate;
|
||||
}
|
||||
|
||||
if (network->mode >= IEEE_N_24G) {
|
||||
if (network->mode >= WIRELESS_MODE_N_24G) {
|
||||
struct ht_capab_ele *ht_cap = NULL;
|
||||
bool is40M = false, isShortGI = false;
|
||||
u8 max_mcs = 0;
|
||||
@ -416,22 +416,6 @@ int rtllib_wx_set_encode(struct rtllib_device *ieee,
|
||||
*/
|
||||
sec.flags |= SEC_LEVEL;
|
||||
sec.level = SEC_LEVEL_1; /* 40 and 104 bit WEP */
|
||||
|
||||
if (ieee->set_security)
|
||||
ieee->set_security(dev, &sec);
|
||||
|
||||
/* Do not reset port if card is in Managed mode since resetting will
|
||||
* generate new IEEE 802.11 authentication which may end up in looping
|
||||
* with IEEE 802.1X. If your hardware requires a reset after WEP
|
||||
* configuration (for example... Prism2), implement the reset_port in
|
||||
* the callbacks structures used to initialize the 802.11 stack.
|
||||
*/
|
||||
if (ieee->reset_on_keychange &&
|
||||
ieee->iw_mode != IW_MODE_INFRA &&
|
||||
ieee->reset_port && ieee->reset_port(dev)) {
|
||||
netdev_dbg(dev, "%s: reset_port failed\n", dev->name);
|
||||
return -EINVAL;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(rtllib_wx_set_encode);
|
||||
@ -623,15 +607,6 @@ int rtllib_wx_set_encode_ext(struct rtllib_device *ieee,
|
||||
sec.flags &= ~SEC_LEVEL;
|
||||
}
|
||||
done:
|
||||
if (ieee->set_security)
|
||||
ieee->set_security(ieee->dev, &sec);
|
||||
|
||||
if (ieee->reset_on_keychange &&
|
||||
ieee->iw_mode != IW_MODE_INFRA &&
|
||||
ieee->reset_port && ieee->reset_port(dev)) {
|
||||
netdev_dbg(ieee->dev, "Port reset failed\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL(rtllib_wx_set_encode_ext);
|
||||
@ -644,7 +619,7 @@ int rtllib_wx_set_mlme(struct rtllib_device *ieee,
|
||||
bool deauth = false;
|
||||
struct iw_mlme *mlme = (struct iw_mlme *)extra;
|
||||
|
||||
if (ieee->state != RTLLIB_LINKED)
|
||||
if (ieee->link_state != MAC80211_LINKED)
|
||||
return -ENOLINK;
|
||||
|
||||
mutex_lock(&ieee->wx_mutex);
|
||||
|
@ -2275,7 +2275,10 @@ void Hal_EfuseParseBTCoexistInfo_8723B(
|
||||
pHalData->EEPROMBluetoothAntNum = tempval & BIT(0);
|
||||
/* EFUSE_0xC3[6] == 0, S1(Main)-RF_PATH_A; */
|
||||
/* EFUSE_0xC3[6] == 1, S0(Aux)-RF_PATH_B */
|
||||
pHalData->ant_path = (tempval & BIT(6))? RF_PATH_B : RF_PATH_A;
|
||||
if (tempval & BIT(6))
|
||||
pHalData->ant_path = RF_PATH_B;
|
||||
else
|
||||
pHalData->ant_path = RF_PATH_A;
|
||||
} else {
|
||||
pHalData->EEPROMBluetoothAntNum = Ant_x1;
|
||||
if (pHalData->PackageType == PACKAGE_QFN68)
|
||||
|
@ -305,7 +305,6 @@ struct cfg80211_bss *rtw_cfg80211_inform_bss(struct adapter *padapter, struct wl
|
||||
memcpy(pwlanhdr->addr2, pnetwork->network.mac_address, ETH_ALEN);
|
||||
memcpy(pwlanhdr->addr3, pnetwork->network.mac_address, ETH_ALEN);
|
||||
|
||||
|
||||
pbuf += sizeof(struct ieee80211_hdr_3addr);
|
||||
len = sizeof(struct ieee80211_hdr_3addr);
|
||||
|
||||
@ -325,14 +324,13 @@ struct cfg80211_bss *rtw_cfg80211_inform_bss(struct adapter *padapter, struct wl
|
||||
|
||||
exit:
|
||||
return bss;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
Check the given bss is valid by kernel API cfg80211_get_bss()
|
||||
@padapter : the given adapter
|
||||
|
||||
return true if bss is valid, false for not found.
|
||||
* Check the given bss is valid by kernel API cfg80211_get_bss()
|
||||
* @padapter : the given adapter
|
||||
*
|
||||
* return true if bss is valid, false for not found.
|
||||
*/
|
||||
int rtw_cfg80211_check_bss(struct adapter *padapter)
|
||||
{
|
||||
@ -374,7 +372,6 @@ void rtw_cfg80211_ibss_indicate_connect(struct adapter *padapter)
|
||||
struct wlan_network *scanned = pmlmepriv->cur_network_scanned;
|
||||
|
||||
if (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == true) {
|
||||
|
||||
memcpy(&cur_network->network, pnetwork, sizeof(struct wlan_bssid_ex));
|
||||
rtw_cfg80211_inform_bss(padapter, cur_network);
|
||||
} else {
|
||||
@ -495,7 +492,6 @@ void rtw_cfg80211_indicate_disconnect(struct adapter *padapter)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, struct ieee_param *param, u32 param_len)
|
||||
{
|
||||
int ret = 0;
|
||||
@ -569,7 +565,6 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, struct ieee_pa
|
||||
rtw_ap_set_wep_key(padapter, param->u.crypt.key, wep_key_len, wep_key_idx, 1);
|
||||
|
||||
goto exit;
|
||||
|
||||
}
|
||||
|
||||
/* group key */
|
||||
@ -616,11 +611,9 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, struct ieee_pa
|
||||
pbcmc_sta->ieee8021x_blocked = false;
|
||||
pbcmc_sta->dot118021XPrivacy = psecuritypriv->dot118021XGrpPrivacy;/* rx will use bmc_sta's dot118021XPrivacy */
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
goto exit;
|
||||
|
||||
}
|
||||
|
||||
if (psecuritypriv->dot11AuthAlgrthm == dot11AuthAlgrthm_8021X && psta) { /* psk/802_1x */
|
||||
@ -643,7 +636,6 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, struct ieee_pa
|
||||
psecuritypriv->busetkipkey = true;
|
||||
|
||||
} else if (strcmp(param->u.crypt.alg, "CCMP") == 0) {
|
||||
|
||||
psta->dot118021XPrivacy = _AES_;
|
||||
} else {
|
||||
psta->dot118021XPrivacy = _NO_PRIVACY_;
|
||||
@ -695,17 +687,13 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, struct ieee_pa
|
||||
pbcmc_sta->ieee8021x_blocked = false;
|
||||
pbcmc_sta->dot118021XPrivacy = psecuritypriv->dot118021XGrpPrivacy;/* rx will use bmc_sta's dot118021XPrivacy */
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
exit:
|
||||
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
static int rtw_cfg80211_set_encryption(struct net_device *dev, struct ieee_param *param, u32 param_len)
|
||||
@ -789,7 +777,6 @@ static int rtw_cfg80211_set_encryption(struct net_device *dev, struct ieee_param
|
||||
if (strcmp(param->u.crypt.alg, "none") != 0)
|
||||
psta->ieee8021x_blocked = false;
|
||||
|
||||
|
||||
if ((padapter->securitypriv.ndisencryptstatus == Ndis802_11Encryption2Enabled) ||
|
||||
(padapter->securitypriv.ndisencryptstatus == Ndis802_11Encryption3Enabled)) {
|
||||
psta->dot118021XPrivacy = padapter->securitypriv.dot11PrivacyAlgrthm;
|
||||
@ -900,7 +887,6 @@ static int cfg80211_rtw_add_key(struct wiphy *wiphy, struct net_device *ndev,
|
||||
|
||||
strncpy((char *)param->u.crypt.alg, alg_name, IEEE_CRYPT_ALG_NAME_LEN);
|
||||
|
||||
|
||||
if (!mac_addr || is_broadcast_ether_addr(mac_addr))
|
||||
param->u.crypt.set_tx = 0; /* for wpa/wpa2 group key */
|
||||
else
|
||||
@ -932,7 +918,6 @@ addkey_end:
|
||||
kfree(param);
|
||||
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
static int cfg80211_rtw_get_key(struct wiphy *wiphy, struct net_device *ndev,
|
||||
@ -983,7 +968,6 @@ static int cfg80211_rtw_set_default_key(struct wiphy *wiphy,
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
static int cfg80211_rtw_get_station(struct wiphy *wiphy,
|
||||
@ -1168,7 +1152,6 @@ void rtw_cfg80211_surveydone_event_callback(struct adapter *padapter)
|
||||
/* ev =translate_scan(padapter, a, pnetwork, ev, stop); */
|
||||
rtw_cfg80211_inform_bss(padapter, pnetwork);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
|
||||
@ -1200,7 +1183,6 @@ static int rtw_cfg80211_set_probe_req_wpsp2pie(struct adapter *padapter, char *b
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
static int cfg80211_rtw_scan(struct wiphy *wiphy
|
||||
@ -1312,7 +1294,6 @@ static int cfg80211_rtw_scan(struct wiphy *wiphy
|
||||
}
|
||||
spin_unlock_bh(&pmlmepriv->lock);
|
||||
|
||||
|
||||
if (_status == false)
|
||||
ret = -1;
|
||||
|
||||
@ -1327,7 +1308,6 @@ check_need_indicate_scan_done:
|
||||
|
||||
exit:
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
static int cfg80211_rtw_set_wiphy_params(struct wiphy *wiphy, u32 changed)
|
||||
@ -1342,12 +1322,10 @@ static int rtw_cfg80211_set_wpa_version(struct security_priv *psecuritypriv, u32
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
if (wpa_version & (NL80211_WPA_VERSION_1 | NL80211_WPA_VERSION_2))
|
||||
psecuritypriv->ndisauthtype = Ndis802_11AuthModeWPAPSK;
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
static int rtw_cfg80211_set_auth_type(struct security_priv *psecuritypriv,
|
||||
@ -1373,7 +1351,6 @@ static int rtw_cfg80211_set_auth_type(struct security_priv *psecuritypriv,
|
||||
|
||||
psecuritypriv->ndisencryptstatus = Ndis802_11Encryption1Enabled;
|
||||
|
||||
|
||||
break;
|
||||
default:
|
||||
psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_Open;
|
||||
@ -1381,7 +1358,6 @@ static int rtw_cfg80211_set_auth_type(struct security_priv *psecuritypriv,
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
static int rtw_cfg80211_set_cipher(struct security_priv *psecuritypriv, u32 cipher, bool ucast)
|
||||
@ -1391,7 +1367,6 @@ static int rtw_cfg80211_set_cipher(struct security_priv *psecuritypriv, u32 ciph
|
||||
u32 *profile_cipher = ucast ? &psecuritypriv->dot11PrivacyAlgrthm :
|
||||
&psecuritypriv->dot118021XGrpPrivacy;
|
||||
|
||||
|
||||
if (!cipher) {
|
||||
*profile_cipher = _NO_PRIVACY_;
|
||||
psecuritypriv->ndisencryptstatus = ndisencryptstatus;
|
||||
@ -1603,7 +1578,6 @@ static int cfg80211_rtw_join_ibss(struct wiphy *wiphy, struct net_device *ndev,
|
||||
}
|
||||
|
||||
if (params->ssid_len > IW_ESSID_MAX_SIZE) {
|
||||
|
||||
ret = -E2BIG;
|
||||
goto exit;
|
||||
}
|
||||
@ -1671,7 +1645,6 @@ static int cfg80211_rtw_connect(struct wiphy *wiphy, struct net_device *ndev,
|
||||
|
||||
padapter->mlmepriv.not_indic_disco = true;
|
||||
|
||||
|
||||
if (adapter_wdev_data(padapter)->block == true) {
|
||||
ret = -EBUSY;
|
||||
goto exit;
|
||||
@ -1694,7 +1667,6 @@ static int cfg80211_rtw_connect(struct wiphy *wiphy, struct net_device *ndev,
|
||||
}
|
||||
|
||||
if (sme->ssid_len > IW_ESSID_MAX_SIZE) {
|
||||
|
||||
ret = -E2BIG;
|
||||
goto exit;
|
||||
}
|
||||
@ -1889,7 +1861,6 @@ static int cfg80211_rtw_set_pmksa(struct wiphy *wiphy,
|
||||
/* overwrite PMKID */
|
||||
for (index = 0 ; index < NUM_PMKID_CACHE; index++) {
|
||||
if (!memcmp(psecuritypriv->PMKIDList[index].Bssid, (u8 *)pmksa->bssid, ETH_ALEN)) {
|
||||
|
||||
memcpy(psecuritypriv->PMKIDList[index].PMKID, (u8 *)pmksa->pmkid, WLAN_PMKID_LEN);
|
||||
psecuritypriv->PMKIDList[index].bUsed = true;
|
||||
psecuritypriv->PMKIDIndex = index+1;
|
||||
@ -1899,7 +1870,6 @@ static int cfg80211_rtw_set_pmksa(struct wiphy *wiphy,
|
||||
}
|
||||
|
||||
if (!blInserted) {
|
||||
|
||||
memcpy(psecuritypriv->PMKIDList[psecuritypriv->PMKIDIndex].Bssid, (u8 *)pmksa->bssid, ETH_ALEN);
|
||||
memcpy(psecuritypriv->PMKIDList[psecuritypriv->PMKIDIndex].PMKID, (u8 *)pmksa->pmkid, WLAN_PMKID_LEN);
|
||||
|
||||
@ -2135,11 +2105,9 @@ static netdev_tx_t rtw_cfg80211_monitor_if_xmit_entry(struct sk_buff *skb, struc
|
||||
pattrib->seqnum = pmlmeext->mgnt_seq;
|
||||
pmlmeext->mgnt_seq++;
|
||||
|
||||
|
||||
pattrib->last_txcmdsz = pattrib->pktlen;
|
||||
|
||||
dump_mgntframe(padapter, pmgntframe);
|
||||
|
||||
}
|
||||
|
||||
fail:
|
||||
@ -2147,11 +2115,8 @@ fail:
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
return NETDEV_TX_OK;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
static const struct net_device_ops rtw_cfg80211_monitor_if_ops = {
|
||||
.ndo_start_xmit = rtw_cfg80211_monitor_if_xmit_entry,
|
||||
};
|
||||
@ -2324,7 +2289,6 @@ static int rtw_add_beacon(struct adapter *adapter, const u8 *head, size_t head_l
|
||||
else
|
||||
ret = -EINVAL;
|
||||
|
||||
|
||||
kfree(pbuf);
|
||||
|
||||
return ret;
|
||||
@ -2404,7 +2368,6 @@ static int cfg80211_rtw_del_station(struct wiphy *wiphy, struct net_device *ndev
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
||||
spin_lock_bh(&pstapriv->asoc_list_lock);
|
||||
|
||||
phead = &pstapriv->asoc_list;
|
||||
@ -2423,9 +2386,7 @@ static int cfg80211_rtw_del_station(struct wiphy *wiphy, struct net_device *ndev
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
spin_unlock_bh(&pstapriv->asoc_list_lock);
|
||||
@ -2433,7 +2394,6 @@ static int cfg80211_rtw_del_station(struct wiphy *wiphy, struct net_device *ndev
|
||||
associated_clients_update(padapter, updated);
|
||||
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
static int cfg80211_rtw_change_station(struct wiphy *wiphy, struct net_device *ndev,
|
||||
@ -2465,7 +2425,6 @@ static struct sta_info *rtw_sta_info_get_by_idx(const int idx, struct sta_priv *
|
||||
static int cfg80211_rtw_dump_station(struct wiphy *wiphy, struct net_device *ndev,
|
||||
int idx, u8 *mac, struct station_info *sinfo)
|
||||
{
|
||||
|
||||
int ret = 0;
|
||||
struct adapter *padapter = rtw_netdev_priv(ndev);
|
||||
struct sta_info *psta = NULL;
|
||||
@ -2568,7 +2527,6 @@ static int _cfg80211_rtw_mgmt_tx(struct adapter *padapter, u8 tx_ch, const u8 *b
|
||||
exit:
|
||||
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
static int cfg80211_rtw_mgmt_tx(struct wiphy *wiphy,
|
||||
@ -2640,7 +2598,6 @@ exit:
|
||||
|
||||
static void rtw_cfg80211_init_ht_capab(struct ieee80211_sta_ht_cap *ht_cap, enum nl80211_band band)
|
||||
{
|
||||
|
||||
#define MAX_BIT_RATE_40MHZ_MCS15 300 /* Mbps */
|
||||
#define MAX_BIT_RATE_40MHZ_MCS7 150 /* Mbps */
|
||||
|
||||
@ -2692,12 +2649,10 @@ void rtw_cfg80211_init_wiphy(struct adapter *padapter)
|
||||
|
||||
/* copy mac_addr to wiphy */
|
||||
memcpy(wiphy->perm_addr, padapter->eeprompriv.mac_addr, ETH_ALEN);
|
||||
|
||||
}
|
||||
|
||||
static void rtw_cfg80211_preinit_wiphy(struct adapter *padapter, struct wiphy *wiphy)
|
||||
{
|
||||
|
||||
wiphy->signal_type = CFG80211_SIGNAL_TYPE_MBM;
|
||||
|
||||
wiphy->max_scan_ssids = RTW_SSID_SCAN_AMOUNT;
|
||||
@ -2844,7 +2799,6 @@ unregister_wiphy:
|
||||
wiphy_free(wiphy);
|
||||
exit:
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
void rtw_wdev_free(struct wireless_dev *wdev)
|
||||
|
@ -382,27 +382,21 @@ static int rtsx_control_thread(void *__dev)
|
||||
if (chip->srb->sc_data_direction == DMA_BIDIRECTIONAL) {
|
||||
dev_err(&dev->pci->dev, "UNKNOWN data direction\n");
|
||||
chip->srb->result = DID_ERROR << 16;
|
||||
}
|
||||
|
||||
} else if (chip->srb->device->id) {
|
||||
/* reject if target != 0 or if LUN is higher than
|
||||
* the maximum known LUN
|
||||
*/
|
||||
else if (chip->srb->device->id) {
|
||||
dev_err(&dev->pci->dev, "Bad target number (%d:%d)\n",
|
||||
chip->srb->device->id,
|
||||
(u8)chip->srb->device->lun);
|
||||
chip->srb->result = DID_BAD_TARGET << 16;
|
||||
}
|
||||
|
||||
else if (chip->srb->device->lun > chip->max_lun) {
|
||||
} else if (chip->srb->device->lun > chip->max_lun) {
|
||||
dev_err(&dev->pci->dev, "Bad LUN (%d:%d)\n",
|
||||
chip->srb->device->id,
|
||||
(u8)chip->srb->device->lun);
|
||||
chip->srb->result = DID_BAD_TARGET << 16;
|
||||
}
|
||||
|
||||
} else {
|
||||
/* we've got a command, let's do it! */
|
||||
else {
|
||||
scsi_show_command(chip);
|
||||
rtsx_invoke_transport(chip->srb, chip);
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
config FB_SM750
|
||||
tristate "Silicon Motion SM750 framebuffer support"
|
||||
depends on FB && PCI
|
||||
depends on FB && PCI && HAS_IOPORT
|
||||
select FB_MODE_HELPERS
|
||||
select FB_CFB_FILLRECT
|
||||
select FB_CFB_COPYAREA
|
||||
|
@ -78,8 +78,6 @@ struct vchiq_service_params_kernel {
|
||||
short version_min; /* Update for incompatible changes */
|
||||
};
|
||||
|
||||
struct vchiq_instance;
|
||||
|
||||
extern int vchiq_initialise(struct vchiq_instance **pinstance);
|
||||
extern int vchiq_shutdown(struct vchiq_instance *instance);
|
||||
extern int vchiq_connect(struct vchiq_instance *instance);
|
||||
|
@ -415,7 +415,7 @@ free_pagelist(struct vchiq_instance *instance, struct vchiq_pagelist_info *pagel
|
||||
pagelistinfo->scatterlist_mapped = 0;
|
||||
|
||||
/* Deal with any partial cache lines (fragments) */
|
||||
if (pagelist->type >= PAGELIST_READ_WITH_FRAGMENTS) {
|
||||
if (pagelist->type >= PAGELIST_READ_WITH_FRAGMENTS && g_fragments_base) {
|
||||
char *fragments = g_fragments_base +
|
||||
(pagelist->type - PAGELIST_READ_WITH_FRAGMENTS) *
|
||||
g_fragments_size;
|
||||
@ -462,7 +462,7 @@ free_pagelist(struct vchiq_instance *instance, struct vchiq_pagelist_info *pagel
|
||||
cleanup_pagelistinfo(instance, pagelistinfo);
|
||||
}
|
||||
|
||||
int vchiq_platform_init(struct platform_device *pdev, struct vchiq_state *state)
|
||||
static int vchiq_platform_init(struct platform_device *pdev, struct vchiq_state *state)
|
||||
{
|
||||
struct device *dev = &pdev->dev;
|
||||
struct vchiq_drvdata *drvdata = platform_get_drvdata(pdev);
|
||||
|
@ -1,6 +1,6 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
config VT6655
|
||||
tristate "VIA Technologies VT6655 support"
|
||||
depends on PCI && MAC80211 && m
|
||||
depends on PCI && HAS_IOPORT && MAC80211 && m
|
||||
help
|
||||
This is a vendor-written driver for VIA VT6655.
|
||||
|
@ -8,27 +8,6 @@
|
||||
*
|
||||
* linux-wlan
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the
|
||||
* terms of the GNU Public License version 2 (the "GPL"), in which
|
||||
* case the provisions of the GPL are applicable instead of the
|
||||
* above. If you wish to allow the use of your version of this file
|
||||
* only under the terms of the GPL and not to allow others to use
|
||||
* your version of this file under the MPL, indicate your decision
|
||||
* by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this
|
||||
* file under either the MPL or the GPL.
|
||||
*
|
||||
* --------------------------------------------------------------------
|
||||
*
|
||||
* Inquiries regarding the linux-wlan Open Source project can be
|
||||
|
@ -8,27 +8,6 @@
|
||||
*
|
||||
* linux-wlan
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the
|
||||
* terms of the GNU Public License version 2 (the "GPL"), in which
|
||||
* case the provisions of the GPL are applicable instead of the
|
||||
* above. If you wish to allow the use of your version of this file
|
||||
* only under the terms of the GPL and not to allow others to use
|
||||
* your version of this file under the MPL, indicate your decision
|
||||
* by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this
|
||||
* file under either the MPL or the GPL.
|
||||
*
|
||||
* --------------------------------------------------------------------
|
||||
*
|
||||
* Inquiries regarding the linux-wlan Open Source project can be
|
||||
|
@ -8,27 +8,6 @@
|
||||
*
|
||||
* linux-wlan
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the
|
||||
* terms of the GNU Public License version 2 (the "GPL"), in which
|
||||
* case the provisions of the GPL are applicable instead of the
|
||||
* above. If you wish to allow the use of your version of this file
|
||||
* only under the terms of the GPL and not to allow others to use
|
||||
* your version of this file under the MPL, indicate your decision
|
||||
* by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this
|
||||
* file under either the MPL or the GPL.
|
||||
*
|
||||
* --------------------------------------------------------------------
|
||||
*
|
||||
* Inquiries regarding the linux-wlan Open Source project can be
|
||||
|
@ -8,27 +8,6 @@
|
||||
*
|
||||
* linux-wlan
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the
|
||||
* terms of the GNU Public License version 2 (the "GPL"), in which
|
||||
* case the provisions of the GPL are applicable instead of the
|
||||
* above. If you wish to allow the use of your version of this file
|
||||
* only under the terms of the GPL and not to allow others to use
|
||||
* your version of this file under the MPL, indicate your decision
|
||||
* by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this
|
||||
* file under either the MPL or the GPL.
|
||||
*
|
||||
* --------------------------------------------------------------------
|
||||
*
|
||||
* Inquiries regarding the linux-wlan Open Source project can be
|
||||
|
@ -8,27 +8,6 @@
|
||||
*
|
||||
* linux-wlan
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the
|
||||
* terms of the GNU Public License version 2 (the "GPL"), in which
|
||||
* case the provisions of the GPL are applicable instead of the
|
||||
* above. If you wish to allow the use of your version of this file
|
||||
* only under the terms of the GPL and not to allow others to use
|
||||
* your version of this file under the MPL, indicate your decision
|
||||
* by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this
|
||||
* file under either the MPL or the GPL.
|
||||
*
|
||||
* --------------------------------------------------------------------
|
||||
*
|
||||
* Inquiries regarding the linux-wlan Open Source project can be
|
||||
|
@ -8,27 +8,6 @@
|
||||
*
|
||||
* linux-wlan
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the
|
||||
* terms of the GNU Public License version 2 (the "GPL"), in which
|
||||
* case the provisions of the GPL are applicable instead of the
|
||||
* above. If you wish to allow the use of your version of this file
|
||||
* only under the terms of the GPL and not to allow others to use
|
||||
* your version of this file under the MPL, indicate your decision
|
||||
* by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this
|
||||
* file under either the MPL or the GPL.
|
||||
*
|
||||
* --------------------------------------------------------------------
|
||||
*
|
||||
* Inquiries regarding the linux-wlan Open Source project can be
|
||||
|
@ -6,27 +6,6 @@
|
||||
*
|
||||
* linux-wlan
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the
|
||||
* terms of the GNU Public License version 2 (the "GPL"), in which
|
||||
* case the provisions of the GPL are applicable instead of the
|
||||
* above. If you wish to allow the use of your version of this file
|
||||
* only under the terms of the GPL and not to allow others to use
|
||||
* your version of this file under the MPL, indicate your decision
|
||||
* by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this
|
||||
* file under either the MPL or the GPL.
|
||||
*
|
||||
* --------------------------------------------------------------------
|
||||
*
|
||||
* Inquiries regarding the linux-wlan Open Source project can be
|
||||
|
@ -6,27 +6,6 @@
|
||||
*
|
||||
* linux-wlan
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the
|
||||
* terms of the GNU Public License version 2 (the "GPL"), in which
|
||||
* case the provisions of the GPL are applicable instead of the
|
||||
* above. If you wish to allow the use of your version of this file
|
||||
* only under the terms of the GPL and not to allow others to use
|
||||
* your version of this file under the MPL, indicate your decision
|
||||
* by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this
|
||||
* file under either the MPL or the GPL.
|
||||
*
|
||||
* --------------------------------------------------------------------
|
||||
*
|
||||
* Inquiries regarding the linux-wlan Open Source project can be
|
||||
@ -114,22 +93,8 @@ struct p80211msg_dot11req_scan_results {
|
||||
struct p80211item_uint32 cfpollreq;
|
||||
struct p80211item_uint32 privacy;
|
||||
struct p80211item_uint32 capinfo;
|
||||
struct p80211item_uint32 basicrate1;
|
||||
struct p80211item_uint32 basicrate2;
|
||||
struct p80211item_uint32 basicrate3;
|
||||
struct p80211item_uint32 basicrate4;
|
||||
struct p80211item_uint32 basicrate5;
|
||||
struct p80211item_uint32 basicrate6;
|
||||
struct p80211item_uint32 basicrate7;
|
||||
struct p80211item_uint32 basicrate8;
|
||||
struct p80211item_uint32 supprate1;
|
||||
struct p80211item_uint32 supprate2;
|
||||
struct p80211item_uint32 supprate3;
|
||||
struct p80211item_uint32 supprate4;
|
||||
struct p80211item_uint32 supprate5;
|
||||
struct p80211item_uint32 supprate6;
|
||||
struct p80211item_uint32 supprate7;
|
||||
struct p80211item_uint32 supprate8;
|
||||
struct p80211item_uint32 basicrate[8];
|
||||
struct p80211item_uint32 supprate[8];
|
||||
} __packed;
|
||||
|
||||
struct p80211msg_dot11req_start {
|
||||
|
@ -8,27 +8,6 @@
|
||||
*
|
||||
* linux-wlan
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the
|
||||
* terms of the GNU Public License version 2 (the "GPL"), in which
|
||||
* case the provisions of the GPL are applicable instead of the
|
||||
* above. If you wish to allow the use of your version of this file
|
||||
* only under the terms of the GPL and not to allow others to use
|
||||
* your version of this file under the MPL, indicate your decision
|
||||
* by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this
|
||||
* file under either the MPL or the GPL.
|
||||
*
|
||||
* --------------------------------------------------------------------
|
||||
*
|
||||
* Inquiries regarding the linux-wlan Open Source project can be
|
||||
|
@ -8,27 +8,6 @@
|
||||
*
|
||||
* linux-wlan
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the
|
||||
* terms of the GNU Public License version 2 (the "GPL"), in which
|
||||
* case the provisions of the GPL are applicable instead of the
|
||||
* above. If you wish to allow the use of your version of this file
|
||||
* only under the terms of the GPL and not to allow others to use
|
||||
* your version of this file under the MPL, indicate your decision
|
||||
* by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this
|
||||
* file under either the MPL or the GPL.
|
||||
*
|
||||
* --------------------------------------------------------------------
|
||||
*
|
||||
* Inquiries regarding the linux-wlan Open Source project can be
|
||||
|
@ -8,27 +8,6 @@
|
||||
*
|
||||
* linux-wlan
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the
|
||||
* terms of the GNU Public License version 2 (the "GPL"), in which
|
||||
* case the provisions of the GPL are applicable instead of the
|
||||
* above. If you wish to allow the use of your version of this file
|
||||
* only under the terms of the GPL and not to allow others to use
|
||||
* your version of this file under the MPL, indicate your decision
|
||||
* by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this
|
||||
* file under either the MPL or the GPL.
|
||||
*
|
||||
* --------------------------------------------------------------------
|
||||
*
|
||||
* Inquiries regarding the linux-wlan Open Source project can be
|
||||
|
@ -8,27 +8,6 @@
|
||||
*
|
||||
* linux-wlan
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the
|
||||
* terms of the GNU Public License version 2 (the "GPL"), in which
|
||||
* case the provisions of the GPL are applicable instead of the
|
||||
* above. If you wish to allow the use of your version of this file
|
||||
* only under the terms of the GPL and not to allow others to use
|
||||
* your version of this file under the MPL, indicate your decision
|
||||
* by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this
|
||||
* file under either the MPL or the GPL.
|
||||
*
|
||||
* --------------------------------------------------------------------
|
||||
*
|
||||
* Inquiries regarding the linux-wlan Open Source project can be
|
||||
|
@ -8,27 +8,6 @@
|
||||
*
|
||||
* linux-wlan
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the
|
||||
* terms of the GNU Public License version 2 (the "GPL"), in which
|
||||
* case the provisions of the GPL are applicable instead of the
|
||||
* above. If you wish to allow the use of your version of this file
|
||||
* only under the terms of the GPL and not to allow others to use
|
||||
* your version of this file under the MPL, indicate your decision
|
||||
* by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this
|
||||
* file under either the MPL or the GPL.
|
||||
*
|
||||
* --------------------------------------------------------------------
|
||||
*
|
||||
* Inquiries regarding the linux-wlan Open Source project can be
|
||||
|
@ -8,27 +8,6 @@
|
||||
*
|
||||
* linux-wlan
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the
|
||||
* terms of the GNU Public License version 2 (the "GPL"), in which
|
||||
* case the provisions of the GPL are applicable instead of the
|
||||
* above. If you wish to allow the use of your version of this file
|
||||
* only under the terms of the GPL and not to allow others to use
|
||||
* your version of this file under the MPL, indicate your decision
|
||||
* by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this
|
||||
* file under either the MPL or the GPL.
|
||||
*
|
||||
* --------------------------------------------------------------------
|
||||
*
|
||||
* Inquiries regarding the linux-wlan Open Source project can be
|
||||
|
@ -9,27 +9,6 @@
|
||||
*
|
||||
* linux-wlan
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the
|
||||
* terms of the GNU Public License version 2 (the "GPL"), in which
|
||||
* case the provisions of the GPL are applicable instead of the
|
||||
* above. If you wish to allow the use of your version of this file
|
||||
* only under the terms of the GPL and not to allow others to use
|
||||
* your version of this file under the MPL, indicate your decision
|
||||
* by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this
|
||||
* file under either the MPL or the GPL.
|
||||
*
|
||||
* --------------------------------------------------------------------
|
||||
*
|
||||
* Inquiries regarding the linux-wlan Open Source project can be
|
||||
|
@ -8,27 +8,6 @@
|
||||
*
|
||||
* linux-wlan
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the
|
||||
* terms of the GNU Public License version 2 (the "GPL"), in which
|
||||
* case the provisions of the GPL are applicable instead of the
|
||||
* above. If you wish to allow the use of your version of this file
|
||||
* only under the terms of the GPL and not to allow others to use
|
||||
* your version of this file under the MPL, indicate your decision
|
||||
* by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this
|
||||
* file under either the MPL or the GPL.
|
||||
*
|
||||
* --------------------------------------------------------------------
|
||||
*
|
||||
* Inquiries regarding the linux-wlan Open Source project can be
|
||||
|
@ -8,27 +8,6 @@
|
||||
*
|
||||
* linux-wlan
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the
|
||||
* terms of the GNU Public License version 2 (the "GPL"), in which
|
||||
* case the provisions of the GPL are applicable instead of the
|
||||
* above. If you wish to allow the use of your version of this file
|
||||
* only under the terms of the GPL and not to allow others to use
|
||||
* your version of this file under the MPL, indicate your decision
|
||||
* by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this
|
||||
* file under either the MPL or the GPL.
|
||||
*
|
||||
* --------------------------------------------------------------------
|
||||
*
|
||||
* Inquiries regarding the linux-wlan Open Source project can be
|
||||
|
@ -8,27 +8,6 @@
|
||||
*
|
||||
* linux-wlan
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the
|
||||
* terms of the GNU Public License version 2 (the "GPL"), in which
|
||||
* case the provisions of the GPL are applicable instead of the
|
||||
* above. If you wish to allow the use of your version of this file
|
||||
* only under the terms of the GPL and not to allow others to use
|
||||
* your version of this file under the MPL, indicate your decision
|
||||
* by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this
|
||||
* file under either the MPL or the GPL.
|
||||
*
|
||||
* --------------------------------------------------------------------
|
||||
*
|
||||
* Inquiries regarding the linux-wlan Open Source project can be
|
||||
@ -437,42 +416,22 @@ int prism2mgmt_scan_results(struct wlandevice *wlandev, void *msgp)
|
||||
if (item->supprates[count] == 0)
|
||||
break;
|
||||
|
||||
#define REQBASICRATE(N) \
|
||||
do { \
|
||||
if ((count >= (N)) && DOT11_RATE5_ISBASIC_GET( \
|
||||
item->supprates[(N) - 1])) { \
|
||||
req->basicrate ## N .data = item->supprates[(N) - 1]; \
|
||||
req->basicrate ## N .status = \
|
||||
P80211ENUM_msgitem_status_data_ok; \
|
||||
} \
|
||||
} while (0)
|
||||
for (int i = 0; i < 8; i++) {
|
||||
if (count > i &&
|
||||
DOT11_RATE5_ISBASIC_GET(item->supprates[i])) {
|
||||
req->basicrate[i].data = item->supprates[i];
|
||||
req->basicrate[i].status =
|
||||
P80211ENUM_msgitem_status_data_ok;
|
||||
}
|
||||
}
|
||||
|
||||
REQBASICRATE(1);
|
||||
REQBASICRATE(2);
|
||||
REQBASICRATE(3);
|
||||
REQBASICRATE(4);
|
||||
REQBASICRATE(5);
|
||||
REQBASICRATE(6);
|
||||
REQBASICRATE(7);
|
||||
REQBASICRATE(8);
|
||||
|
||||
#define REQSUPPRATE(N) \
|
||||
do { \
|
||||
if (count >= (N)) { \
|
||||
req->supprate ## N .data = item->supprates[(N) - 1]; \
|
||||
req->supprate ## N .status = \
|
||||
P80211ENUM_msgitem_status_data_ok; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
REQSUPPRATE(1);
|
||||
REQSUPPRATE(2);
|
||||
REQSUPPRATE(3);
|
||||
REQSUPPRATE(4);
|
||||
REQSUPPRATE(5);
|
||||
REQSUPPRATE(6);
|
||||
REQSUPPRATE(7);
|
||||
REQSUPPRATE(8);
|
||||
for (int i = 0; i < 8; i++) {
|
||||
if (count > i) {
|
||||
req->supprate[i].data = item->supprates[i];
|
||||
req->supprate[i].status =
|
||||
P80211ENUM_msgitem_status_data_ok;
|
||||
}
|
||||
}
|
||||
|
||||
/* beacon period */
|
||||
req->beaconperiod.status = P80211ENUM_msgitem_status_data_ok;
|
||||
|
@ -8,27 +8,6 @@
|
||||
*
|
||||
* linux-wlan
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the
|
||||
* terms of the GNU Public License version 2 (the "GPL"), in which
|
||||
* case the provisions of the GPL are applicable instead of the
|
||||
* above. If you wish to allow the use of your version of this file
|
||||
* only under the terms of the GPL and not to allow others to use
|
||||
* your version of this file under the MPL, indicate your decision
|
||||
* by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this
|
||||
* file under either the MPL or the GPL.
|
||||
*
|
||||
* --------------------------------------------------------------------
|
||||
*
|
||||
* Inquiries regarding the linux-wlan Open Source project can be
|
||||
|
@ -8,27 +8,6 @@
|
||||
*
|
||||
* linux-wlan
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the
|
||||
* terms of the GNU Public License version 2 (the "GPL"), in which
|
||||
* case the provisions of the GPL are applicable instead of the
|
||||
* above. If you wish to allow the use of your version of this file
|
||||
* only under the terms of the GPL and not to allow others to use
|
||||
* your version of this file under the MPL, indicate your decision
|
||||
* by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this
|
||||
* file under either the MPL or the GPL.
|
||||
*
|
||||
* --------------------------------------------------------------------
|
||||
*
|
||||
* Inquiries regarding the linux-wlan Open Source project can be
|
||||
|
@ -8,27 +8,6 @@
|
||||
*
|
||||
* linux-wlan
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the
|
||||
* terms of the GNU Public License version 2 (the "GPL"), in which
|
||||
* case the provisions of the GPL are applicable instead of the
|
||||
* above. If you wish to allow the use of your version of this file
|
||||
* only under the terms of the GPL and not to allow others to use
|
||||
* your version of this file under the MPL, indicate your decision
|
||||
* by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this
|
||||
* file under either the MPL or the GPL.
|
||||
*
|
||||
* --------------------------------------------------------------------
|
||||
*
|
||||
* Inquiries regarding the linux-wlan Open Source project can be
|
||||
|
Loading…
x
Reference in New Issue
Block a user