mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-27 22:24:11 +08:00
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
|
||||
|
@ -73,11 +73,11 @@ bool rtl92e_config_rf(struct net_device *dev)
|
||||
break;
|
||||
case RF90_PATH_B:
|
||||
u4RegValue = rtl92e_get_bb_reg(dev, pPhyReg->rfintfs,
|
||||
bRFSI_RFENV<<16);
|
||||
bRFSI_RFENV << 16);
|
||||
break;
|
||||
}
|
||||
|
||||
rtl92e_set_bb_reg(dev, pPhyReg->rfintfe, bRFSI_RFENV<<16, 0x1);
|
||||
rtl92e_set_bb_reg(dev, pPhyReg->rfintfe, bRFSI_RFENV << 16, 0x1);
|
||||
|
||||
rtl92e_set_bb_reg(dev, pPhyReg->rfintfo, bRFSI_RFENV, 0x1);
|
||||
|
||||
@ -117,7 +117,7 @@ bool rtl92e_config_rf(struct net_device *dev)
|
||||
break;
|
||||
case RF90_PATH_B:
|
||||
rtl92e_set_bb_reg(dev, pPhyReg->rfintfs,
|
||||
bRFSI_RFENV<<16, u4RegValue);
|
||||
bRFSI_RFENV << 16, u4RegValue);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -36,8 +36,8 @@ void rtl92e_start_beacon(struct net_device *dev)
|
||||
|
||||
rtl92e_writeb(dev, BCN_ERR_THRESH, 100);
|
||||
|
||||
BcnTimeCfg |= BcnCW<<BCN_TCFG_CW_SHIFT;
|
||||
BcnTimeCfg |= BcnIFS<<BCN_TCFG_IFS;
|
||||
BcnTimeCfg |= BcnCW << BCN_TCFG_CW_SHIFT;
|
||||
BcnTimeCfg |= BcnIFS << BCN_TCFG_IFS;
|
||||
rtl92e_writew(dev, BCN_TCFG, BcnTimeCfg);
|
||||
rtl92e_irq_enable(dev);
|
||||
}
|
||||
@ -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);
|
||||
|
||||
@ -256,7 +250,7 @@ void rtl92e_set_reg(struct net_device *dev, u8 variable, u8 *val)
|
||||
|
||||
case HW_VAR_SIFS:
|
||||
rtl92e_writeb(dev, SIFS, val[0]);
|
||||
rtl92e_writeb(dev, SIFS+1, val[0]);
|
||||
rtl92e_writeb(dev, SIFS + 1, val[0]);
|
||||
break;
|
||||
|
||||
case HW_VAR_RF_TIMING:
|
||||
@ -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)
|
||||
@ -299,12 +292,12 @@ static void _rtl92e_read_eeprom_info(struct net_device *dev)
|
||||
(EEPROM_Customer_ID >> 1)) >> 8;
|
||||
priv->eeprom_customer_id = usValue & 0xff;
|
||||
usValue = rtl92e_eeprom_read(dev,
|
||||
EEPROM_ICVersion_ChannelPlan>>1);
|
||||
priv->eeprom_chnl_plan = usValue&0xff;
|
||||
IC_Version = (usValue & 0xff00)>>8;
|
||||
EEPROM_ICVersion_ChannelPlan >> 1);
|
||||
priv->eeprom_chnl_plan = usValue & 0xff;
|
||||
IC_Version = (usValue & 0xff00) >> 8;
|
||||
|
||||
ICVer8192 = IC_Version & 0xf;
|
||||
ICVer8256 = (IC_Version & 0xf0)>>4;
|
||||
ICVer8256 = (IC_Version & 0xf0) >> 4;
|
||||
if (ICVer8192 == 0x2) {
|
||||
if (ICVer8256 == 0x5)
|
||||
priv->card_8192_version = VERSION_8190_BE;
|
||||
@ -354,7 +347,7 @@ static void _rtl92e_read_eeprom_info(struct net_device *dev)
|
||||
|
||||
if (!priv->autoload_fail_flag)
|
||||
priv->eeprom_thermal_meter = ((rtl92e_eeprom_read(dev,
|
||||
(EEPROM_ThermalMeter>>1))) &
|
||||
(EEPROM_ThermalMeter >> 1))) &
|
||||
0xff00) >> 8;
|
||||
else
|
||||
priv->eeprom_thermal_meter = EEPROM_Default_ThermalMeter;
|
||||
@ -596,7 +589,7 @@ start:
|
||||
RSVD_FW_QUEUE_PAGE_MGNT_SHIFT);
|
||||
rtl92e_writel(dev, RQPN3, APPLIED_RESERVED_QUEUE_IN_FW |
|
||||
NUM_OF_PAGE_IN_FW_QUEUE_BCN <<
|
||||
RSVD_FW_QUEUE_PAGE_BCN_SHIFT|
|
||||
RSVD_FW_QUEUE_PAGE_BCN_SHIFT |
|
||||
NUM_OF_PAGE_IN_FW_QUEUE_PUB <<
|
||||
RSVD_FW_QUEUE_PAGE_PUB_SHIFT);
|
||||
|
||||
@ -605,7 +598,7 @@ start:
|
||||
ulRegRead = (0xFFF00000 & rtl92e_readl(dev, RRSR)) |
|
||||
RATE_ALL_OFDM_AG | RATE_ALL_CCK;
|
||||
rtl92e_writel(dev, RRSR, ulRegRead);
|
||||
rtl92e_writel(dev, RATR0+4*7, (RATE_ALL_OFDM_AG | RATE_ALL_CCK));
|
||||
rtl92e_writel(dev, RATR0 + 4 * 7, (RATE_ALL_OFDM_AG | RATE_ALL_CCK));
|
||||
|
||||
rtl92e_writeb(dev, ACK_TIMEOUT, 0x30);
|
||||
|
||||
@ -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;
|
||||
@ -738,8 +730,8 @@ static void _rtl92e_net_update(struct net_device *dev)
|
||||
rtl92e_writew(dev, BCN_DRV_EARLY_INT, 10);
|
||||
rtl92e_writeb(dev, BCN_ERR_THRESH, 100);
|
||||
|
||||
BcnTimeCfg |= (BcnCW<<BCN_TCFG_CW_SHIFT);
|
||||
BcnTimeCfg |= BcnIFS<<BCN_TCFG_IFS;
|
||||
BcnTimeCfg |= (BcnCW << BCN_TCFG_CW_SHIFT);
|
||||
BcnTimeCfg |= BcnIFS << BCN_TCFG_IFS;
|
||||
|
||||
rtl92e_writew(dev, BCN_TCFG, BcnTimeCfg);
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
@ -883,7 +876,7 @@ static u8 _rtl92e_rate_mgn_to_hw(u8 rate)
|
||||
case MGN_MCS15:
|
||||
ret = DESC90_RATEMCS15;
|
||||
break;
|
||||
case (0x80|0x20):
|
||||
case (0x80 | 0x20):
|
||||
ret = DESC90_RATEMCS32;
|
||||
break;
|
||||
default:
|
||||
@ -973,7 +966,7 @@ void rtl92e_fill_tx_desc(struct net_device *dev, struct tx_desc *pdesc,
|
||||
pTxFwInfo->RtsEnable = (cb_desc->bRTSEnable) ? 1 : 0;
|
||||
pTxFwInfo->CtsEnable = (cb_desc->bCTSEnable) ? 1 : 0;
|
||||
pTxFwInfo->RtsSTBC = (cb_desc->bRTSSTBC) ? 1 : 0;
|
||||
pTxFwInfo->RtsHT = (cb_desc->rts_rate&0x80) ? 1 : 0;
|
||||
pTxFwInfo->RtsHT = (cb_desc->rts_rate & 0x80) ? 1 : 0;
|
||||
pTxFwInfo->RtsRate = _rtl92e_rate_mgn_to_hw(cb_desc->rts_rate);
|
||||
pTxFwInfo->RtsBandwidth = 0;
|
||||
pTxFwInfo->RtsSubcarrier = cb_desc->RTSSC;
|
||||
@ -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);
|
||||
@ -1345,7 +1335,7 @@ static void _rtl92e_query_rxphystatus(
|
||||
else if (pcck_buf->sq_rpt < 20)
|
||||
sq = 100;
|
||||
else
|
||||
sq = ((64-sq) * 100) / 44;
|
||||
sq = ((64 - sq) * 100) / 44;
|
||||
}
|
||||
pstats->SignalQuality = sq;
|
||||
precord_stats->SignalQuality = sq;
|
||||
@ -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);
|
||||
|
||||
@ -1452,7 +1441,7 @@ static void _rtl92e_process_phyinfo(struct r8192_priv *priv, u8 *buffer,
|
||||
if (slide_rssi_index >= PHY_RSSI_SLID_WIN_MAX)
|
||||
slide_rssi_index = 0;
|
||||
|
||||
tmp_val = priv->stats.slide_rssi_total/slide_rssi_statistics;
|
||||
tmp_val = priv->stats.slide_rssi_total / slide_rssi_statistics;
|
||||
priv->stats.signal_strength = rtl92e_translate_to_dbm(priv, tmp_val);
|
||||
curr_st->rssi = priv->stats.signal_strength;
|
||||
if (!prev_st->bPacketMatchBSSID) {
|
||||
@ -1482,14 +1471,13 @@ static void _rtl92e_process_phyinfo(struct r8192_priv *priv, u8 *buffer,
|
||||
} else {
|
||||
priv->stats.rx_rssi_percentage[rfpath] =
|
||||
((priv->stats.rx_rssi_percentage[rfpath] *
|
||||
(RX_SMOOTH-1)) +
|
||||
(RX_SMOOTH - 1)) +
|
||||
(prev_st->RxMIMOSignalStrength[rfpath])) /
|
||||
(RX_SMOOTH);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (prev_st->bPacketBeacon) {
|
||||
if (slide_beacon_adc_pwdb_statistics++ >=
|
||||
PHY_Beacon_RSSI_SLID_WIN_MAX) {
|
||||
@ -1517,14 +1505,14 @@ static void _rtl92e_process_phyinfo(struct r8192_priv *priv, u8 *buffer,
|
||||
if (prev_st->RxPWDBAll > (u32)priv->undecorated_smoothed_pwdb) {
|
||||
priv->undecorated_smoothed_pwdb =
|
||||
(((priv->undecorated_smoothed_pwdb) *
|
||||
(RX_SMOOTH-1)) +
|
||||
(RX_SMOOTH - 1)) +
|
||||
(prev_st->RxPWDBAll)) / (RX_SMOOTH);
|
||||
priv->undecorated_smoothed_pwdb =
|
||||
priv->undecorated_smoothed_pwdb + 1;
|
||||
} else {
|
||||
priv->undecorated_smoothed_pwdb =
|
||||
(((priv->undecorated_smoothed_pwdb) *
|
||||
(RX_SMOOTH-1)) +
|
||||
(RX_SMOOTH - 1)) +
|
||||
(prev_st->RxPWDBAll)) / (RX_SMOOTH);
|
||||
}
|
||||
rtl92e_update_rx_statistics(priv, prev_st);
|
||||
@ -1753,7 +1741,7 @@ bool rtl92e_get_rx_stats(struct net_device *dev, struct rtllib_rx_stats *stats,
|
||||
(pDrvInfo->FirstAGGR == 1);
|
||||
|
||||
stats->TimeStampLow = pDrvInfo->TSFL;
|
||||
stats->TimeStampHigh = rtl92e_readl(dev, TSFR+4);
|
||||
stats->TimeStampHigh = rtl92e_readl(dev, TSFR + 4);
|
||||
|
||||
rtl92e_update_rx_pkt_timestamp(dev, stats);
|
||||
|
||||
@ -1766,7 +1754,7 @@ bool rtl92e_get_rx_stats(struct net_device *dev, struct rtllib_rx_stats *stats,
|
||||
skb_trim(skb, skb->len - S_CRC_LEN);
|
||||
|
||||
|
||||
stats->packetlength = stats->Length-4;
|
||||
stats->packetlength = stats->Length - 4;
|
||||
stats->fraglength = stats->packetlength;
|
||||
stats->fragoffset = 0;
|
||||
stats->ntotalfrag = 1;
|
||||
@ -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
|
||||
@ -1857,7 +1840,7 @@ void rtl92e_update_ratr_table(struct net_device *dev)
|
||||
else if (!ieee->ht_info->cur_tx_bw40mhz &&
|
||||
ieee->ht_info->bCurShortGI20MHz)
|
||||
ratr_value |= 0x80000000;
|
||||
rtl92e_writel(dev, RATR0+rate_index*4, ratr_value);
|
||||
rtl92e_writel(dev, RATR0 + rate_index * 4, ratr_value);
|
||||
rtl92e_writeb(dev, UFWP, 1);
|
||||
}
|
||||
|
||||
@ -1881,7 +1864,7 @@ rtl92e_init_variables(struct net_device *dev)
|
||||
RCR_AMF | RCR_ADF |
|
||||
RCR_AICV |
|
||||
RCR_AB | RCR_AM | RCR_APM |
|
||||
RCR_AAP | ((u32)7<<RCR_MXDMA_OFFSET) |
|
||||
RCR_AAP | ((u32)7 << RCR_MXDMA_OFFSET) |
|
||||
((u32)7 << RCR_FIFO_OFFSET) | RCR_ONLYERLPKT;
|
||||
|
||||
priv->irq_mask[0] = (u32)(IMR_ROK | IMR_VODOK | IMR_VIDOK |
|
||||
@ -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);
|
||||
@ -1976,7 +1957,7 @@ bool rtl92e_is_rx_stuck(struct net_device *dev)
|
||||
}
|
||||
|
||||
|
||||
SlotIndex = (priv->silent_reset_rx_slot_index++)%SilentResetRxSoltNum;
|
||||
SlotIndex = (priv->silent_reset_rx_slot_index++) % SilentResetRxSoltNum;
|
||||
|
||||
if (priv->rx_ctr == RegRxCounter) {
|
||||
priv->silent_reset_rx_stuck_event[SlotIndex] = 1;
|
||||
@ -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;
|
||||
}
|
||||
@ -2021,7 +2000,7 @@ bool rtl92e_get_nmode_support_by_sec(struct net_device *dev)
|
||||
struct rtllib_device *ieee = priv->rtllib;
|
||||
|
||||
if (ieee->rtllib_ap_sec_type &&
|
||||
(ieee->rtllib_ap_sec_type(priv->rtllib)&(SEC_ALG_WEP |
|
||||
(ieee->rtllib_ap_sec_type(priv->rtllib) & (SEC_ALG_WEP |
|
||||
SEC_ALG_TKIP))) {
|
||||
return false;
|
||||
} else {
|
||||
|
@ -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,8 +39,9 @@ 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,8 +176,9 @@ 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
@ -267,12 +264,10 @@ void rtl92e_config_mac(struct net_device *dev)
|
||||
}
|
||||
for (i = 0; i < dwArrayLen; i += 3) {
|
||||
if (pdwArray[i] == 0x318)
|
||||
pdwArray[i+2] = 0x00000800;
|
||||
rtl92e_set_bb_reg(dev, pdwArray[i], pdwArray[i+1],
|
||||
pdwArray[i+2]);
|
||||
pdwArray[i + 2] = 0x00000800;
|
||||
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)
|
||||
@ -291,13 +286,13 @@ static void _rtl92e_phy_config_bb(struct net_device *dev, u8 ConfigType)
|
||||
for (i = 0; i < PHY_REGArrayLen; i += 2) {
|
||||
rtl92e_set_bb_reg(dev, Rtl819XPHY_REGArray_Table[i],
|
||||
bMaskDWord,
|
||||
Rtl819XPHY_REGArray_Table[i+1]);
|
||||
Rtl819XPHY_REGArray_Table[i + 1]);
|
||||
}
|
||||
} else if (ConfigType == BB_CONFIG_AGC_TAB) {
|
||||
for (i = 0; i < AGCTAB_ArrayLen; i += 2) {
|
||||
rtl92e_set_bb_reg(dev, Rtl819XAGCTAB_Array_Table[i],
|
||||
bMaskDWord,
|
||||
Rtl819XAGCTAB_Array_Table[i+1]);
|
||||
Rtl819XAGCTAB_Array_Table[i + 1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
@ -389,10 +383,10 @@ static bool _rtl92e_bb_config_para_file(struct net_device *dev)
|
||||
u32 dwRegValue = 0;
|
||||
|
||||
bRegValue = rtl92e_readb(dev, BB_GLOBAL_RESET);
|
||||
rtl92e_writeb(dev, BB_GLOBAL_RESET, (bRegValue|BB_GLOBAL_RESET_BIT));
|
||||
rtl92e_writeb(dev, BB_GLOBAL_RESET, (bRegValue | BB_GLOBAL_RESET_BIT));
|
||||
|
||||
dwRegValue = rtl92e_readl(dev, CPU_GEN);
|
||||
rtl92e_writel(dev, CPU_GEN, (dwRegValue&(~CPU_GEN_BB_RST)));
|
||||
rtl92e_writel(dev, CPU_GEN, (dwRegValue & (~CPU_GEN_BB_RST)));
|
||||
|
||||
for (eCheckItem = (enum hw90_block)HW90_BLOCK_PHY0;
|
||||
eCheckItem <= HW90_BLOCK_PHY1; eCheckItem++) {
|
||||
@ -402,19 +396,18 @@ static bool _rtl92e_bb_config_para_file(struct net_device *dev)
|
||||
if (!rtStatus)
|
||||
return rtStatus;
|
||||
}
|
||||
rtl92e_set_bb_reg(dev, rFPGA0_RFMOD, bCCKEn|bOFDMEn, 0x0);
|
||||
rtl92e_set_bb_reg(dev, rFPGA0_RFMOD, bCCKEn | bOFDMEn, 0x0);
|
||||
_rtl92e_phy_config_bb(dev, BB_CONFIG_PHY_REG);
|
||||
|
||||
dwRegValue = rtl92e_readl(dev, CPU_GEN);
|
||||
rtl92e_writel(dev, CPU_GEN, (dwRegValue|CPU_GEN_BB_RST));
|
||||
rtl92e_writel(dev, CPU_GEN, (dwRegValue | CPU_GEN_BB_RST));
|
||||
|
||||
_rtl92e_phy_config_bb(dev, BB_CONFIG_AGC_TAB);
|
||||
|
||||
if (priv->ic_cut > VERSION_8190_BD) {
|
||||
dwRegValue = 0x0;
|
||||
rtl92e_set_bb_reg(dev, rFPGA0_TxGainStage,
|
||||
(bXBTxAGC|bXCTxAGC|bXDTxAGC), dwRegValue);
|
||||
|
||||
(bXBTxAGC | bXCTxAGC | bXDTxAGC), dwRegValue);
|
||||
|
||||
dwRegValue = priv->crystal_cap;
|
||||
rtl92e_set_bb_reg(dev, rFPGA0_AnalogParameter1, bXtalCap92x,
|
||||
@ -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)
|
||||
@ -645,7 +634,7 @@ static u8 _rtl92e_phy_switch_channel_step(struct net_device *dev, u8 channel,
|
||||
rtl92e_set_rf_reg(dev,
|
||||
(enum rf90_radio_path)eRFPath,
|
||||
CurrentCmd->Para1, bMask12Bits,
|
||||
CurrentCmd->Para2<<7);
|
||||
CurrentCmd->Para2 << 7);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@ -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;
|
||||
|
||||
@ -880,7 +866,7 @@ static void _rtl92e_set_bw_mode_work_item(struct net_device *dev)
|
||||
}
|
||||
|
||||
rtl92e_set_bb_reg(dev, rCCK0_System, bCCKSideBand,
|
||||
(priv->n_cur_40mhz_prime_sc>>1));
|
||||
(priv->n_cur_40mhz_prime_sc >> 1));
|
||||
rtl92e_set_bb_reg(dev, rOFDM1_LSTF, 0xC00,
|
||||
priv->n_cur_40mhz_prime_sc);
|
||||
|
||||
@ -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 &&
|
||||
@ -353,7 +347,7 @@ static void _rtl92e_dm_check_rate_adaptive(struct net_device *dev)
|
||||
|
||||
if (pra->ping_rssi_enable) {
|
||||
if (priv->undecorated_smoothed_pwdb <
|
||||
(long)(pra->ping_rssi_thresh_for_ra+5)) {
|
||||
(long)(pra->ping_rssi_thresh_for_ra + 5)) {
|
||||
if ((priv->undecorated_smoothed_pwdb <
|
||||
(long)pra->ping_rssi_thresh_for_ra) ||
|
||||
ping_rssi_state) {
|
||||
@ -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;
|
||||
@ -562,7 +555,7 @@ static void _rtl92e_dm_tx_power_tracking_callback_tssi(struct net_device *dev)
|
||||
for (k = 0; k < 5; k++) {
|
||||
if (k != 4)
|
||||
tmp_report[k] = rtl92e_readb(dev,
|
||||
Tssi_Report_Value1+k);
|
||||
Tssi_Report_Value1 + k);
|
||||
else
|
||||
tmp_report[k] = rtl92e_readb(dev,
|
||||
Tssi_Report_Value2);
|
||||
@ -629,8 +622,9 @@ 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 ||
|
||||
@ -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)
|
||||
@ -861,7 +849,7 @@ static void _rtl92e_dm_cck_tx_power_adjust_tssi(struct net_device *dev,
|
||||
rtl92e_set_bb_reg(dev, rCCK0_TxFilter1, bMaskHWord, TempVal);
|
||||
TempVal = (u32)((dm_cck_tx_bb_gain[attenuation][2]) +
|
||||
(dm_cck_tx_bb_gain[attenuation][3] << 8) +
|
||||
(dm_cck_tx_bb_gain[attenuation][4] << 16)+
|
||||
(dm_cck_tx_bb_gain[attenuation][4] << 16) +
|
||||
(dm_cck_tx_bb_gain[attenuation][5] << 24));
|
||||
rtl92e_set_bb_reg(dev, rCCK0_TxFilter2, bMaskDWord, TempVal);
|
||||
TempVal = (u32)(dm_cck_tx_bb_gain[attenuation][6] +
|
||||
@ -875,7 +863,7 @@ static void _rtl92e_dm_cck_tx_power_adjust_tssi(struct net_device *dev,
|
||||
rtl92e_set_bb_reg(dev, rCCK0_TxFilter1, bMaskHWord, TempVal);
|
||||
TempVal = (u32)((dm_cck_tx_bb_gain_ch14[attenuation][2]) +
|
||||
(dm_cck_tx_bb_gain_ch14[attenuation][3] << 8) +
|
||||
(dm_cck_tx_bb_gain_ch14[attenuation][4] << 16)+
|
||||
(dm_cck_tx_bb_gain_ch14[attenuation][4] << 16) +
|
||||
(dm_cck_tx_bb_gain_ch14[attenuation][5] << 24));
|
||||
rtl92e_set_bb_reg(dev, rCCK0_TxFilter2, bMaskDWord, TempVal);
|
||||
TempVal = (u32)((dm_cck_tx_bb_gain_ch14[attenuation][6]) +
|
||||
@ -898,7 +886,7 @@ static void _rtl92e_dm_cck_tx_power_adjust_thermal_meter(struct net_device *dev,
|
||||
rtl92e_set_bb_reg(dev, rCCK0_TxFilter1, bMaskHWord, TempVal);
|
||||
TempVal = CCKSwingTable_Ch1_Ch13[priv->cck_index][2] +
|
||||
(CCKSwingTable_Ch1_Ch13[priv->cck_index][3] << 8) +
|
||||
(CCKSwingTable_Ch1_Ch13[priv->cck_index][4] << 16)+
|
||||
(CCKSwingTable_Ch1_Ch13[priv->cck_index][4] << 16) +
|
||||
(CCKSwingTable_Ch1_Ch13[priv->cck_index][5] << 24);
|
||||
rtl92e_set_bb_reg(dev, rCCK0_TxFilter2, bMaskDWord, TempVal);
|
||||
TempVal = CCKSwingTable_Ch1_Ch13[priv->cck_index][6] +
|
||||
@ -912,11 +900,11 @@ static void _rtl92e_dm_cck_tx_power_adjust_thermal_meter(struct net_device *dev,
|
||||
rtl92e_set_bb_reg(dev, rCCK0_TxFilter1, bMaskHWord, TempVal);
|
||||
TempVal = CCKSwingTable_Ch14[priv->cck_index][2] +
|
||||
(CCKSwingTable_Ch14[priv->cck_index][3] << 8) +
|
||||
(CCKSwingTable_Ch14[priv->cck_index][4] << 16)+
|
||||
(CCKSwingTable_Ch14[priv->cck_index][4] << 16) +
|
||||
(CCKSwingTable_Ch14[priv->cck_index][5] << 24);
|
||||
rtl92e_set_bb_reg(dev, rCCK0_TxFilter2, bMaskDWord, TempVal);
|
||||
TempVal = CCKSwingTable_Ch14[priv->cck_index][6] +
|
||||
(CCKSwingTable_Ch14[priv->cck_index][7]<<8);
|
||||
(CCKSwingTable_Ch14[priv->cck_index][7] << 8);
|
||||
|
||||
rtl92e_set_bb_reg(dev, rCCK0_DebugPort, bMaskLWord, TempVal);
|
||||
}
|
||||
@ -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) &&
|
||||
@ -1146,7 +1129,7 @@ static void _rtl92e_dm_ctrl_initgain_byrssi_false_alarm(struct net_device *dev)
|
||||
rtl92e_writeb(dev, rOFDM0_XDAGCCore1, 0x17);
|
||||
|
||||
if (priv->current_chnl_bw != HT_CHANNEL_WIDTH_20)
|
||||
rtl92e_writeb(dev, (rOFDM0_XATxAFE+3), 0x00);
|
||||
rtl92e_writeb(dev, (rOFDM0_XATxAFE + 3), 0x00);
|
||||
else
|
||||
rtl92e_writeb(dev, rOFDM0_RxDetector1, 0x42);
|
||||
|
||||
@ -1183,7 +1166,7 @@ static void _rtl92e_dm_ctrl_initgain_byrssi_false_alarm(struct net_device *dev)
|
||||
}
|
||||
|
||||
if (priv->current_chnl_bw != HT_CHANNEL_WIDTH_20)
|
||||
rtl92e_writeb(dev, (rOFDM0_XATxAFE+3), 0x20);
|
||||
rtl92e_writeb(dev, (rOFDM0_XATxAFE + 3), 0x20);
|
||||
else
|
||||
rtl92e_writeb(dev, rOFDM0_RxDetector1, 0x44);
|
||||
|
||||
@ -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);
|
||||
@ -1214,7 +1196,7 @@ static void _rtl92e_dm_ctrl_initgain_byrssi_highpwr(struct net_device *dev)
|
||||
dm_digtable.dig_highpwr_state = DM_STA_DIG_ON;
|
||||
|
||||
if (priv->current_chnl_bw != HT_CHANNEL_WIDTH_20)
|
||||
rtl92e_writeb(dev, (rOFDM0_XATxAFE+3), 0x10);
|
||||
rtl92e_writeb(dev, (rOFDM0_XATxAFE + 3), 0x10);
|
||||
else
|
||||
rtl92e_writeb(dev, rOFDM0_RxDetector1, 0x43);
|
||||
} else {
|
||||
@ -1228,7 +1210,7 @@ static void _rtl92e_dm_ctrl_initgain_byrssi_highpwr(struct net_device *dev)
|
||||
(priv->undecorated_smoothed_pwdb >=
|
||||
dm_digtable.rssi_high_thresh)) {
|
||||
if (priv->current_chnl_bw != HT_CHANNEL_WIDTH_20)
|
||||
rtl92e_writeb(dev, (rOFDM0_XATxAFE+3), 0x20);
|
||||
rtl92e_writeb(dev, (rOFDM0_XATxAFE + 3), 0x20);
|
||||
else
|
||||
rtl92e_writeb(dev, rOFDM0_RxDetector1, 0x44);
|
||||
}
|
||||
@ -1339,18 +1321,18 @@ static void _rtl92e_dm_pd_th(struct net_device *dev)
|
||||
(initialized <= 3) || force_write) {
|
||||
if (dm_digtable.curpd_thstate == DIG_PD_AT_LOW_POWER) {
|
||||
if (priv->current_chnl_bw != HT_CHANNEL_WIDTH_20)
|
||||
rtl92e_writeb(dev, (rOFDM0_XATxAFE+3), 0x00);
|
||||
rtl92e_writeb(dev, (rOFDM0_XATxAFE + 3), 0x00);
|
||||
else
|
||||
rtl92e_writeb(dev, rOFDM0_RxDetector1, 0x42);
|
||||
} else if (dm_digtable.curpd_thstate ==
|
||||
DIG_PD_AT_NORMAL_POWER) {
|
||||
if (priv->current_chnl_bw != HT_CHANNEL_WIDTH_20)
|
||||
rtl92e_writeb(dev, (rOFDM0_XATxAFE+3), 0x20);
|
||||
rtl92e_writeb(dev, (rOFDM0_XATxAFE + 3), 0x20);
|
||||
else
|
||||
rtl92e_writeb(dev, rOFDM0_RxDetector1, 0x44);
|
||||
} else if (dm_digtable.curpd_thstate == DIG_PD_AT_HIGH_POWER) {
|
||||
if (priv->current_chnl_bw != HT_CHANNEL_WIDTH_20)
|
||||
rtl92e_writeb(dev, (rOFDM0_XATxAFE+3), 0x10);
|
||||
rtl92e_writeb(dev, (rOFDM0_XATxAFE + 3), 0x10);
|
||||
else
|
||||
rtl92e_writeb(dev, rOFDM0_RxDetector1, 0x43);
|
||||
}
|
||||
@ -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;
|
||||
@ -1435,7 +1416,7 @@ static void _rtl92e_dm_check_edca_turbo(struct net_device *dev)
|
||||
curTxOkCnt = priv->stats.txbytesunicast - lastTxOkCnt;
|
||||
curRxOkCnt = priv->stats.rxbytesunicast - lastRxOkCnt;
|
||||
if (ht_info->iot_action & HT_IOT_ACT_EDCA_BIAS_ON_RX) {
|
||||
if (curTxOkCnt > 4*curRxOkCnt) {
|
||||
if (curTxOkCnt > 4 * curRxOkCnt) {
|
||||
if (priv->bis_cur_rdlstate ||
|
||||
!priv->bcurrent_turbo_EDCA) {
|
||||
rtl92e_writel(dev, EDCAPARA_BE,
|
||||
@ -1456,7 +1437,7 @@ static void _rtl92e_dm_check_edca_turbo(struct net_device *dev)
|
||||
}
|
||||
priv->bcurrent_turbo_EDCA = true;
|
||||
} else {
|
||||
if (curRxOkCnt > 4*curTxOkCnt) {
|
||||
if (curRxOkCnt > 4 * curTxOkCnt) {
|
||||
if (!priv->bis_cur_rdlstate ||
|
||||
!priv->bcurrent_turbo_EDCA) {
|
||||
if (priv->rtllib->mode == WIRELESS_MODE_G)
|
||||
@ -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;
|
||||
@ -1519,7 +1498,7 @@ static void _rtl92e_dm_cts_to_self(struct net_device *dev)
|
||||
if (ht_info->IOTPeer == HT_IOT_PEER_BROADCOM) {
|
||||
curTxOkCnt = priv->stats.txbytesunicast - lastTxOkCnt;
|
||||
curRxOkCnt = priv->stats.rxbytesunicast - lastRxOkCnt;
|
||||
if (curRxOkCnt > 4*curTxOkCnt)
|
||||
if (curRxOkCnt > 4 * curTxOkCnt)
|
||||
ht_info->iot_action &= ~HT_IOT_ACT_FORCED_CTS2SELF;
|
||||
else
|
||||
ht_info->iot_action |= HT_IOT_ACT_FORCED_CTS2SELF;
|
||||
@ -1546,7 +1525,7 @@ static void _rtl92e_dm_check_rf_ctrl_gpio(void *data)
|
||||
|
||||
tmp1byte = rtl92e_readb(dev, GPI);
|
||||
|
||||
rf_power_state_to_set = (tmp1byte&BIT1) ? rf_on : rf_off;
|
||||
rf_power_state_to_set = (tmp1byte & BIT1) ? rf_on : rf_off;
|
||||
|
||||
if (priv->hw_radio_off && (rf_power_state_to_set == rf_on)) {
|
||||
netdev_info(dev, "gpiochangeRF - HW Radio ON\n");
|
||||
@ -1576,7 +1555,7 @@ void rtl92e_dm_rf_pathcheck_wq(void *data)
|
||||
rfpath = rtl92e_readb(dev, 0xc04);
|
||||
|
||||
for (i = 0; i < RF90_PATH_MAX; i++) {
|
||||
if (rfpath & (0x01<<i))
|
||||
if (rfpath & (0x01 << i))
|
||||
priv->brfpath_rxenable[i] = true;
|
||||
else
|
||||
priv->brfpath_rxenable[i] = false;
|
||||
@ -1627,7 +1606,7 @@ static void _rtl92e_dm_rx_path_sel_byrssi(struct net_device *dev)
|
||||
u8 update_cck_rx_path;
|
||||
|
||||
if (!cck_Rx_Path_initialized) {
|
||||
dm_rx_path_sel_table.cck_rx_path = (rtl92e_readb(dev, 0xa07)&0xf);
|
||||
dm_rx_path_sel_table.cck_rx_path = (rtl92e_readb(dev, 0xa07) & 0xf);
|
||||
cck_Rx_Path_initialized = 1;
|
||||
}
|
||||
|
||||
@ -1746,7 +1725,6 @@ static void _rtl92e_dm_rx_path_sel_byrssi(struct net_device *dev)
|
||||
tmp_cck_min_pwdb = cur_cck_pwdb;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1763,11 +1741,11 @@ static void _rtl92e_dm_rx_path_sel_byrssi(struct net_device *dev)
|
||||
if ((tmp_max_rssi - tmp_min_rssi) >=
|
||||
dm_rx_path_sel_table.diff_th) {
|
||||
dm_rx_path_sel_table.rf_enable_rssi_th[min_rssi_index] =
|
||||
tmp_max_rssi+5;
|
||||
tmp_max_rssi + 5;
|
||||
rtl92e_set_bb_reg(dev, rOFDM0_TRxPathEnable,
|
||||
0x1<<min_rssi_index, 0x0);
|
||||
0x1 << min_rssi_index, 0x0);
|
||||
rtl92e_set_bb_reg(dev, rOFDM1_TRxPathEnable,
|
||||
0x1<<min_rssi_index, 0x0);
|
||||
0x1 << min_rssi_index, 0x0);
|
||||
disabled_rf_cnt++;
|
||||
}
|
||||
if (dm_rx_path_sel_table.cck_method == CCK_Rx_Version_1) {
|
||||
@ -1779,7 +1757,7 @@ static void _rtl92e_dm_rx_path_sel_byrssi(struct net_device *dev)
|
||||
}
|
||||
|
||||
if (update_cck_rx_path) {
|
||||
dm_rx_path_sel_table.cck_rx_path = (cck_default_Rx<<2) |
|
||||
dm_rx_path_sel_table.cck_rx_path = (cck_default_Rx << 2) |
|
||||
(cck_optional_Rx);
|
||||
rtl92e_set_bb_reg(dev, rCCK0_AFESetting, 0x0f000000,
|
||||
dm_rx_path_sel_table.cck_rx_path);
|
||||
@ -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 !=
|
||||
@ -2084,7 +2057,7 @@ static void _rtl92e_dm_check_fsync(struct net_device *dev)
|
||||
RegC38_NonFsync_Other_AP;
|
||||
}
|
||||
} else if (priv->undecorated_smoothed_pwdb >=
|
||||
(RegC38_TH+5)) {
|
||||
(RegC38_TH + 5)) {
|
||||
if (reg_c38_State) {
|
||||
rtl92e_writeb(dev,
|
||||
rOFDM0_RxDetector3,
|
||||
@ -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,14 +217,11 @@ 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++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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,72 +91,54 @@ 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;
|
||||
|
||||
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 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;
|
||||
u8 reg_rt2rt_aggregation;
|
||||
u8 RT2RT_HT_Mode;
|
||||
u8 RT2RT_HT_Mode;
|
||||
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;
|
||||
u8 rx_reorder_pending_time;
|
||||
u16 rx_reorder_drop_counter;
|
||||
u8 IOTPeer;
|
||||
u8 IOTPeer;
|
||||
u32 iot_action;
|
||||
u8 iot_ra_func;
|
||||
} __packed;
|
||||
|
@ -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,
|
||||
enum ht_channel_width bandwidth,
|
||||
enum ht_extchnl_offset Offset);
|
||||
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,11 +2301,7 @@ 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->flags |= NETWORK_HAS_CCK;
|
||||
|
||||
network->wpa_ie_len = 0;
|
||||
network->rsn_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;
|
||||
if (network->flags & NETWORK_HAS_CCK)
|
||||
network->mode |= IEEE_B;
|
||||
}
|
||||
|
||||
if (network->flags & NETWORK_HAS_OFDM)
|
||||
network->mode |= WIRELESS_MODE_G;
|
||||
if (network->flags & NETWORK_HAS_CCK)
|
||||
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;
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -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,10 +206,9 @@ 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;
|
||||
ieee->rate = target_rate / 100000;
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(rtllib_wx_set_rate);
|
||||
@ -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)
|
||||
|
@ -16,9 +16,9 @@
|
||||
/* if mode == 0, then the sta is allowed once the addr is hit. */
|
||||
/* if mode == 1, then the sta is rejected once the addr is non-hit. */
|
||||
struct rtw_wlan_acl_node {
|
||||
struct list_head list;
|
||||
u8 addr[ETH_ALEN];
|
||||
u8 valid;
|
||||
struct list_head list;
|
||||
u8 addr[ETH_ALEN];
|
||||
u8 valid;
|
||||
};
|
||||
|
||||
/* mode = 0, disable */
|
||||
@ -340,19 +340,19 @@ struct sta_priv {
|
||||
|
||||
static inline u32 wifi_mac_hash(u8 *mac)
|
||||
{
|
||||
u32 x;
|
||||
u32 x;
|
||||
|
||||
x = mac[0];
|
||||
x = (x << 2) ^ mac[1];
|
||||
x = (x << 2) ^ mac[2];
|
||||
x = (x << 2) ^ mac[3];
|
||||
x = (x << 2) ^ mac[4];
|
||||
x = (x << 2) ^ mac[5];
|
||||
x = mac[0];
|
||||
x = (x << 2) ^ mac[1];
|
||||
x = (x << 2) ^ mac[2];
|
||||
x = (x << 2) ^ mac[3];
|
||||
x = (x << 2) ^ mac[4];
|
||||
x = (x << 2) ^ mac[5];
|
||||
|
||||
x ^= x >> 8;
|
||||
x = x & (NUM_STA - 1);
|
||||
x ^= x >> 8;
|
||||
x = x & (NUM_STA - 1);
|
||||
|
||||
return x;
|
||||
return x;
|
||||
}
|
||||
|
||||
|
||||
|
@ -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,15 +324,14 @@ 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)
|
||||
{
|
||||
struct wlan_bssid_ex *pnetwork = &(padapter->mlmeextpriv.mlmext_info.network);
|
||||
@ -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 */
|
||||
@ -581,7 +576,7 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, struct ieee_pa
|
||||
|
||||
psecuritypriv->dot118021XGrpPrivacy = _WEP40_;
|
||||
if (param->u.crypt.key_len == 13)
|
||||
psecuritypriv->dot118021XGrpPrivacy = _WEP104_;
|
||||
psecuritypriv->dot118021XGrpPrivacy = _WEP104_;
|
||||
|
||||
} else if (strcmp(param->u.crypt.alg, "TKIP") == 0) {
|
||||
psecuritypriv->dot118021XGrpPrivacy = _TKIP_;
|
||||
@ -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
|
||||
@ -1305,14 +1287,13 @@ static int cfg80211_rtw_scan(struct wiphy *wiphy
|
||||
} else if (request->n_channels <= 4) {
|
||||
for (j = request->n_channels - 1; j >= 0; j--)
|
||||
for (i = 0; i < survey_times; i++)
|
||||
memcpy(&ch[j*survey_times+i], &ch[j], sizeof(struct rtw_ieee80211_channel));
|
||||
memcpy(&ch[j*survey_times+i], &ch[j], sizeof(struct rtw_ieee80211_channel));
|
||||
_status = rtw_sitesurvey_cmd(padapter, ssid, RTW_SSID_SCAN_AMOUNT, ch, survey_times * request->n_channels);
|
||||
} else {
|
||||
_status = rtw_sitesurvey_cmd(padapter, ssid, RTW_SSID_SCAN_AMOUNT, NULL, 0);
|
||||
}
|
||||
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;
|
||||
@ -2810,7 +2765,7 @@ int rtw_wdev_alloc(struct adapter *padapter, struct device *dev)
|
||||
wdev->netdev = pnetdev;
|
||||
|
||||
wdev->iftype = NL80211_IFTYPE_STATION; /* will be init in rtw_hal_init() */
|
||||
/* Must sync with _rtw_init_mlme_priv() */
|
||||
/* Must sync with _rtw_init_mlme_priv() */
|
||||
/* pmlmepriv->fw_state = WIFI_STATION_STATE */
|
||||
padapter->rtw_wdev = wdev;
|
||||
pnetdev->ieee80211_ptr = wdev;
|
||||
@ -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;
|
||||
}
|
||||
|
||||
/* reject if target != 0 or if LUN is higher than
|
||||
* the maximum known LUN
|
||||
*/
|
||||
else if (chip->srb->device->id) {
|
||||
} else if (chip->srb->device->id) {
|
||||
/* reject if target != 0 or if LUN is higher than
|
||||
* the maximum known LUN
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
||||
/* we've got a command, let's do it! */
|
||||
else {
|
||||
} else {
|
||||
/* we've got a command, let's do it! */
|
||||
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…
Reference in New Issue
Block a user