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:
Linus Torvalds 2023-07-03 13:07:13 -07:00
commit db9c6d1d7f
58 changed files with 445 additions and 1427 deletions

View File

@ -906,9 +906,6 @@ static int axis_fifo_probe(struct platform_device *pdev)
if (rc < 0) if (rc < 0)
goto err_initial; 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; return 0;
err_initial: err_initial:

View File

@ -362,7 +362,7 @@ static struct i2c_driver i2c_driver = {
.driver = { .driver = {
.name = "hdm_i2c", .name = "hdm_i2c",
}, },
.probe_new = i2c_probe, .probe = i2c_probe,
.remove = i2c_remove, .remove = i2c_remove,
.id_table = i2c_id, .id_table = i2c_id,
}; };

View File

@ -779,7 +779,7 @@ static struct i2c_driver dcon_driver = {
}, },
.class = I2C_CLASS_DDC | I2C_CLASS_HWMON, .class = I2C_CLASS_DDC | I2C_CLASS_HWMON,
.id_table = dcon_idtable, .id_table = dcon_idtable,
.probe_new = dcon_probe, .probe = dcon_probe,
.remove = dcon_remove, .remove = dcon_remove,
.detect = dcon_detect, .detect = dcon_detect,
.address_list = normal_i2c, .address_list = normal_i2c,

View File

@ -1019,7 +1019,6 @@ static int setup_gpio(struct pi433_device *device)
} }
/* configure the pin */ /* configure the pin */
gpiod_unexport(device->gpiod[i]);
retval = gpiod_direction_input(device->gpiod[i]); retval = gpiod_direction_input(device->gpiod[i]);
if (retval) if (retval)
return retval; return retval;

View File

@ -3,6 +3,7 @@ config RTL8192E
tristate "RealTek RTL8192E Wireless LAN NIC driver" tristate "RealTek RTL8192E Wireless LAN NIC driver"
depends on PCI && WLAN && RTLLIB depends on PCI && WLAN && RTLLIB
depends on m depends on m
select CFG80211
select WIRELESS_EXT select WIRELESS_EXT
select WEXT_PRIV select WEXT_PRIV
select CRYPTO select CRYPTO

View File

@ -85,7 +85,6 @@ enum rtl819x_loopback {
#define HAL_PRIME_CHNL_OFFSET_LOWER 1 #define HAL_PRIME_CHNL_OFFSET_LOWER 1
#define HAL_PRIME_CHNL_OFFSET_UPPER 2 #define HAL_PRIME_CHNL_OFFSET_UPPER 2
enum version_8190_loopback { enum version_8190_loopback {
VERSION_8190_BD = 0x3, VERSION_8190_BD = 0x3,
VERSION_8190_BE VERSION_8190_BE
@ -139,8 +138,6 @@ struct tx_fwinfo_8190pci {
u32 Retry_Limit:4; u32 Retry_Limit:4;
u32 Reserved2:1; u32 Reserved2:1;
u32 PacketID:13; u32 PacketID:13;
}; };
struct phy_ofdm_rx_status_rxsc_sgien_exintfflag { struct phy_ofdm_rx_status_rxsc_sgien_exintfflag {
@ -172,7 +169,6 @@ struct phy_sts_cck_819xpci {
u8 cck_agc_rpt; u8 cck_agc_rpt;
}; };
#define PHY_RSSI_SLID_WIN_MAX 100 #define PHY_RSSI_SLID_WIN_MAX 100
#define PHY_Beacon_RSSI_SLID_WIN_MAX 10 #define PHY_Beacon_RSSI_SLID_WIN_MAX 10
@ -214,7 +210,6 @@ struct tx_desc {
u32 Reserved7; u32 Reserved7;
}; };
struct tx_desc_cmd { struct tx_desc_cmd {
u16 PktSize; u16 PktSize;
u8 Reserved1; u8 Reserved1;
@ -256,10 +251,8 @@ struct rx_desc {
u32 Reserved3; u32 Reserved3;
u32 BufferAddress; u32 BufferAddress;
}; };
struct rx_fwinfo { struct rx_fwinfo {
u16 Reserved1:12; u16 Reserved1:12;
u16 PartAggr:1; u16 PartAggr:1;
@ -278,7 +271,6 @@ struct rx_fwinfo {
u8 Reserved4:1; u8 Reserved4:1;
u32 TSFL; u32 TSFL;
}; };
#endif #endif

View File

@ -73,11 +73,11 @@ bool rtl92e_config_rf(struct net_device *dev)
break; break;
case RF90_PATH_B: case RF90_PATH_B:
u4RegValue = rtl92e_get_bb_reg(dev, pPhyReg->rfintfs, u4RegValue = rtl92e_get_bb_reg(dev, pPhyReg->rfintfs,
bRFSI_RFENV<<16); bRFSI_RFENV << 16);
break; 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); rtl92e_set_bb_reg(dev, pPhyReg->rfintfo, bRFSI_RFENV, 0x1);
@ -117,7 +117,7 @@ bool rtl92e_config_rf(struct net_device *dev)
break; break;
case RF90_PATH_B: case RF90_PATH_B:
rtl92e_set_bb_reg(dev, pPhyReg->rfintfs, rtl92e_set_bb_reg(dev, pPhyReg->rfintfs,
bRFSI_RFENV<<16, u4RegValue); bRFSI_RFENV << 16, u4RegValue);
break; break;
} }

View File

@ -36,8 +36,8 @@ void rtl92e_start_beacon(struct net_device *dev)
rtl92e_writeb(dev, BCN_ERR_THRESH, 100); rtl92e_writeb(dev, BCN_ERR_THRESH, 100);
BcnTimeCfg |= BcnCW<<BCN_TCFG_CW_SHIFT; BcnTimeCfg |= BcnCW << BCN_TCFG_CW_SHIFT;
BcnTimeCfg |= BcnIFS<<BCN_TCFG_IFS; BcnTimeCfg |= BcnIFS << BCN_TCFG_IFS;
rtl92e_writew(dev, BCN_TCFG, BcnTimeCfg); rtl92e_writew(dev, BCN_TCFG, BcnTimeCfg);
rtl92e_irq_enable(dev); rtl92e_irq_enable(dev);
} }
@ -46,23 +46,21 @@ static void _rtl92e_update_msr(struct net_device *dev)
{ {
struct r8192_priv *priv = rtllib_priv(dev); struct r8192_priv *priv = rtllib_priv(dev);
u8 msr; u8 msr;
enum led_ctl_mode LedAction = LED_CTL_NO_LINK;
msr = rtl92e_readb(dev, MSR); msr = rtl92e_readb(dev, MSR);
msr &= ~MSR_LINK_MASK; msr &= ~MSR_LINK_MASK;
switch (priv->rtllib->iw_mode) { switch (priv->rtllib->iw_mode) {
case IW_MODE_INFRA: case IW_MODE_INFRA:
if (priv->rtllib->state == RTLLIB_LINKED) if (priv->rtllib->link_state == MAC80211_LINKED)
msr |= MSR_LINK_MANAGED; msr |= MSR_LINK_MANAGED;
LedAction = LED_CTL_LINK;
break; break;
case IW_MODE_ADHOC: case IW_MODE_ADHOC:
if (priv->rtllib->state == RTLLIB_LINKED) if (priv->rtllib->link_state == MAC80211_LINKED)
msr |= MSR_LINK_ADHOC; msr |= MSR_LINK_ADHOC;
break; break;
case IW_MODE_MASTER: case IW_MODE_MASTER:
if (priv->rtllib->state == RTLLIB_LINKED) if (priv->rtllib->link_state == MAC80211_LINKED)
msr |= MSR_LINK_MASTER; msr |= MSR_LINK_MASTER;
break; break;
default: default:
@ -70,8 +68,6 @@ static void _rtl92e_update_msr(struct net_device *dev)
} }
rtl92e_writeb(dev, MSR, msr); 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) 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); rtl92e_writeb(dev, MSR, btMsr);
} }
break; break;
@ -130,7 +125,6 @@ void rtl92e_set_reg(struct net_device *dev, u8 variable, u8 *val)
rtl92e_writel(dev, RCR, RegRCR); rtl92e_writel(dev, RCR, RegRCR);
priv->receive_config = RegRCR; priv->receive_config = RegRCR;
} }
break; break;
@ -168,7 +162,7 @@ void rtl92e_set_reg(struct net_device *dev, u8 variable, u8 *val)
&priv->rtllib->current_network.qos_data.parameters; &priv->rtllib->current_network.qos_data.parameters;
u1bAIFS = qop->aifs[pAcParam] * 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); 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: case HW_VAR_SIFS:
rtl92e_writeb(dev, SIFS, val[0]); rtl92e_writeb(dev, SIFS, val[0]);
rtl92e_writeb(dev, SIFS+1, val[0]); rtl92e_writeb(dev, SIFS + 1, val[0]);
break; break;
case HW_VAR_RF_TIMING: case HW_VAR_RF_TIMING:
@ -270,7 +264,6 @@ void rtl92e_set_reg(struct net_device *dev, u8 variable, u8 *val)
default: default:
break; break;
} }
} }
static void _rtl92e_read_eeprom_info(struct net_device *dev) 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; (EEPROM_Customer_ID >> 1)) >> 8;
priv->eeprom_customer_id = usValue & 0xff; priv->eeprom_customer_id = usValue & 0xff;
usValue = rtl92e_eeprom_read(dev, usValue = rtl92e_eeprom_read(dev,
EEPROM_ICVersion_ChannelPlan>>1); EEPROM_ICVersion_ChannelPlan >> 1);
priv->eeprom_chnl_plan = usValue&0xff; priv->eeprom_chnl_plan = usValue & 0xff;
IC_Version = (usValue & 0xff00)>>8; IC_Version = (usValue & 0xff00) >> 8;
ICVer8192 = IC_Version & 0xf; ICVer8192 = IC_Version & 0xf;
ICVer8256 = (IC_Version & 0xf0)>>4; ICVer8256 = (IC_Version & 0xf0) >> 4;
if (ICVer8192 == 0x2) { if (ICVer8192 == 0x2) {
if (ICVer8256 == 0x5) if (ICVer8256 == 0x5)
priv->card_8192_version = VERSION_8190_BE; 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) if (!priv->autoload_fail_flag)
priv->eeprom_thermal_meter = ((rtl92e_eeprom_read(dev, priv->eeprom_thermal_meter = ((rtl92e_eeprom_read(dev,
(EEPROM_ThermalMeter>>1))) & (EEPROM_ThermalMeter >> 1))) &
0xff00) >> 8; 0xff00) >> 8;
else else
priv->eeprom_thermal_meter = EEPROM_Default_ThermalMeter; priv->eeprom_thermal_meter = EEPROM_Default_ThermalMeter;
@ -596,7 +589,7 @@ start:
RSVD_FW_QUEUE_PAGE_MGNT_SHIFT); RSVD_FW_QUEUE_PAGE_MGNT_SHIFT);
rtl92e_writel(dev, RQPN3, APPLIED_RESERVED_QUEUE_IN_FW | rtl92e_writel(dev, RQPN3, APPLIED_RESERVED_QUEUE_IN_FW |
NUM_OF_PAGE_IN_FW_QUEUE_BCN << 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 << NUM_OF_PAGE_IN_FW_QUEUE_PUB <<
RSVD_FW_QUEUE_PAGE_PUB_SHIFT); RSVD_FW_QUEUE_PAGE_PUB_SHIFT);
@ -605,7 +598,7 @@ start:
ulRegRead = (0xFFF00000 & rtl92e_readl(dev, RRSR)) | ulRegRead = (0xFFF00000 & rtl92e_readl(dev, RRSR)) |
RATE_ALL_OFDM_AG | RATE_ALL_CCK; RATE_ALL_OFDM_AG | RATE_ALL_CCK;
rtl92e_writel(dev, RRSR, ulRegRead); 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); rtl92e_writeb(dev, ACK_TIMEOUT, 0x30);
@ -718,7 +711,6 @@ end:
static void _rtl92e_net_update(struct net_device *dev) static void _rtl92e_net_update(struct net_device *dev)
{ {
struct r8192_priv *priv = rtllib_priv(dev); struct r8192_priv *priv = rtllib_priv(dev);
struct rtllib_network *net; struct rtllib_network *net;
u16 BcnTimeCfg = 0, BcnCW = 6, BcnIFS = 0xf; 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_writew(dev, BCN_DRV_EARLY_INT, 10);
rtl92e_writeb(dev, BCN_ERR_THRESH, 100); rtl92e_writeb(dev, BCN_ERR_THRESH, 100);
BcnTimeCfg |= (BcnCW<<BCN_TCFG_CW_SHIFT); BcnTimeCfg |= (BcnCW << BCN_TCFG_CW_SHIFT);
BcnTimeCfg |= BcnIFS<<BCN_TCFG_IFS; BcnTimeCfg |= BcnIFS << BCN_TCFG_IFS;
rtl92e_writew(dev, BCN_TCFG, BcnTimeCfg); rtl92e_writew(dev, BCN_TCFG, BcnTimeCfg);
} }
@ -753,7 +745,7 @@ void rtl92e_link_change(struct net_device *dev)
if (!priv->up) if (!priv->up)
return; return;
if (ieee->state == RTLLIB_LINKED) { if (ieee->link_state == MAC80211_LINKED) {
_rtl92e_net_update(dev); _rtl92e_net_update(dev);
rtl92e_update_ratr_table(dev); rtl92e_update_ratr_table(dev);
if ((ieee->pairwise_key_type == KEY_TYPE_WEP40) || if ((ieee->pairwise_key_type == KEY_TYPE_WEP40) ||
@ -768,13 +760,14 @@ void rtl92e_link_change(struct net_device *dev)
u32 reg; u32 reg;
reg = rtl92e_readl(dev, RCR); 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) if (ieee->intel_promiscuous_md_info.promiscuous_on)
; ;
else else
priv->receive_config = reg |= RCR_CBSSID; priv->receive_config = reg |= RCR_CBSSID;
} else } else {
priv->receive_config = reg &= ~RCR_CBSSID; priv->receive_config = reg &= ~RCR_CBSSID;
}
rtl92e_writel(dev, RCR, reg); rtl92e_writel(dev, RCR, reg);
} }
@ -883,7 +876,7 @@ static u8 _rtl92e_rate_mgn_to_hw(u8 rate)
case MGN_MCS15: case MGN_MCS15:
ret = DESC90_RATEMCS15; ret = DESC90_RATEMCS15;
break; break;
case (0x80|0x20): case (0x80 | 0x20):
ret = DESC90_RATEMCS32; ret = DESC90_RATEMCS32;
break; break;
default: 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->RtsEnable = (cb_desc->bRTSEnable) ? 1 : 0;
pTxFwInfo->CtsEnable = (cb_desc->bCTSEnable) ? 1 : 0; pTxFwInfo->CtsEnable = (cb_desc->bCTSEnable) ? 1 : 0;
pTxFwInfo->RtsSTBC = (cb_desc->bRTSSTBC) ? 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->RtsRate = _rtl92e_rate_mgn_to_hw(cb_desc->rts_rate);
pTxFwInfo->RtsBandwidth = 0; pTxFwInfo->RtsBandwidth = 0;
pTxFwInfo->RtsSubcarrier = cb_desc->RTSSC; 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->PktSize = skb->len - sizeof(struct tx_fwinfo_8190pci);
pdesc->SecCAMID = 0; pdesc->SecCAMID = 0;
pdesc->RATid = cb_desc->RATRIndex; pdesc->RATid = cb_desc->ratr_index;
pdesc->NoEnc = 1; pdesc->NoEnc = 1;
pdesc->SecType = 0x0; pdesc->SecType = 0x0;
@ -1217,7 +1209,6 @@ static long _rtl92e_signal_scale_mapping(struct r8192_priv *priv, long currsig)
return retsig; return retsig;
} }
#define rx_hal_is_cck_rate(_pdrvinfo)\ #define rx_hal_is_cck_rate(_pdrvinfo)\
((_pdrvinfo->RxRate == DESC90_RATE1M ||\ ((_pdrvinfo->RxRate == DESC90_RATE1M ||\
_pdrvinfo->RxRate == DESC90_RATE2M ||\ _pdrvinfo->RxRate == DESC90_RATE2M ||\
@ -1265,7 +1256,6 @@ static void _rtl92e_query_rxphystatus(
check_reg824 = 1; check_reg824 = 1;
} }
prxpkt = (u8 *)pdrvinfo; prxpkt = (u8 *)pdrvinfo;
prxpkt += sizeof(struct rx_fwinfo); prxpkt += sizeof(struct rx_fwinfo);
@ -1345,7 +1335,7 @@ static void _rtl92e_query_rxphystatus(
else if (pcck_buf->sq_rpt < 20) else if (pcck_buf->sq_rpt < 20)
sq = 100; sq = 100;
else else
sq = ((64-sq) * 100) / 44; sq = ((64 - sq) * 100) / 44;
} }
pstats->SignalQuality = sq; pstats->SignalQuality = sq;
precord_stats->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; rx_pwr_all = (((pofdm_buf->pwdb_all) >> 1) & 0x7f) - 106;
pwdb_all = rtl92e_rx_db_to_percent(rx_pwr_all); 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) if (slide_rssi_index >= PHY_RSSI_SLID_WIN_MAX)
slide_rssi_index = 0; 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); priv->stats.signal_strength = rtl92e_translate_to_dbm(priv, tmp_val);
curr_st->rssi = priv->stats.signal_strength; curr_st->rssi = priv->stats.signal_strength;
if (!prev_st->bPacketMatchBSSID) { if (!prev_st->bPacketMatchBSSID) {
@ -1482,14 +1471,13 @@ static void _rtl92e_process_phyinfo(struct r8192_priv *priv, u8 *buffer,
} else { } else {
priv->stats.rx_rssi_percentage[rfpath] = priv->stats.rx_rssi_percentage[rfpath] =
((priv->stats.rx_rssi_percentage[rfpath] * ((priv->stats.rx_rssi_percentage[rfpath] *
(RX_SMOOTH-1)) + (RX_SMOOTH - 1)) +
(prev_st->RxMIMOSignalStrength[rfpath])) / (prev_st->RxMIMOSignalStrength[rfpath])) /
(RX_SMOOTH); (RX_SMOOTH);
} }
} }
} }
if (prev_st->bPacketBeacon) { if (prev_st->bPacketBeacon) {
if (slide_beacon_adc_pwdb_statistics++ >= if (slide_beacon_adc_pwdb_statistics++ >=
PHY_Beacon_RSSI_SLID_WIN_MAX) { 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) { if (prev_st->RxPWDBAll > (u32)priv->undecorated_smoothed_pwdb) {
priv->undecorated_smoothed_pwdb = priv->undecorated_smoothed_pwdb =
(((priv->undecorated_smoothed_pwdb) * (((priv->undecorated_smoothed_pwdb) *
(RX_SMOOTH-1)) + (RX_SMOOTH - 1)) +
(prev_st->RxPWDBAll)) / (RX_SMOOTH); (prev_st->RxPWDBAll)) / (RX_SMOOTH);
priv->undecorated_smoothed_pwdb = priv->undecorated_smoothed_pwdb =
priv->undecorated_smoothed_pwdb + 1; priv->undecorated_smoothed_pwdb + 1;
} else { } else {
priv->undecorated_smoothed_pwdb = priv->undecorated_smoothed_pwdb =
(((priv->undecorated_smoothed_pwdb) * (((priv->undecorated_smoothed_pwdb) *
(RX_SMOOTH-1)) + (RX_SMOOTH - 1)) +
(prev_st->RxPWDBAll)) / (RX_SMOOTH); (prev_st->RxPWDBAll)) / (RX_SMOOTH);
} }
rtl92e_update_rx_statistics(priv, prev_st); 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); (pDrvInfo->FirstAGGR == 1);
stats->TimeStampLow = pDrvInfo->TSFL; 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); 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); skb_trim(skb, skb->len - S_CRC_LEN);
stats->packetlength = stats->Length-4; stats->packetlength = stats->Length - 4;
stats->fraglength = stats->packetlength; stats->fraglength = stats->packetlength;
stats->fragoffset = 0; stats->fragoffset = 0;
stats->ntotalfrag = 1; 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, WFCRC1, 0xffffffff);
rtl92e_writel(dev, WFCRC2, 0xffffffff); rtl92e_writel(dev, WFCRC2, 0xffffffff);
rtl92e_writeb(dev, PMR, 0x5); rtl92e_writeb(dev, PMR, 0x5);
rtl92e_writeb(dev, MAC_BLK_CTRL, 0xa); 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); rtl92e_config_rate(dev, &rate_config);
ratr_value = rate_config | *pMcsRate << 12; ratr_value = rate_config | *pMcsRate << 12;
switch (ieee->mode) { switch (ieee->mode) {
case IEEE_A: case WIRELESS_MODE_B:
ratr_value &= 0x00000FF0;
break;
case IEEE_B:
ratr_value &= 0x0000000F; ratr_value &= 0x0000000F;
break; break;
case IEEE_G: case WIRELESS_MODE_G:
case IEEE_G|IEEE_B: case WIRELESS_MODE_G | WIRELESS_MODE_B:
ratr_value &= 0x00000FF7; ratr_value &= 0x00000FF7;
break; break;
case IEEE_N_24G: case WIRELESS_MODE_N_24G:
case IEEE_N_5G:
if (ieee->ht_info->peer_mimo_ps == 0) if (ieee->ht_info->peer_mimo_ps == 0)
ratr_value &= 0x0007F007; ratr_value &= 0x0007F007;
else else
@ -1857,7 +1840,7 @@ void rtl92e_update_ratr_table(struct net_device *dev)
else if (!ieee->ht_info->cur_tx_bw40mhz && else if (!ieee->ht_info->cur_tx_bw40mhz &&
ieee->ht_info->bCurShortGI20MHz) ieee->ht_info->bCurShortGI20MHz)
ratr_value |= 0x80000000; 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); rtl92e_writeb(dev, UFWP, 1);
} }
@ -1881,7 +1864,7 @@ rtl92e_init_variables(struct net_device *dev)
RCR_AMF | RCR_ADF | RCR_AMF | RCR_ADF |
RCR_AICV | RCR_AICV |
RCR_AB | RCR_AM | RCR_APM | 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; ((u32)7 << RCR_FIFO_OFFSET) | RCR_ONLYERLPKT;
priv->irq_mask[0] = (u32)(IMR_ROK | IMR_VODOK | IMR_VIDOK | 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; priv->irq_enabled = 1;
rtl92e_writel(dev, INTA_MASK, priv->irq_mask[0]); rtl92e_writel(dev, INTA_MASK, priv->irq_mask[0]);
} }
void rtl92e_disable_irq(struct net_device *dev) 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); 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) void rtl92e_ack_irq(struct net_device *dev, u32 *p_inta, u32 *p_intb)
{ {
*p_inta = rtl92e_readl(dev, ISR); *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) { if (priv->rx_ctr == RegRxCounter) {
priv->silent_reset_rx_stuck_event[SlotIndex] = 1; priv->silent_reset_rx_stuck_event[SlotIndex] = 1;
@ -1990,8 +1971,6 @@ bool rtl92e_is_rx_stuck(struct net_device *dev)
TotalRxStuckCount += TotalRxStuckCount +=
priv->silent_reset_rx_stuck_event[i]; priv->silent_reset_rx_stuck_event[i];
} }
} else { } else {
priv->silent_reset_rx_stuck_event[SlotIndex] = 0; 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; struct rtllib_device *ieee = priv->rtllib;
if (ieee->rtllib_ap_sec_type && 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))) { SEC_ALG_TKIP))) {
return false; return false;
} else { } else {

View File

@ -159,7 +159,6 @@ enum _RTL8192PCI_HW {
WFCRC2 = 0x2f8, WFCRC2 = 0x2f8,
BW_OPMODE = 0x300, BW_OPMODE = 0x300,
#define BW_OPMODE_5G BIT1
#define BW_OPMODE_20MHZ BIT2 #define BW_OPMODE_20MHZ BIT2
IC_VERRSION = 0x301, IC_VERRSION = 0x301,
MSR = 0x303, MSR = 0x303,

View File

@ -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, void rtl92e_set_bb_reg(struct net_device *dev, u32 dwRegAddr, u32 dwBitMask,
u32 dwData) u32 dwData)
{ {
u32 OriginalValue, BitShift, NewValue; u32 OriginalValue, BitShift, NewValue;
if (dwBitMask != bMaskDWord) { 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); BitShift = _rtl92e_calculate_bit_shift(dwBitMask);
NewValue = (OriginalValue & ~dwBitMask) | (dwData << BitShift); NewValue = (OriginalValue & ~dwBitMask) | (dwData << BitShift);
rtl92e_writel(dev, dwRegAddr, NewValue); rtl92e_writel(dev, dwRegAddr, NewValue);
} else } else {
rtl92e_writel(dev, dwRegAddr, dwData); rtl92e_writel(dev, dwRegAddr, dwData);
}
} }
u32 rtl92e_get_bb_reg(struct net_device *dev, u32 dwRegAddr, u32 dwBitMask) 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); rtl92e_set_bb_reg(dev, rFPGA0_AnalogParameter4, 0x300, 0x3);
return ret; return ret;
} }
static void _rtl92e_phy_rf_write(struct net_device *dev, 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, _rtl92e_phy_rf_fw_write(dev, eRFPath, RegAddr,
New_Value); New_Value);
} else } else {
_rtl92e_phy_rf_fw_write(dev, eRFPath, RegAddr, Data); _rtl92e_phy_rf_fw_write(dev, eRFPath, RegAddr, Data);
}
udelay(200); udelay(200);
} else { } else {
if (BitMask != bMask12Bits) { if (BitMask != bMask12Bits) {
Original_Value = _rtl92e_phy_rf_read(dev, eRFPath, 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); New_Value = (Original_Value & ~BitMask) | (Data << BitShift);
_rtl92e_phy_rf_write(dev, eRFPath, RegAddr, New_Value); _rtl92e_phy_rf_write(dev, eRFPath, RegAddr, New_Value);
} else } else {
_rtl92e_phy_rf_write(dev, eRFPath, RegAddr, Data); _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 0;
} }
return rtl92e_readl(dev, RF_DATA); return rtl92e_readl(dev, RF_DATA);
} }
static void _rtl92e_phy_rf_fw_write(struct net_device *dev, 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; break;
} }
rtl92e_writel(dev, QPNR, Data); rtl92e_writel(dev, QPNR, Data);
} }
void rtl92e_config_mac(struct net_device *dev) void rtl92e_config_mac(struct net_device *dev)
{ {
u32 dwArrayLen = 0, i = 0; u32 dwArrayLen = 0, i = 0;
@ -267,12 +264,10 @@ void rtl92e_config_mac(struct net_device *dev)
} }
for (i = 0; i < dwArrayLen; i += 3) { for (i = 0; i < dwArrayLen; i += 3) {
if (pdwArray[i] == 0x318) if (pdwArray[i] == 0x318)
pdwArray[i+2] = 0x00000800; pdwArray[i + 2] = 0x00000800;
rtl92e_set_bb_reg(dev, pdwArray[i], pdwArray[i+1], rtl92e_set_bb_reg(dev, pdwArray[i], pdwArray[i + 1],
pdwArray[i+2]); pdwArray[i + 2]);
} }
return;
} }
static void _rtl92e_phy_config_bb(struct net_device *dev, u8 ConfigType) 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) { for (i = 0; i < PHY_REGArrayLen; i += 2) {
rtl92e_set_bb_reg(dev, Rtl819XPHY_REGArray_Table[i], rtl92e_set_bb_reg(dev, Rtl819XPHY_REGArray_Table[i],
bMaskDWord, bMaskDWord,
Rtl819XPHY_REGArray_Table[i+1]); Rtl819XPHY_REGArray_Table[i + 1]);
} }
} else if (ConfigType == BB_CONFIG_AGC_TAB) { } else if (ConfigType == BB_CONFIG_AGC_TAB) {
for (i = 0; i < AGCTAB_ArrayLen; i += 2) { for (i = 0; i < AGCTAB_ArrayLen; i += 2) {
rtl92e_set_bb_reg(dev, Rtl819XAGCTAB_Array_Table[i], rtl92e_set_bb_reg(dev, Rtl819XAGCTAB_Array_Table[i],
bMaskDWord, 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; break;
} }
if (dwRegRead != WriteData[i]) { if (dwRegRead != WriteData[i]) {
netdev_warn(dev, "%s(): Check failed.\n", __func__); netdev_warn(dev, "%s(): Check failed.\n", __func__);
ret = false; ret = false;
@ -389,10 +383,10 @@ static bool _rtl92e_bb_config_para_file(struct net_device *dev)
u32 dwRegValue = 0; u32 dwRegValue = 0;
bRegValue = rtl92e_readb(dev, BB_GLOBAL_RESET); 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); 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; for (eCheckItem = (enum hw90_block)HW90_BLOCK_PHY0;
eCheckItem <= HW90_BLOCK_PHY1; eCheckItem++) { eCheckItem <= HW90_BLOCK_PHY1; eCheckItem++) {
@ -402,19 +396,18 @@ static bool _rtl92e_bb_config_para_file(struct net_device *dev)
if (!rtStatus) if (!rtStatus)
return 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); _rtl92e_phy_config_bb(dev, BB_CONFIG_PHY_REG);
dwRegValue = rtl92e_readl(dev, CPU_GEN); 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); _rtl92e_phy_config_bb(dev, BB_CONFIG_AGC_TAB);
if (priv->ic_cut > VERSION_8190_BD) { if (priv->ic_cut > VERSION_8190_BD) {
dwRegValue = 0x0; dwRegValue = 0x0;
rtl92e_set_bb_reg(dev, rFPGA0_TxGainStage, rtl92e_set_bb_reg(dev, rFPGA0_TxGainStage,
(bXBTxAGC|bXCTxAGC|bXDTxAGC), dwRegValue); (bXBTxAGC | bXCTxAGC | bXDTxAGC), dwRegValue);
dwRegValue = priv->crystal_cap; dwRegValue = priv->crystal_cap;
rtl92e_set_bb_reg(dev, rFPGA0_AnalogParameter1, bXtalCap92x, 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) u8 rtl92e_config_rf_path(struct net_device *dev, enum rf90_radio_path eRFPath)
{ {
int i; int i;
switch (eRFPath) { 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], rtl92e_set_rf_reg(dev, eRFPath, RTL8192E_RADIO_A_ARR[i],
bMask12Bits, bMask12Bits,
RTL8192E_RADIO_A_ARR[i + 1]); RTL8192E_RADIO_A_ARR[i + 1]);
} }
break; break;
case RF90_PATH_B: 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], rtl92e_set_rf_reg(dev, eRFPath, RTL8192E_RADIO_B_ARR[i],
bMask12Bits, bMask12Bits,
RTL8192E_RADIO_B_ARR[i + 1]); RTL8192E_RADIO_B_ARR[i + 1]);
} }
break; break;
default: default:
@ -503,7 +493,6 @@ u8 rtl92e_config_rf_path(struct net_device *dev, enum rf90_radio_path eRFPath)
} }
return 0; return 0;
} }
static void _rtl92e_set_tx_power_level(struct net_device *dev, u8 channel) 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, rtl92e_set_rf_reg(dev,
(enum rf90_radio_path)eRFPath, (enum rf90_radio_path)eRFPath,
CurrentCmd->Para1, bMask12Bits, CurrentCmd->Para1, bMask12Bits,
CurrentCmd->Para2<<7); CurrentCmd->Para2 << 7);
break; break;
default: default:
break; 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) static void _rtl92e_phy_switch_channel_work_item(struct net_device *dev)
{ {
struct r8192_priv *priv = rtllib_priv(dev); struct r8192_priv *priv = rtllib_priv(dev);
_rtl92e_phy_switch_channel(dev, priv->chan); _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) if (priv->sw_chnl_in_progress)
return false; return false;
switch (priv->rtllib->mode) { switch (priv->rtllib->mode) {
case WIRELESS_MODE_B: case WIRELESS_MODE_B:
if (channel > 14) { 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) static void _rtl92e_set_bw_mode_work_item(struct net_device *dev)
{ {
struct r8192_priv *priv = rtllib_priv(dev); struct r8192_priv *priv = rtllib_priv(dev);
u8 regBwOpMode; 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, 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, rtl92e_set_bb_reg(dev, rOFDM1_LSTF, 0xC00,
priv->n_cur_40mhz_prime_sc); 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__, netdev_err(dev, "%s(): unknown Bandwidth: %#X\n", __func__,
priv->current_chnl_bw); priv->current_chnl_bw);
break; break;
} }
rtl92e_set_bandwidth(dev, priv->current_chnl_bw); 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); struct r8192_priv *priv = rtllib_priv(dev);
if (priv->set_bw_mode_in_progress) if (priv->set_bw_mode_in_progress)
return; 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; priv->n_cur_40mhz_prime_sc = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
_rtl92e_set_bw_mode_work_item(dev); _rtl92e_set_bw_mode_work_item(dev);
} }
void rtl92e_init_gain(struct net_device *dev, u8 Operation) 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) 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_XA_RFInterfaceOE, BIT4, 0x0);
rtl92e_set_bb_reg(dev, rFPGA0_AnalogParameter4, 0x300, 0x0); rtl92e_set_bb_reg(dev, rFPGA0_AnalogParameter4, 0x300, 0x0);
rtl92e_set_bb_reg(dev, rFPGA0_AnalogParameter1, 0x18, 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, 0x60, 0x0);
rtl92e_set_bb_reg(dev, rFPGA0_AnalogParameter1, 0x4, 0x0); rtl92e_set_bb_reg(dev, rFPGA0_AnalogParameter1, 0x4, 0x0);
rtl92e_writeb(dev, ANAPAR_FOR_8192PCIE, 0x07); rtl92e_writeb(dev, ANAPAR_FOR_8192PCIE, 0x07);
} }
static bool _rtl92e_set_rf_power_state(struct net_device *dev, 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; break;
} }
if (bResult) { if (bResult)
priv->rtllib->rf_power_state = rf_power_state; priv->rtllib->rf_power_state = rf_power_state;
}
priv->set_rf_pwr_state_in_progress = false; priv->set_rf_pwr_state_in_progress = false;
return bResult; return bResult;
@ -1130,11 +1110,11 @@ void rtl92e_scan_op_backup(struct net_device *dev, u8 Operation)
if (priv->up) { if (priv->up) {
switch (Operation) { switch (Operation) {
case SCAN_OPT_BACKUP: case SCAN_OPT_BACKUP:
priv->rtllib->InitialGainHandler(dev, IG_Backup); priv->rtllib->init_gain_handler(dev, IG_Backup);
break; break;
case SCAN_OPT_RESTORE: case SCAN_OPT_RESTORE:
priv->rtllib->InitialGainHandler(dev, IG_Restore); priv->rtllib->init_gain_handler(dev, IG_Restore);
break; break;
} }
} }

View File

@ -7,7 +7,6 @@
#ifndef _R819XU_PHYREG_H #ifndef _R819XU_PHYREG_H
#define _R819XU_PHYREG_H #define _R819XU_PHYREG_H
#define RF_DATA 0x1d4 #define RF_DATA 0x1d4
#define rPMAC_Reset 0x100 #define rPMAC_Reset 0x100
@ -125,7 +124,6 @@
#define rOFDM0_TxCoeff5 0xcb4 #define rOFDM0_TxCoeff5 0xcb4
#define rOFDM0_TxCoeff6 0xcb8 #define rOFDM0_TxCoeff6 0xcb8
#define rOFDM1_LSTF 0xd00 #define rOFDM1_LSTF 0xd00
#define rOFDM1_TRxPathEnable 0xd04 #define rOFDM1_TRxPathEnable 0xd04
#define rOFDM1_CFO 0xd08 #define rOFDM1_CFO 0xd08
@ -163,7 +161,6 @@
#define rTxAGC_Mcs11_Mcs08 0xe18 #define rTxAGC_Mcs11_Mcs08 0xe18
#define rTxAGC_Mcs15_Mcs12 0xe1c #define rTxAGC_Mcs15_Mcs12 0xe1c
#define rZebra1_HSSIEnable 0x0 #define rZebra1_HSSIEnable 0x0
#define rZebra1_TRxEnable1 0x1 #define rZebra1_TRxEnable1 0x1
#define rZebra1_TRxEnable2 0x2 #define rZebra1_TRxEnable2 0x2
@ -269,7 +266,6 @@
#define b3WireAddressLength 0x400 #define b3WireAddressLength 0x400
#define b3WireRFPowerDown 0x1 #define b3WireRFPowerDown 0x1
/*#define bHWSISelect 0x8 */ /*#define bHWSISelect 0x8 */
#define b5GPAPEPolarity 0x40000000
#define b2GPAPEPolarity 0x80000000 #define b2GPAPEPolarity 0x80000000
#define bRFSW_TxDefaultAnt 0x3 #define bRFSW_TxDefaultAnt 0x3
#define bRFSW_TxOptionAnt 0x30 #define bRFSW_TxOptionAnt 0x30
@ -287,7 +283,6 @@
#define bRFSI_ANTSW 0x100 #define bRFSI_ANTSW 0x100
#define bRFSI_ANTSWB 0x200 #define bRFSI_ANTSWB 0x200
#define bRFSI_PAPE 0x400 #define bRFSI_PAPE 0x400
#define bRFSI_PAPE5G 0x800
#define bBandSelect 0x1 #define bBandSelect 0x1
#define bHTSIG2_GI 0x80 #define bHTSIG2_GI 0x80
#define bHTSIG2_Smoothing 0x01 #define bHTSIG2_Smoothing 0x01
@ -819,7 +814,6 @@
#define bOFDMPHY0_End 0xcff #define bOFDMPHY0_End 0xcff
#define bOFDMPHY1_End 0xdff #define bOFDMPHY1_End 0xdff
#define bPMACControl 0x0 #define bPMACControl 0x0
#define bWMACControl 0x1 #define bWMACControl 0x1
#define bWNICControl 0x2 #define bWNICControl 0x2

View File

@ -101,7 +101,6 @@ void rtl92e_set_key(struct net_device *dev, u8 EntryNo, u8 KeyIndex,
else else
usConfig |= BIT15 | (KeyType << 2) | KeyIndex; usConfig |= BIT15 | (KeyType << 2) | KeyIndex;
for (i = 0; i < CAM_CONTENT_COUNT; i++) { for (i = 0; i < CAM_CONTENT_COUNT; i++) {
TargetCommand = i + CAM_CONTENT_COUNT * EntryNo; TargetCommand = i + CAM_CONTENT_COUNT * EntryNo;
TargetCommand |= BIT31 | BIT16; TargetCommand |= BIT31 | BIT16;
@ -149,7 +148,6 @@ void rtl92e_cam_restore(struct net_device *dev)
if ((priv->rtllib->pairwise_key_type == KEY_TYPE_WEP40) || if ((priv->rtllib->pairwise_key_type == KEY_TYPE_WEP40) ||
(priv->rtllib->pairwise_key_type == KEY_TYPE_WEP104)) { (priv->rtllib->pairwise_key_type == KEY_TYPE_WEP104)) {
for (EntryId = 0; EntryId < 4; EntryId++) { for (EntryId = 0; EntryId < 4; EntryId++) {
MacAddr = CAM_CONST_ADDR[EntryId]; MacAddr = CAM_CONST_ADDR[EntryId];
if (priv->rtllib->swcamtable[EntryId].bused) { if (priv->rtllib->swcamtable[EntryId].bused) {

View File

@ -169,7 +169,7 @@ bool rtl92e_set_rf_state(struct net_device *dev,
(priv->rtllib->iw_mode == IW_MODE_ADHOC)) { (priv->rtllib->iw_mode == IW_MODE_ADHOC)) {
if ((priv->rtllib->rf_off_reason > RF_CHANGE_BY_IPS) || if ((priv->rtllib->rf_off_reason > RF_CHANGE_BY_IPS) ||
(change_source > 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; priv->blinked_ingpio = true;
else else
priv->blinked_ingpio = false; 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 slot_time_val;
u8 cur_slot_time = priv->slot_time; u8 cur_slot_time = priv->slot_time;
@ -327,7 +327,7 @@ static void _rtl92e_qos_activate(void *data)
int i; int i;
mutex_lock(&priv->mutex); mutex_lock(&priv->mutex);
if (priv->rtllib->state != RTLLIB_LINKED) if (priv->rtllib->link_state != MAC80211_LINKED)
goto success; goto success;
for (i = 0; i < QOS_QUEUE_NUM; i++) 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; int ret = 0;
u32 size = sizeof(struct rtllib_qos_parameters); u32 size = sizeof(struct rtllib_qos_parameters);
if (priv->rtllib->state != RTLLIB_LINKED) if (priv->rtllib->link_state != MAC80211_LINKED)
return ret; return ret;
if (priv->rtllib->iw_mode != IW_MODE_INFRA) 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) if (!priv || !network)
return 0; return 0;
if (priv->rtllib->state != RTLLIB_LINKED) if (priv->rtllib->link_state != MAC80211_LINKED)
return 0; return 0;
if (priv->rtllib->iw_mode != IW_MODE_INFRA) 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 = (struct cb_desc *)(pnewskb->cb + 8);
tcb_desc->queue_index = BEACON_QUEUE; tcb_desc->queue_index = BEACON_QUEUE;
tcb_desc->data_rate = 2; tcb_desc->data_rate = 2;
tcb_desc->RATRIndex = 7; tcb_desc->ratr_index = 7;
tcb_desc->tx_dis_rate_fallback = 1; tcb_desc->tx_dis_rate_fallback = 1;
tcb_desc->tx_use_drv_assinged_rate = 1; tcb_desc->tx_use_drv_assinged_rate = 1;
skb_push(pnewskb, priv->rtllib->tx_headroom); 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) if (priv->polling_timer_on == 0)
rtl92e_check_rfctrl_gpio_timer(&priv->gpio_polling_timer); 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_softmac_start_protocol(priv->rtllib, 0);
rtllib_reset_queue(priv->rtllib); rtllib_reset_queue(priv->rtllib);
_rtl92e_watchdog_timer_cb(&priv->watch_dog_timer); _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); priv->rtllib->rtllib_ips_leave(dev);
if (priv->rtllib->state == RTLLIB_LINKED) if (priv->rtllib->link_state == MAC80211_LINKED)
rtl92e_leisure_ps_leave(dev); rtl92e_leisure_ps_leave(dev);
priv->up = 0; 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->check_nic_enough_desc = _rtl92e_check_nic_enough_desc;
priv->rtllib->handle_assoc_response = _rtl92e_handle_assoc_response; priv->rtllib->handle_assoc_response = _rtl92e_handle_assoc_response;
priv->rtllib->handle_beacon = _rtl92e_handle_beacon; priv->rtllib->handle_beacon = _rtl92e_handle_beacon;
priv->rtllib->SetWirelessMode = rtl92e_set_wireless_mode; priv->rtllib->set_wireless_mode = rtl92e_set_wireless_mode;
priv->rtllib->LeisurePSLeave = rtl92e_leisure_ps_leave; priv->rtllib->leisure_ps_leave = rtl92e_leisure_ps_leave;
priv->rtllib->SetBWModeHandler = rtl92e_set_bw_mode; priv->rtllib->set_bw_mode_handler = rtl92e_set_bw_mode;
priv->rf_set_chan = rtl92e_set_channel; priv->rf_set_chan = rtl92e_set_channel;
priv->rtllib->start_send_beacons = rtl92e_start_beacon; 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->SetHwRegHandler = rtl92e_set_reg;
priv->rtllib->AllowAllDestAddrHandler = rtl92e_set_monitor_mode; priv->rtllib->AllowAllDestAddrHandler = rtl92e_set_monitor_mode;
priv->rtllib->SetFwCmdHandler = NULL; priv->rtllib->init_gain_handler = rtl92e_init_gain;
priv->rtllib->InitialGainHandler = rtl92e_init_gain;
priv->rtllib->rtllib_ips_leave_wq = rtl92e_rtllib_ips_leave_wq; priv->rtllib->rtllib_ips_leave_wq = rtl92e_rtllib_ips_leave_wq;
priv->rtllib->rtllib_ips_leave = rtl92e_rtllib_ips_leave; priv->rtllib->rtllib_ips_leave = rtl92e_rtllib_ips_leave;
priv->rtllib->LedControlHandler = NULL;
priv->rtllib->UpdateBeaconInterruptHandler = NULL;
priv->rtllib->ScanOperationBackupHandler = rtl92e_scan_op_backup; 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 && if (rfState == rf_on &&
(priv->rtllib->iw_mode == IW_MODE_INFRA) && (priv->rtllib->iw_mode == IW_MODE_INFRA) &&
(priv->rtllib->state == RTLLIB_LINKED)) (priv->rtllib->link_state == MAC80211_LINKED))
RxResetType = _rtl92e_rx_check_stuck(dev); RxResetType = _rtl92e_rx_check_stuck(dev);
if (TxResetType == RESET_TYPE_NORMAL || if (TxResetType == RESET_TYPE_NORMAL ||
@ -1056,7 +1051,7 @@ RESET_START:
mutex_lock(&priv->wx_mutex); mutex_lock(&priv->wx_mutex);
if (priv->rtllib->state == RTLLIB_LINKED) if (priv->rtllib->link_state == MAC80211_LINKED)
rtl92e_leisure_ps_leave(dev); rtl92e_leisure_ps_leave(dev);
if (priv->up) { if (priv->up) {
@ -1078,9 +1073,9 @@ RESET_START:
rtl92e_dm_deinit(dev); rtl92e_dm_deinit(dev);
rtllib_stop_scan_syncro(ieee); rtllib_stop_scan_syncro(ieee);
if (ieee->state == RTLLIB_LINKED) { if (ieee->link_state == MAC80211_LINKED) {
mutex_lock(&ieee->wx_mutex); 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); rtllib_stop_send_beacons(priv->rtllib);
del_timer_sync(&ieee->associate_timer); del_timer_sync(&ieee->associate_timer);
cancel_delayed_work(&ieee->associate_retry_wq); cancel_delayed_work(&ieee->associate_retry_wq);
@ -1088,7 +1083,7 @@ RESET_START:
netif_carrier_off(dev); netif_carrier_off(dev);
mutex_unlock(&ieee->wx_mutex); mutex_unlock(&ieee->wx_mutex);
} else { } 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); rtllib_softmac_stop_protocol(priv->rtllib, 0, true);
} }
@ -1115,14 +1110,14 @@ RESET_START:
rtl92e_enable_hw_security_config(dev); 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) { IW_MODE_INFRA) {
ieee->set_chan(ieee->dev, ieee->set_chan(ieee->dev,
ieee->current_network.channel); ieee->current_network.channel);
schedule_work(&ieee->associate_complete_wq); 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) { IW_MODE_ADHOC) {
ieee->set_chan(ieee->dev, ieee->set_chan(ieee->dev,
ieee->current_network.channel); ieee->current_network.channel);
@ -1186,7 +1181,7 @@ static void _rtl92e_watchdog_wq_cb(void *data)
if (!priv->up || priv->hw_radio_off) if (!priv->up || priv->hw_radio_off)
return; return;
if (priv->rtllib->state >= RTLLIB_LINKED) { if (priv->rtllib->link_state >= MAC80211_LINKED) {
if (priv->rtllib->CntAfterLink < 2) if (priv->rtllib->CntAfterLink < 2)
priv->rtllib->CntAfterLink++; priv->rtllib->CntAfterLink++;
} else { } else {
@ -1196,8 +1191,8 @@ static void _rtl92e_watchdog_wq_cb(void *data)
rtl92e_dm_watchdog(dev); rtl92e_dm_watchdog(dev);
if (!rtllib_act_scanning(priv->rtllib, false)) { if (!rtllib_act_scanning(priv->rtllib, false)) {
if ((ieee->iw_mode == IW_MODE_INFRA) && (ieee->state == if ((ieee->iw_mode == IW_MODE_INFRA) && (ieee->link_state ==
RTLLIB_NOLINK) && MAC80211_NOLINK) &&
(ieee->rf_power_state == rf_on) && !ieee->is_set_key && (ieee->rf_power_state == rf_on) && !ieee->is_set_key &&
(!ieee->proto_stoppping) && !ieee->wx_set_enc) { (!ieee->proto_stoppping) && !ieee->wx_set_enc) {
if ((ieee->pwr_save_ctrl.ReturnPoint == 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)) { IW_MODE_INFRA) && (!ieee->net_promiscuous_md)) {
if (ieee->link_detect_info.NumRxOkInPeriod > 100 || if (ieee->link_detect_info.NumRxOkInPeriod > 100 ||
ieee->link_detect_info.NumTxOkInPeriod > 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.bHigherBusyTraffic = bHigherBusyTraffic;
ieee->link_detect_info.bHigherBusyRxTraffic = bHigherBusyRxTraffic; 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 TotalRxBcnNum = 0;
u32 TotalRxDataNum = 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", "===>%s(): AP is power off, chan:%d, connect another one\n",
__func__, priv->chan); __func__, priv->chan);
ieee->state = RTLLIB_ASSOCIATING; ieee->link_state = RTLLIB_ASSOCIATING;
RemovePeerTS(priv->rtllib, RemovePeerTS(priv->rtllib,
priv->rtllib->current_network.bssid); priv->rtllib->current_network.bssid);
ieee->is_roaming = true; ieee->is_roaming = true;
ieee->is_set_key = false; ieee->is_set_key = false;
ieee->link_change(dev); ieee->link_change(dev);
if (ieee->LedControlHandler)
ieee->LedControlHandler(ieee->dev,
LED_CTL_START_TO_LINK);
notify_wx_assoc_event(ieee); notify_wx_assoc_event(ieee);
if (!(ieee->rtllib_ap_sec_type(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; return 0;
} }
tcb_desc->RATRIndex = 7; tcb_desc->ratr_index = 7;
tcb_desc->tx_dis_rate_fallback = 1; tcb_desc->tx_dis_rate_fallback = 1;
tcb_desc->tx_use_drv_assinged_rate = 1; tcb_desc->tx_use_drv_assinged_rate = 1;
tcb_desc->bTxEnableFwCalcDur = 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); MAX_DEV_ADDR_SIZE);
struct tx_desc *pdesc = NULL; struct tx_desc *pdesc = NULL;
struct rtllib_hdr_1addr *header = NULL; struct rtllib_hdr_1addr *header = NULL;
u16 fc = 0, type = 0;
u8 *pda_addr = NULL; u8 *pda_addr = NULL;
int idx; int idx;
u32 fwinfo_size = 0; 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); fwinfo_size = sizeof(struct tx_fwinfo_8190pci);
header = (struct rtllib_hdr_1addr *)(((u8 *)skb->data) + fwinfo_size); 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; pda_addr = header->addr1;
if (!is_broadcast_ether_addr(pda_addr) && !is_multicast_ether_addr(pda_addr)) 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); spin_unlock_irqrestore(&priv->irq_th_lock, flags);
return skb->len; 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); rtl92e_fill_tx_desc(dev, pdesc, tcb_desc, skb);
__skb_queue_tail(&ring->queue, skb); __skb_queue_tail(&ring->queue, skb);
pdesc->OWN = 1; pdesc->OWN = 1;
@ -1779,8 +1762,6 @@ static void _rtl92e_rx_normal(struct net_device *dev)
struct r8192_priv *priv = rtllib_priv(dev); struct r8192_priv *priv = rtllib_priv(dev);
struct rtllib_hdr_1addr *rtllib_hdr = NULL; struct rtllib_hdr_1addr *rtllib_hdr = NULL;
bool unicast_packet = false; bool unicast_packet = false;
bool bLedBlinking = true;
u16 fc = 0, type = 0;
u32 skb_len = 0; u32 skb_len = 0;
int rx_queue_idx = RX_MPDU_QUEUE; int rx_queue_idx = RX_MPDU_QUEUE;
@ -1788,7 +1769,6 @@ static void _rtl92e_rx_normal(struct net_device *dev)
.signal = 0, .signal = 0,
.noise = (u8)-98, .noise = (u8)-98,
.rate = 0, .rate = 0,
.freq = RTLLIB_24GHZ_BAND,
}; };
unsigned int count = priv->rxringcount; unsigned int count = priv->rxringcount;
@ -1824,16 +1804,6 @@ static void _rtl92e_rx_normal(struct net_device *dev)
/* unicast packet */ /* unicast packet */
unicast_packet = true; 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; skb_len = skb->len;
if (!rtllib_rx(priv->rtllib, skb, &stats)) { if (!rtllib_rx(priv->rtllib, skb, &stats)) {

View File

@ -231,7 +231,6 @@ struct r8192_priv {
struct rt_stats stats; struct rt_stats stats;
struct iw_statistics wstats; struct iw_statistics wstats;
short (*rf_set_sens)(struct net_device *dev, short sens);
u8 (*rf_set_chan)(struct net_device *dev, u8 ch); u8 (*rf_set_chan)(struct net_device *dev, u8 ch);
struct rx_desc *rx_ring[MAX_RX_QUEUE]; struct rx_desc *rx_ring[MAX_RX_QUEUE];
@ -271,8 +270,6 @@ struct r8192_priv {
short promisc; short promisc;
short chan; short chan;
short sens;
short max_sens;
bool ps_force; bool ps_force;
u32 irq_mask[2]; u32 irq_mask[2];

View File

@ -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_init_bandwidth_autoswitch(struct net_device *dev);
static void _rtl92e_dm_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_check_tx_power_tracking(struct net_device *dev);
static void _rtl92e_dm_bb_initialgain_restore(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_init_rx_path_selection(struct net_device *dev);
static void _rtl92e_dm_rx_path_sel_byrssi(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_init_fsync(struct net_device *dev);
static void _rtl92e_dm_deinit_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) void rtl92e_dm_deinit(struct net_device *dev)
{ {
_rtl92e_dm_deinit_fsync(dev); _rtl92e_dm_deinit_fsync(dev);
} }
void rtl92e_dm_watchdog(struct net_device *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) void rtl92e_init_adaptive_rate(struct net_device *dev)
{ {
struct r8192_priv *priv = rtllib_priv(dev); struct r8192_priv *priv = rtllib_priv(dev);
struct rate_adaptive *pra = &priv->rate_adaptive; 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) if (priv->rtllib->mode != WIRELESS_MODE_N_24G)
return; return;
if (priv->rtllib->state == RTLLIB_LINKED) { if (priv->rtllib->link_state == MAC80211_LINKED) {
bshort_gi_enabled = (ht_info->cur_tx_bw40mhz && bshort_gi_enabled = (ht_info->cur_tx_bw40mhz &&
ht_info->bCurShortGI40MHz) || ht_info->bCurShortGI40MHz) ||
(!ht_info->cur_tx_bw40mhz && (!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 (pra->ping_rssi_enable) {
if (priv->undecorated_smoothed_pwdb < 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 < if ((priv->undecorated_smoothed_pwdb <
(long)pra->ping_rssi_thresh_for_ra) || (long)pra->ping_rssi_thresh_for_ra) ||
ping_rssi_state) { 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; priv->rtllib->bdynamic_txpower_enable = false;
for (j = 0; j <= 30; j++) { for (j = 0; j <= 30; j++) {
tx_cmd.op = TXCMD_SET_TX_PWR_TRACKING; tx_cmd.op = TXCMD_SET_TX_PWR_TRACKING;
tx_cmd.length = 4; tx_cmd.length = 4;
tx_cmd.value = priv->pwr_track >> 24; 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++) { for (k = 0; k < 5; k++) {
if (k != 4) if (k != 4)
tmp_report[k] = rtl92e_readb(dev, tmp_report[k] = rtl92e_readb(dev,
Tssi_Report_Value1+k); Tssi_Report_Value1 + k);
else else
tmp_report[k] = rtl92e_readb(dev, tmp_report[k] = rtl92e_readb(dev,
Tssi_Report_Value2); 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) { } else if (priv->rtllib->current_network.channel != 14 && priv->bcck_in_ch14) {
priv->bcck_in_ch14 = false; priv->bcck_in_ch14 = false;
rtl92e_dm_cck_txpower_adjust(dev, priv->bcck_in_ch14); rtl92e_dm_cck_txpower_adjust(dev, priv->bcck_in_ch14);
} else } else {
rtl92e_dm_cck_txpower_adjust(dev, priv->bcck_in_ch14); rtl92e_dm_cck_txpower_adjust(dev, priv->bcck_in_ch14);
}
} }
if (priv->cck_present_attn_diff <= -12 || 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 #define ThermalMeterVal 9
struct r8192_priv *priv = rtllib_priv(dev); struct r8192_priv *priv = rtllib_priv(dev);
u32 tmpRegA, TempCCk; u32 tmp_reg, tmp_cck;
u8 tmpOFDMindex, tmpCCKindex, tmpCCK20Mindex, tmpCCK40Mindex, tmpval; u8 tmp_ofdm_index, tmp_cck_index, tmp_cck_20m_index, tmp_cck_40m_index, tmpval;
int i = 0, CCKSwingNeedUpdate = 0; int i = 0, CCKSwingNeedUpdate = 0;
if (!priv->tx_pwr_tracking_init) { if (!priv->tx_pwr_tracking_init) {
tmpRegA = rtl92e_get_bb_reg(dev, rOFDM0_XATxIQImbalance, tmp_reg = rtl92e_get_bb_reg(dev, rOFDM0_XATxIQImbalance,
bMaskDWord); bMaskDWord);
for (i = 0; i < OFDM_TABLE_LEN; i++) { for (i = 0; i < OFDM_TABLE_LEN; i++) {
if (tmpRegA == OFDMSwingTable[i]) if (tmp_reg == OFDMSwingTable[i])
priv->ofdm_index[0] = 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++) { 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; priv->cck_index = i;
break; break;
} }
@ -680,42 +674,42 @@ static void _rtl92e_dm_tx_power_tracking_cb_thermal(struct net_device *dev)
return; return;
} }
tmpRegA = rtl92e_get_rf_reg(dev, RF90_PATH_A, 0x12, 0x078); tmp_reg = rtl92e_get_rf_reg(dev, RF90_PATH_A, 0x12, 0x078);
if (tmpRegA < 3 || tmpRegA > 13) if (tmp_reg < 3 || tmp_reg > 13)
return; return;
if (tmpRegA >= 12) if (tmp_reg >= 12)
tmpRegA = 12; tmp_reg = 12;
priv->thermal_meter[0] = ThermalMeterVal; priv->thermal_meter[0] = ThermalMeterVal;
priv->thermal_meter[1] = ThermalMeterVal; priv->thermal_meter[1] = ThermalMeterVal;
if (priv->thermal_meter[0] >= (u8)tmpRegA) { if (priv->thermal_meter[0] >= (u8)tmp_reg) {
tmpOFDMindex = tmpCCK20Mindex = 6+(priv->thermal_meter[0] - tmp_ofdm_index = 6 + (priv->thermal_meter[0] - (u8)tmp_reg);
(u8)tmpRegA); tmp_cck_20m_index = tmp_ofdm_index;
tmpCCK40Mindex = tmpCCK20Mindex - 6; tmp_cck_40m_index = tmp_cck_20m_index - 6;
if (tmpOFDMindex >= OFDM_TABLE_LEN) if (tmp_ofdm_index >= OFDM_TABLE_LEN)
tmpOFDMindex = OFDM_TABLE_LEN - 1; tmp_ofdm_index = OFDM_TABLE_LEN - 1;
if (tmpCCK20Mindex >= CCK_TABLE_LEN) if (tmp_cck_20m_index >= CCK_TABLE_LEN)
tmpCCK20Mindex = CCK_TABLE_LEN - 1; tmp_cck_20m_index = CCK_TABLE_LEN - 1;
if (tmpCCK40Mindex >= CCK_TABLE_LEN) if (tmp_cck_40m_index >= CCK_TABLE_LEN)
tmpCCK40Mindex = CCK_TABLE_LEN - 1; tmp_cck_40m_index = CCK_TABLE_LEN - 1;
} else { } else {
tmpval = (u8)tmpRegA - priv->thermal_meter[0]; tmpval = (u8)tmp_reg - priv->thermal_meter[0];
if (tmpval >= 6) { if (tmpval >= 6) {
tmpOFDMindex = 0; tmp_ofdm_index = 0;
tmpCCK20Mindex = 0; tmp_cck_20m_index = 0;
} else { } else {
tmpOFDMindex = 6 - tmpval; tmp_ofdm_index = 6 - tmpval;
tmpCCK20Mindex = 6 - tmpval; tmp_cck_20m_index = 6 - tmpval;
} }
tmpCCK40Mindex = 0; tmp_cck_40m_index = 0;
} }
if (priv->current_chnl_bw != HT_CHANNEL_WIDTH_20) if (priv->current_chnl_bw != HT_CHANNEL_WIDTH_20)
tmpCCKindex = tmpCCK40Mindex; tmp_cck_index = tmp_cck_40m_index;
else else
tmpCCKindex = tmpCCK20Mindex; tmp_cck_index = tmp_cck_20m_index;
priv->rec_cck_20m_idx = tmpCCK20Mindex; priv->rec_cck_20m_idx = tmp_cck_20m_index;
priv->rec_cck_40m_idx = tmpCCK40Mindex; priv->rec_cck_40m_idx = tmp_cck_40m_index;
if (priv->rtllib->current_network.channel == 14 && if (priv->rtllib->current_network.channel == 14 &&
!priv->bcck_in_ch14) { !priv->bcck_in_ch14) {
@ -727,15 +721,15 @@ static void _rtl92e_dm_tx_power_tracking_cb_thermal(struct net_device *dev)
CCKSwingNeedUpdate = 1; CCKSwingNeedUpdate = 1;
} }
if (priv->cck_index != tmpCCKindex) { if (priv->cck_index != tmp_cck_index) {
priv->cck_index = tmpCCKindex; priv->cck_index = tmp_cck_index;
CCKSwingNeedUpdate = 1; CCKSwingNeedUpdate = 1;
} }
if (CCKSwingNeedUpdate) if (CCKSwingNeedUpdate)
rtl92e_dm_cck_txpower_adjust(dev, priv->bcck_in_ch14); rtl92e_dm_cck_txpower_adjust(dev, priv->bcck_in_ch14);
if (priv->ofdm_index[0] != tmpOFDMindex) { if (priv->ofdm_index[0] != tmp_ofdm_index) {
priv->ofdm_index[0] = tmpOFDMindex; priv->ofdm_index[0] = tmp_ofdm_index;
rtl92e_set_bb_reg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, rtl92e_set_bb_reg(dev, rOFDM0_XATxIQImbalance, bMaskDWord,
OFDMSwingTable[priv->ofdm_index[0]]); 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) static void _rtl92e_dm_initialize_tx_power_tracking_tssi(struct net_device *dev)
{ {
struct r8192_priv *priv = rtllib_priv(dev); struct r8192_priv *priv = rtllib_priv(dev);
priv->btxpower_tracking = true; priv->btxpower_tracking = true;
priv->txpower_count = 0; priv->txpower_count = 0;
priv->tx_pwr_tracking_init = false; priv->tx_pwr_tracking_init = false;
} }
static void _rtl92e_dm_init_tx_power_tracking_thermal(struct net_device *dev) static void _rtl92e_dm_init_tx_power_tracking_thermal(struct net_device *dev)
{ {
struct r8192_priv *priv = rtllib_priv(dev); struct r8192_priv *priv = rtllib_priv(dev);
if (priv->rtllib->FwRWRF) if (priv->rtllib->FwRWRF)
priv->btxpower_tracking = true; priv->btxpower_tracking = true;
else else
@ -799,12 +790,10 @@ static void _rtl92e_dm_check_tx_power_tracking_tssi(struct net_device *dev)
return; return;
tx_power_track_counter++; tx_power_track_counter++;
if (tx_power_track_counter >= 180) { if (tx_power_track_counter >= 180) {
schedule_delayed_work(&priv->txpower_tracking_wq, 0); schedule_delayed_work(&priv->txpower_tracking_wq, 0);
tx_power_track_counter = 0; tx_power_track_counter = 0;
} }
} }
static void _rtl92e_dm_check_tx_power_tracking_thermal(struct net_device *dev) 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"); netdev_info(dev, "===============>Schedule TxPowerTrackingWorkItem\n");
schedule_delayed_work(&priv->txpower_tracking_wq, 0); schedule_delayed_work(&priv->txpower_tracking_wq, 0);
TM_Trigger = 0; TM_Trigger = 0;
} }
static void _rtl92e_dm_check_tx_power_tracking(struct net_device *dev) 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); rtl92e_set_bb_reg(dev, rCCK0_TxFilter1, bMaskHWord, TempVal);
TempVal = (u32)((dm_cck_tx_bb_gain[attenuation][2]) + TempVal = (u32)((dm_cck_tx_bb_gain[attenuation][2]) +
(dm_cck_tx_bb_gain[attenuation][3] << 8) + (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)); (dm_cck_tx_bb_gain[attenuation][5] << 24));
rtl92e_set_bb_reg(dev, rCCK0_TxFilter2, bMaskDWord, TempVal); rtl92e_set_bb_reg(dev, rCCK0_TxFilter2, bMaskDWord, TempVal);
TempVal = (u32)(dm_cck_tx_bb_gain[attenuation][6] + 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); rtl92e_set_bb_reg(dev, rCCK0_TxFilter1, bMaskHWord, TempVal);
TempVal = (u32)((dm_cck_tx_bb_gain_ch14[attenuation][2]) + 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][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)); (dm_cck_tx_bb_gain_ch14[attenuation][5] << 24));
rtl92e_set_bb_reg(dev, rCCK0_TxFilter2, bMaskDWord, TempVal); rtl92e_set_bb_reg(dev, rCCK0_TxFilter2, bMaskDWord, TempVal);
TempVal = (u32)((dm_cck_tx_bb_gain_ch14[attenuation][6]) + 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); rtl92e_set_bb_reg(dev, rCCK0_TxFilter1, bMaskHWord, TempVal);
TempVal = CCKSwingTable_Ch1_Ch13[priv->cck_index][2] + TempVal = CCKSwingTable_Ch1_Ch13[priv->cck_index][2] +
(CCKSwingTable_Ch1_Ch13[priv->cck_index][3] << 8) + (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); (CCKSwingTable_Ch1_Ch13[priv->cck_index][5] << 24);
rtl92e_set_bb_reg(dev, rCCK0_TxFilter2, bMaskDWord, TempVal); rtl92e_set_bb_reg(dev, rCCK0_TxFilter2, bMaskDWord, TempVal);
TempVal = CCKSwingTable_Ch1_Ch13[priv->cck_index][6] + 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); rtl92e_set_bb_reg(dev, rCCK0_TxFilter1, bMaskHWord, TempVal);
TempVal = CCKSwingTable_Ch14[priv->cck_index][2] + TempVal = CCKSwingTable_Ch14[priv->cck_index][2] +
(CCKSwingTable_Ch14[priv->cck_index][3] << 8) + (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); (CCKSwingTable_Ch14[priv->cck_index][5] << 24);
rtl92e_set_bb_reg(dev, rCCK0_TxFilter2, bMaskDWord, TempVal); rtl92e_set_bb_reg(dev, rCCK0_TxFilter2, bMaskDWord, TempVal);
TempVal = CCKSwingTable_Ch14[priv->cck_index][6] + 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); 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_tx_power_reset_recovery(dev);
_rtl92e_dm_bb_initialgain_restore(dev); _rtl92e_dm_bb_initialgain_restore(dev);
} }
static void _rtl92e_dm_bb_initialgain_restore(struct net_device *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, rtl92e_set_bb_reg(dev, rCCK0_CCA, bit_mask,
(u32)priv->initgain_backup.cca); (u32)priv->initgain_backup.cca);
rtl92e_set_bb_reg(dev, UFWP, bMaskByte1, 0x1); rtl92e_set_bb_reg(dev, UFWP, bMaskByte1, 0x1);
} }
void rtl92e_dm_backup_state(struct net_device *dev) 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) static void _rtl92e_dm_ctrl_initgain_byrssi(struct net_device *dev)
{ {
if (!dm_digtable.dig_enable_flag) if (!dm_digtable.dig_enable_flag)
return; 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; 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; dm_digtable.cur_sta_connect_state = DIG_STA_CONNECT;
else else
dm_digtable.cur_sta_connect_state = DIG_STA_DISCONNECT; dm_digtable.cur_sta_connect_state = DIG_STA_DISCONNECT;
dm_digtable.rssi_val = priv->undecorated_smoothed_pwdb; dm_digtable.rssi_val = priv->undecorated_smoothed_pwdb;
_rtl92e_dm_initial_gain(dev); _rtl92e_dm_initial_gain(dev);
_rtl92e_dm_pd_th(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) if (dm_digtable.dig_algorithm_switch)
dm_digtable.dig_algorithm_switch = 0; dm_digtable.dig_algorithm_switch = 0;
dm_digtable.pre_sta_connect_state = dm_digtable.cur_sta_connect_state; 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) 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; dm_digtable.dig_algorithm_switch = 0;
} }
if (priv->rtllib->state != RTLLIB_LINKED) if (priv->rtllib->link_state != MAC80211_LINKED)
return; return;
if ((priv->undecorated_smoothed_pwdb > dm_digtable.rssi_low_thresh) && 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); rtl92e_writeb(dev, rOFDM0_XDAGCCore1, 0x17);
if (priv->current_chnl_bw != HT_CHANNEL_WIDTH_20) if (priv->current_chnl_bw != HT_CHANNEL_WIDTH_20)
rtl92e_writeb(dev, (rOFDM0_XATxAFE+3), 0x00); rtl92e_writeb(dev, (rOFDM0_XATxAFE + 3), 0x00);
else else
rtl92e_writeb(dev, rOFDM0_RxDetector1, 0x42); 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) if (priv->current_chnl_bw != HT_CHANNEL_WIDTH_20)
rtl92e_writeb(dev, (rOFDM0_XATxAFE+3), 0x20); rtl92e_writeb(dev, (rOFDM0_XATxAFE + 3), 0x20);
else else
rtl92e_writeb(dev, rOFDM0_RxDetector1, 0x44); 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); _rtl92e_dm_ctrl_initgain_byrssi_highpwr(dev);
} }
static void _rtl92e_dm_ctrl_initgain_byrssi_highpwr(struct net_device *dev) static void _rtl92e_dm_ctrl_initgain_byrssi_highpwr(struct net_device *dev)
{ {
struct r8192_priv *priv = rtllib_priv(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; dm_digtable.dig_highpwr_state = DM_STA_DIG_ON;
if (priv->current_chnl_bw != HT_CHANNEL_WIDTH_20) if (priv->current_chnl_bw != HT_CHANNEL_WIDTH_20)
rtl92e_writeb(dev, (rOFDM0_XATxAFE+3), 0x10); rtl92e_writeb(dev, (rOFDM0_XATxAFE + 3), 0x10);
else else
rtl92e_writeb(dev, rOFDM0_RxDetector1, 0x43); rtl92e_writeb(dev, rOFDM0_RxDetector1, 0x43);
} else { } else {
@ -1228,7 +1210,7 @@ static void _rtl92e_dm_ctrl_initgain_byrssi_highpwr(struct net_device *dev)
(priv->undecorated_smoothed_pwdb >= (priv->undecorated_smoothed_pwdb >=
dm_digtable.rssi_high_thresh)) { dm_digtable.rssi_high_thresh)) {
if (priv->current_chnl_bw != HT_CHANNEL_WIDTH_20) if (priv->current_chnl_bw != HT_CHANNEL_WIDTH_20)
rtl92e_writeb(dev, (rOFDM0_XATxAFE+3), 0x20); rtl92e_writeb(dev, (rOFDM0_XATxAFE + 3), 0x20);
else else
rtl92e_writeb(dev, rOFDM0_RxDetector1, 0x44); rtl92e_writeb(dev, rOFDM0_RxDetector1, 0x44);
} }
@ -1339,18 +1321,18 @@ static void _rtl92e_dm_pd_th(struct net_device *dev)
(initialized <= 3) || force_write) { (initialized <= 3) || force_write) {
if (dm_digtable.curpd_thstate == DIG_PD_AT_LOW_POWER) { if (dm_digtable.curpd_thstate == DIG_PD_AT_LOW_POWER) {
if (priv->current_chnl_bw != HT_CHANNEL_WIDTH_20) if (priv->current_chnl_bw != HT_CHANNEL_WIDTH_20)
rtl92e_writeb(dev, (rOFDM0_XATxAFE+3), 0x00); rtl92e_writeb(dev, (rOFDM0_XATxAFE + 3), 0x00);
else else
rtl92e_writeb(dev, rOFDM0_RxDetector1, 0x42); rtl92e_writeb(dev, rOFDM0_RxDetector1, 0x42);
} else if (dm_digtable.curpd_thstate == } else if (dm_digtable.curpd_thstate ==
DIG_PD_AT_NORMAL_POWER) { DIG_PD_AT_NORMAL_POWER) {
if (priv->current_chnl_bw != HT_CHANNEL_WIDTH_20) if (priv->current_chnl_bw != HT_CHANNEL_WIDTH_20)
rtl92e_writeb(dev, (rOFDM0_XATxAFE+3), 0x20); rtl92e_writeb(dev, (rOFDM0_XATxAFE + 3), 0x20);
else else
rtl92e_writeb(dev, rOFDM0_RxDetector1, 0x44); rtl92e_writeb(dev, rOFDM0_RxDetector1, 0x44);
} else if (dm_digtable.curpd_thstate == DIG_PD_AT_HIGH_POWER) { } else if (dm_digtable.curpd_thstate == DIG_PD_AT_HIGH_POWER) {
if (priv->current_chnl_bw != HT_CHANNEL_WIDTH_20) if (priv->current_chnl_bw != HT_CHANNEL_WIDTH_20)
rtl92e_writeb(dev, (rOFDM0_XATxAFE+3), 0x10); rtl92e_writeb(dev, (rOFDM0_XATxAFE + 3), 0x10);
else else
rtl92e_writeb(dev, rOFDM0_RxDetector1, 0x43); 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; reset_cnt = priv->reset_count;
} }
if ((dm_digtable.precs_ratio_state != dm_digtable.curcs_ratio_state) || if ((dm_digtable.precs_ratio_state != dm_digtable.curcs_ratio_state) ||
!initialized || force_write) { !initialized || force_write) {
if (dm_digtable.curcs_ratio_state == DIG_CS_RATIO_LOWER) 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) if (priv->rtllib->iw_mode == IW_MODE_ADHOC)
goto dm_CheckEdcaTurbo_EXIT; goto dm_CheckEdcaTurbo_EXIT;
if (priv->rtllib->state != RTLLIB_LINKED) if (priv->rtllib->link_state != MAC80211_LINKED)
goto dm_CheckEdcaTurbo_EXIT; goto dm_CheckEdcaTurbo_EXIT;
if (priv->rtllib->ht_info->iot_action & HT_IOT_ACT_DISABLE_EDCA_TURBO) if (priv->rtllib->ht_info->iot_action & HT_IOT_ACT_DISABLE_EDCA_TURBO)
goto dm_CheckEdcaTurbo_EXIT; goto dm_CheckEdcaTurbo_EXIT;
@ -1435,7 +1416,7 @@ static void _rtl92e_dm_check_edca_turbo(struct net_device *dev)
curTxOkCnt = priv->stats.txbytesunicast - lastTxOkCnt; curTxOkCnt = priv->stats.txbytesunicast - lastTxOkCnt;
curRxOkCnt = priv->stats.rxbytesunicast - lastRxOkCnt; curRxOkCnt = priv->stats.rxbytesunicast - lastRxOkCnt;
if (ht_info->iot_action & HT_IOT_ACT_EDCA_BIAS_ON_RX) { 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 || if (priv->bis_cur_rdlstate ||
!priv->bcurrent_turbo_EDCA) { !priv->bcurrent_turbo_EDCA) {
rtl92e_writel(dev, EDCAPARA_BE, 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; priv->bcurrent_turbo_EDCA = true;
} else { } else {
if (curRxOkCnt > 4*curTxOkCnt) { if (curRxOkCnt > 4 * curTxOkCnt) {
if (!priv->bis_cur_rdlstate || if (!priv->bis_cur_rdlstate ||
!priv->bcurrent_turbo_EDCA) { !priv->bcurrent_turbo_EDCA) {
if (priv->rtllib->mode == WIRELESS_MODE_G) 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]); edca_setting_UL[ht_info->IOTPeer]);
priv->bis_cur_rdlstate = false; priv->bis_cur_rdlstate = false;
} }
} }
priv->bcurrent_turbo_EDCA = true; priv->bcurrent_turbo_EDCA = true;
@ -1489,7 +1469,6 @@ static void _rtl92e_dm_check_edca_turbo(struct net_device *dev)
} }
} }
dm_CheckEdcaTurbo_EXIT: dm_CheckEdcaTurbo_EXIT:
priv->rtllib->bis_any_nonbepkts = false; priv->rtllib->bis_any_nonbepkts = false;
lastTxOkCnt = priv->stats.txbytesunicast; 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) { if (ht_info->IOTPeer == HT_IOT_PEER_BROADCOM) {
curTxOkCnt = priv->stats.txbytesunicast - lastTxOkCnt; curTxOkCnt = priv->stats.txbytesunicast - lastTxOkCnt;
curRxOkCnt = priv->stats.rxbytesunicast - lastRxOkCnt; curRxOkCnt = priv->stats.rxbytesunicast - lastRxOkCnt;
if (curRxOkCnt > 4*curTxOkCnt) if (curRxOkCnt > 4 * curTxOkCnt)
ht_info->iot_action &= ~HT_IOT_ACT_FORCED_CTS2SELF; ht_info->iot_action &= ~HT_IOT_ACT_FORCED_CTS2SELF;
else else
ht_info->iot_action |= HT_IOT_ACT_FORCED_CTS2SELF; 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); 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)) { if (priv->hw_radio_off && (rf_power_state_to_set == rf_on)) {
netdev_info(dev, "gpiochangeRF - HW Radio ON\n"); 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); rfpath = rtl92e_readb(dev, 0xc04);
for (i = 0; i < RF90_PATH_MAX; i++) { for (i = 0; i < RF90_PATH_MAX; i++) {
if (rfpath & (0x01<<i)) if (rfpath & (0x01 << i))
priv->brfpath_rxenable[i] = true; priv->brfpath_rxenable[i] = true;
else else
priv->brfpath_rxenable[i] = false; 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; u8 update_cck_rx_path;
if (!cck_Rx_Path_initialized) { 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; 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; 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) >= if ((tmp_max_rssi - tmp_min_rssi) >=
dm_rx_path_sel_table.diff_th) { dm_rx_path_sel_table.diff_th) {
dm_rx_path_sel_table.rf_enable_rssi_th[min_rssi_index] = 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, rtl92e_set_bb_reg(dev, rOFDM0_TRxPathEnable,
0x1<<min_rssi_index, 0x0); 0x1 << min_rssi_index, 0x0);
rtl92e_set_bb_reg(dev, rOFDM1_TRxPathEnable, rtl92e_set_bb_reg(dev, rOFDM1_TRxPathEnable,
0x1<<min_rssi_index, 0x0); 0x1 << min_rssi_index, 0x0);
disabled_rf_cnt++; disabled_rf_cnt++;
} }
if (dm_rx_path_sel_table.cck_method == CCK_Rx_Version_1) { 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) { 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); (cck_optional_Rx);
rtl92e_set_bb_reg(dev, rCCK0_AFESetting, 0x0f000000, rtl92e_set_bb_reg(dev, rCCK0_AFESetting, 0x0f000000,
dm_rx_path_sel_table.cck_rx_path); 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); schedule_delayed_work(&priv->rfpath_check_wq, 0);
} }
static void _rtl92e_dm_init_fsync(struct net_device *dev) static void _rtl92e_dm_init_fsync(struct net_device *dev)
{ {
struct r8192_priv *priv = rtllib_priv(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); timer_setup(&priv->fsync_timer, _rtl92e_dm_fsync_timer_callback, 0);
} }
static void _rtl92e_dm_deinit_fsync(struct net_device *dev) static void _rtl92e_dm_deinit_fsync(struct net_device *dev)
{ {
struct r8192_priv *priv = rtllib_priv(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 bSwitchFromCountDiff = false;
bool bDoubleTimeInterval = false; bool bDoubleTimeInterval = false;
if (priv->rtllib->state == RTLLIB_LINKED && if (priv->rtllib->link_state == MAC80211_LINKED &&
priv->rtllib->bfsync_enable && priv->rtllib->bfsync_enable &&
(priv->rtllib->ht_info->iot_action & HT_IOT_ACT_CDD_FSYNC)) { (priv->rtllib->ht_info->iot_action & HT_IOT_ACT_CDD_FSYNC)) {
u32 rate_bitmap; u32 rate_bitmap;
@ -1864,7 +1840,6 @@ static void _rtl92e_dm_fsync_timer_callback(struct timer_list *t)
else else
rate_count_diff = rate_count - priv->rate_record; rate_count_diff = rate_count - priv->rate_record;
if (rate_count_diff < priv->rate_count_diff_rec) { if (rate_count_diff < priv->rate_count_diff_rec) {
u32 DiffNum = priv->rate_count_diff_rec - u32 DiffNum = priv->rate_count_diff_rec -
rate_count_diff; rate_count_diff;
if (DiffNum >= if (DiffNum >=
@ -2005,7 +1980,6 @@ static void _rtl92e_dm_start_sw_fsync(struct net_device *dev)
add_timer(&priv->fsync_timer); add_timer(&priv->fsync_timer);
rtl92e_writel(dev, rOFDM0_RxDetector2, 0x465c12cd); rtl92e_writel(dev, rOFDM0_RxDetector2, 0x465c12cd);
} }
static void _rtl92e_dm_check_fsync(struct net_device *dev) 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 u8 reg_c38_State = RegC38_Default;
static u32 reset_cnt; 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) { priv->rtllib->ht_info->IOTPeer == HT_IOT_PEER_BROADCOM) {
if (priv->rtllib->bfsync_enable == 0) { if (priv->rtllib->bfsync_enable == 0) {
switch (priv->rtllib->fsync_state) { switch (priv->rtllib->fsync_state) {
@ -2048,7 +2022,6 @@ static void _rtl92e_dm_check_fsync(struct net_device *dev)
case SW_Fsync: case SW_Fsync:
default: default:
break; break;
} }
} }
if (reg_c38_State != RegC38_Fsync_AP_BCM) { if (reg_c38_State != RegC38_Fsync_AP_BCM) {
@ -2071,7 +2044,7 @@ static void _rtl92e_dm_check_fsync(struct net_device *dev)
break; break;
} }
if (priv->rtllib->state == RTLLIB_LINKED) { if (priv->rtllib->link_state == MAC80211_LINKED) {
if (priv->undecorated_smoothed_pwdb <= if (priv->undecorated_smoothed_pwdb <=
RegC38_TH) { RegC38_TH) {
if (reg_c38_State != if (reg_c38_State !=
@ -2084,7 +2057,7 @@ static void _rtl92e_dm_check_fsync(struct net_device *dev)
RegC38_NonFsync_Other_AP; RegC38_NonFsync_Other_AP;
} }
} else if (priv->undecorated_smoothed_pwdb >= } else if (priv->undecorated_smoothed_pwdb >=
(RegC38_TH+5)) { (RegC38_TH + 5)) {
if (reg_c38_State) { if (reg_c38_State) {
rtl92e_writeb(dev, rtl92e_writeb(dev,
rOFDM0_RxDetector3, rOFDM0_RxDetector3,
@ -2132,7 +2105,7 @@ static void _rtl92e_dm_dynamic_tx_power(struct net_device *dev)
return; return;
} }
if ((priv->rtllib->ht_info->IOTPeer == HT_IOT_PEER_ATHEROS) && 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; txhipower_threshold = TX_POWER_ATHEROAP_THRESH_HIGH;
txlowpower_threshold = TX_POWER_ATHEROAP_THRESH_LOW; txlowpower_threshold = TX_POWER_ATHEROAP_THRESH_LOW;
} else { } else {
@ -2140,7 +2113,7 @@ static void _rtl92e_dm_dynamic_tx_power(struct net_device *dev)
txlowpower_threshold = TX_POWER_NEAR_FIELD_THRESH_LOW; 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) { if (priv->undecorated_smoothed_pwdb >= txhipower_threshold) {
priv->dynamic_tx_high_pwr = true; priv->dynamic_tx_high_pwr = true;
priv->dynamic_tx_low_pwr = false; 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_high = priv->dynamic_tx_high_pwr;
priv->last_dtp_flag_low = priv->dynamic_tx_low_pwr; priv->last_dtp_flag_low = priv->dynamic_tx_low_pwr;
} }
static void _rtl92e_dm_check_txrateandretrycount(struct net_device *dev) static void _rtl92e_dm_check_txrateandretrycount(struct net_device *dev)

View File

@ -27,8 +27,8 @@ static u32 _rtl92e_ethtool_get_link(struct net_device *dev)
{ {
struct r8192_priv *priv = rtllib_priv(dev); struct r8192_priv *priv = rtllib_priv(dev);
return ((priv->rtllib->state == RTLLIB_LINKED) || return ((priv->rtllib->link_state == MAC80211_LINKED) ||
(priv->rtllib->state == RTLLIB_LINKED_SCANNING)); (priv->rtllib->link_state == MAC80211_LINKED_SCANNING));
} }
const struct ethtool_ops rtl819x_ethtool_ops = { const struct ethtool_ops rtl819x_ethtool_ops = {

View File

@ -9,7 +9,6 @@
#include "r8190P_rtl8256.h" #include "r8190P_rtl8256.h"
#include "rtl_pm.h" #include "rtl_pm.h"
int rtl92e_suspend(struct device *dev_d) int rtl92e_suspend(struct device *dev_d)
{ {
struct net_device *dev = dev_get_drvdata(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"); netdev_info(dev, "================>r8192E resume call.\n");
pci_read_config_dword(pdev, 0x40, &val); pci_read_config_dword(pdev, 0x40, &val);
if ((val & 0x0000ff00) != 0) if ((val & 0x0000ff00) != 0)
pci_write_config_dword(pdev, 0x40, val & 0xffff00ff); pci_write_config_dword(pdev, 0x40, val & 0xffff00ff);

View File

@ -118,7 +118,7 @@ void rtl92e_ips_enter(struct net_device *dev)
rt_state = priv->rtllib->rf_power_state; rt_state = priv->rtllib->rf_power_state;
if (rt_state == rf_on && !psc->bSwRfProcessing && 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)) { (priv->rtllib->iw_mode != IW_MODE_MASTER)) {
psc->eInactivePowerState = rf_off; psc->eInactivePowerState = rf_off;
_rtl92e_ps_update_rf_state(dev); _rtl92e_ps_update_rf_state(dev);
@ -209,7 +209,7 @@ void rtl92e_leisure_ps_enter(struct net_device *dev)
&priv->rtllib->pwr_save_ctrl; &priv->rtllib->pwr_save_ctrl;
if (!((priv->rtllib->iw_mode == IW_MODE_INFRA) && 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_ADHOC) ||
(priv->rtllib->iw_mode == IW_MODE_MASTER)) (priv->rtllib->iw_mode == IW_MODE_MASTER))
return; return;
@ -217,14 +217,11 @@ void rtl92e_leisure_ps_enter(struct net_device *dev)
if (psc->bLeisurePs) { if (psc->bLeisurePs) {
if (psc->LpsIdleCount >= RT_CHECK_FOR_HANG_PERIOD) { if (psc->LpsIdleCount >= RT_CHECK_FOR_HANG_PERIOD) {
if (priv->rtllib->ps == RTLLIB_PS_DISABLED) { if (priv->rtllib->ps == RTLLIB_PS_DISABLED)
if (priv->rtllib->SetFwCmdHandler) _rtl92e_ps_set_mode(dev, RTLLIB_PS_MBCAST | RTLLIB_PS_UNICAST);
priv->rtllib->SetFwCmdHandler(dev, FW_CMD_LPS_ENTER); } else {
_rtl92e_ps_set_mode(dev, RTLLIB_PS_MBCAST |
RTLLIB_PS_UNICAST);
}
} else
psc->LpsIdleCount++; psc->LpsIdleCount++;
}
} }
} }
@ -235,10 +232,7 @@ void rtl92e_leisure_ps_leave(struct net_device *dev)
&priv->rtllib->pwr_save_ctrl; &priv->rtllib->pwr_save_ctrl;
if (psc->bLeisurePs) { 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); _rtl92e_ps_set_mode(dev, RTLLIB_PS_DISABLED);
if (priv->rtllib->SetFwCmdHandler)
priv->rtllib->SetFwCmdHandler(dev, FW_CMD_LPS_LEAVE);
}
} }
} }

View File

@ -169,7 +169,7 @@ static int _rtl92e_wx_adapter_power_status(struct net_device *dev,
priv->ps_force = false; priv->ps_force = false;
psc->bLeisurePs = true; psc->bLeisurePs = true;
} else { } else {
if (priv->rtllib->state == RTLLIB_LINKED) if (priv->rtllib->link_state == MAC80211_LINKED)
rtl92e_leisure_ps_leave(dev); rtl92e_leisure_ps_leave(dev);
priv->ps_force = true; priv->ps_force = true;
@ -311,10 +311,6 @@ static int _rtl92e_wx_get_range(struct net_device *dev,
/* ~130 Mb/s real (802.11n) */ /* ~130 Mb/s real (802.11n) */
range->throughput = 130 * 1000 * 1000; 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.qual = 100;
range->max_qual.level = 0; range->max_qual.level = 0;
range->max_qual.noise = 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++) { for (i = 0, val = 0; i < 14; i++) {
if ((priv->rtllib->active_channel_map)[i + 1]) { if ((priv->rtllib->active_channel_map)[i + 1]) {
s32 freq_khz;
range->freq[val].i = i + 1; range->freq[val].i = i + 1;
range->freq[val].m = rtllib_wlan_frequencies[i] * freq_khz = ieee80211_channel_to_freq_khz(i + 1, NL80211_BAND_2GHZ);
100000; range->freq[val].m = freq_khz * 100;
range->freq[val].e = 1; range->freq[val].e = 1;
val++; val++;
} }
@ -377,10 +375,10 @@ static int _rtl92e_wx_set_scan(struct net_device *dev,
int ret; int ret;
if (!(ieee->softmac_features & IEEE_SOFTMAC_SCAN)) { if (!(ieee->softmac_features & IEEE_SOFTMAC_SCAN)) {
if ((ieee->state >= RTLLIB_ASSOCIATING) && if ((ieee->link_state >= RTLLIB_ASSOCIATING) &&
(ieee->state <= RTLLIB_ASSOCIATING_AUTHENTICATED)) (ieee->link_state <= RTLLIB_ASSOCIATING_AUTHENTICATED))
return 0; return 0;
if ((priv->rtllib->state == RTLLIB_LINKED) && if ((priv->rtllib->link_state == MAC80211_LINKED) &&
(priv->rtllib->CntAfterLink < 2)) (priv->rtllib->CntAfterLink < 2))
return 0; return 0;
} }
@ -393,7 +391,7 @@ static int _rtl92e_wx_set_scan(struct net_device *dev,
rt_state = priv->rtllib->rf_power_state; rt_state = priv->rtllib->rf_power_state;
if (!priv->up) if (!priv->up)
return -ENETDOWN; return -ENETDOWN;
if (priv->rtllib->link_detect_info.bBusyTraffic == true) if (priv->rtllib->link_detect_info.bBusyTraffic)
return -EAGAIN; return -EAGAIN;
if (wrqu->data.flags & IW_SCAN_THIS_ESSID) { 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; priv->rtllib->FirstIe_InScan = true;
if (priv->rtllib->state != RTLLIB_LINKED) { if (priv->rtllib->link_state != MAC80211_LINKED) {
if (rt_state == rf_off) { if (rt_state == rf_off) {
if (priv->rtllib->rf_off_reason > if (priv->rtllib->rf_off_reason >
RF_CHANGE_BY_IPS) { RF_CHANGE_BY_IPS) {
@ -425,10 +423,6 @@ static int _rtl92e_wx_set_scan(struct net_device *dev,
mutex_unlock(&priv->rtllib->ips_mutex); mutex_unlock(&priv->rtllib->ips_mutex);
} }
rtllib_stop_scan(priv->rtllib); 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) { if (priv->rtllib->rf_power_state != rf_off) {
priv->rtllib->actscanning = true; priv->rtllib->actscanning = true;
@ -574,9 +568,9 @@ static int _rtl92e_wx_set_frag(struct net_device *dev,
if (priv->hw_radio_off) if (priv->hw_radio_off)
return 0; return 0;
if (wrqu->frag.disabled) if (wrqu->frag.disabled) {
priv->rtllib->fts = DEFAULT_FRAG_THRESHOLD; priv->rtllib->fts = DEFAULT_FRAG_THRESHOLD;
else { } else {
if (wrqu->frag.value < MIN_FRAG_THRESHOLD || if (wrqu->frag.value < MIN_FRAG_THRESHOLD ||
wrqu->frag.value > MAX_FRAG_THRESHOLD) wrqu->frag.value > MAX_FRAG_THRESHOLD)
return -EINVAL; return -EINVAL;
@ -807,45 +801,6 @@ static int _rtl92e_wx_get_retry(struct net_device *dev,
return 0; 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, static int _rtl92e_wx_set_encode_ext(struct net_device *dev,
struct iw_request_info *info, struct iw_request_info *info,
union iwreq_data *wrqu, char *extra) 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(SIOCGIWFREQ)] = _rtl92e_wx_get_freq,
[IW_IOCTL(SIOCSIWMODE)] = _rtl92e_wx_set_mode, [IW_IOCTL(SIOCSIWMODE)] = _rtl92e_wx_set_mode,
[IW_IOCTL(SIOCGIWMODE)] = _rtl92e_wx_get_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(SIOCGIWRANGE)] = _rtl92e_wx_get_range,
[IW_IOCTL(SIOCSIWAP)] = _rtl92e_wx_set_wap, [IW_IOCTL(SIOCSIWAP)] = _rtl92e_wx_set_wap,
[IW_IOCTL(SIOCGIWAP)] = _rtl92e_wx_get_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_qual = 0;
int tmp_noise = 0; int tmp_noise = 0;
if (ieee->state < RTLLIB_LINKED) { if (ieee->link_state < MAC80211_LINKED) {
wstats->qual.qual = 10; wstats->qual.qual = 10;
wstats->qual.level = 0; wstats->qual.level = 0;
wstats->qual.noise = 0x100 - 100; /* -100 dBm */ wstats->qual.noise = 0x100 - 100; /* -100 dBm */

View File

@ -24,7 +24,6 @@ enum ht_extchnl_offset {
}; };
struct ht_capab_ele { struct ht_capab_ele {
u8 AdvCoding:1; u8 AdvCoding:1;
u8 ChlWidth:1; u8 ChlWidth:1;
u8 MimoPwrSave:2; u8 MimoPwrSave:2;
@ -46,7 +45,6 @@ struct ht_capab_ele {
u8 MCS[16]; u8 MCS[16];
u16 ExtHTCapInfo; u16 ExtHTCapInfo;
u8 TxBFCap[4]; u8 TxBFCap[4];
@ -55,7 +53,6 @@ struct ht_capab_ele {
} __packed; } __packed;
struct ht_info_ele { struct ht_info_ele {
u8 ControlChl; u8 ControlChl;
@ -94,72 +91,54 @@ enum ht_aggre_mode {
HT_AGG_FORCE_DISABLE = 2, HT_AGG_FORCE_DISABLE = 2,
}; };
struct rt_hi_throughput { struct rt_hi_throughput {
u8 enable_ht; u8 enable_ht;
u8 bCurrentHTSupport; u8 bCurrentHTSupport;
u8 bRegBW40MHz;
u8 bRegBW40MHz; u8 bCurBW40MHz;
u8 bCurBW40MHz; u8 bRegShortGI40MHz;
u8 bCurShortGI40MHz;
u8 bRegShortGI40MHz; u8 bRegShortGI20MHz;
u8 bCurShortGI40MHz; u8 bCurShortGI20MHz;
u8 bRegSuppCCK;
u8 bRegShortGI20MHz; u8 bCurSuppCCK;
u8 bCurShortGI20MHz;
u8 bRegSuppCCK;
u8 bCurSuppCCK;
enum ht_spec_ver ePeerHTSpecVer; enum ht_spec_ver ePeerHTSpecVer;
struct ht_capab_ele SelfHTCap; struct ht_capab_ele SelfHTCap;
struct ht_info_ele SelfHTInfo; struct ht_info_ele SelfHTInfo;
u8 PeerHTCapBuf[32];
u8 PeerHTCapBuf[32]; u8 PeerHTInfoBuf[32];
u8 PeerHTInfoBuf[32]; u8 bAMSDU_Support;
u16 nAMSDU_MaxSize;
u8 bCurrent_AMSDU_Support;
u8 bAMSDU_Support; u16 nCurrent_AMSDU_MaxSize;
u16 nAMSDU_MaxSize; u8 bAMPDUEnable;
u8 bCurrent_AMSDU_Support; u8 bCurrentAMPDUEnable;
u16 nCurrent_AMSDU_MaxSize; u8 AMPDU_Factor;
u8 CurrentAMPDUFactor;
u8 bAMPDUEnable; u8 MPDU_Density;
u8 bCurrentAMPDUEnable;
u8 AMPDU_Factor;
u8 CurrentAMPDUFactor;
u8 MPDU_Density;
u8 current_mpdu_density; u8 current_mpdu_density;
enum ht_aggre_mode ForcedAMPDUMode; enum ht_aggre_mode ForcedAMPDUMode;
u8 forced_ampdu_factor; u8 forced_ampdu_factor;
u8 forced_mpdu_density; u8 forced_mpdu_density;
enum ht_aggre_mode ForcedAMSDUMode; enum ht_aggre_mode ForcedAMSDUMode;
u8 forced_short_gi; u8 forced_short_gi;
u8 current_op_mode; u8 current_op_mode;
u8 self_mimo_ps; u8 self_mimo_ps;
u8 peer_mimo_ps; u8 peer_mimo_ps;
enum ht_extchnl_offset CurSTAExtChnlOffset; enum ht_extchnl_offset CurSTAExtChnlOffset;
u8 cur_tx_bw40mhz; u8 cur_tx_bw40mhz;
u8 sw_bw_in_progress; u8 sw_bw_in_progress;
u8 reg_rt2rt_aggregation; u8 reg_rt2rt_aggregation;
u8 RT2RT_HT_Mode; u8 RT2RT_HT_Mode;
u8 current_rt2rt_aggregation; u8 current_rt2rt_aggregation;
u8 current_rt2rt_long_slot_time; u8 current_rt2rt_long_slot_time;
u8 sz_rt2rt_agg_buf[10]; u8 sz_rt2rt_agg_buf[10];
u8 reg_rx_reorder_enable; u8 reg_rx_reorder_enable;
u8 cur_rx_reorder_enable; u8 cur_rx_reorder_enable;
u8 rx_reorder_win_size; u8 rx_reorder_win_size;
u8 rx_reorder_pending_time; u8 rx_reorder_pending_time;
u16 rx_reorder_drop_counter; u16 rx_reorder_drop_counter;
u8 IOTPeer; u8 IOTPeer;
u32 iot_action; u32 iot_action;
u8 iot_ra_func; u8 iot_ra_func;
} __packed; } __packed;

View File

@ -424,14 +424,12 @@ static u8 HT_PickMCSRate(struct rtllib_device *ieee, u8 *pOperateMCS)
} }
switch (ieee->mode) { switch (ieee->mode) {
case IEEE_A: case WIRELESS_MODE_B:
case IEEE_B: case WIRELESS_MODE_G:
case IEEE_G:
for (i = 0; i <= 15; i++) for (i = 0; i <= 15; i++)
pOperateMCS[i] = 0; pOperateMCS[i] = 0;
break; break;
case IEEE_N_24G: case WIRELESS_MODE_N_24G:
case IEEE_N_5G:
pOperateMCS[0] &= RATE_ADPT_1SS_MASK; pOperateMCS[0] &= RATE_ADPT_1SS_MASK;
pOperateMCS[1] &= RATE_ADPT_2SS_MASK; pOperateMCS[1] &= RATE_ADPT_2SS_MASK;
pOperateMCS[3] &= RATE_ADPT_MCS32_MASK; pOperateMCS[3] &= RATE_ADPT_MCS32_MASK;
@ -835,11 +833,11 @@ static void HTSetConnectBwModeCallback(struct rtllib_device *ieee)
ieee->set_chan(ieee->dev, ieee->set_chan(ieee->dev,
ieee->current_network.channel); 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); ht_info->CurSTAExtChnlOffset);
} else { } else {
ieee->set_chan(ieee->dev, ieee->current_network.channel); 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); HT_EXTCHNL_OFFSET_NO_EXT);
} }

View File

@ -104,7 +104,6 @@ struct acm {
}; };
union qos_tclas { union qos_tclas {
struct _TYPE_GENERAL { struct _TYPE_GENERAL {
u8 Priority; u8 Priority;
u8 ClassifierType; u8 ClassifierType;

View File

@ -53,6 +53,4 @@ struct rx_ts_record {
u8 num; u8 num;
}; };
#endif #endif

View File

@ -38,6 +38,7 @@
#include <linux/netdevice.h> #include <linux/netdevice.h>
#include <linux/if_arp.h> /* ARPHRD_ETHER */ #include <linux/if_arp.h> /* ARPHRD_ETHER */
#include <net/cfg80211.h>
#include <net/lib80211.h> #include <net/lib80211.h>
#define MAX_PRECMD_CNT 16 #define MAX_PRECMD_CNT 16
@ -139,7 +140,7 @@ struct cb_desc {
u8 rata_index; u8 rata_index;
u8 queue_index; u8 queue_index;
u16 txbuf_size; u16 txbuf_size;
u8 RATRIndex; u8 ratr_index;
u8 bAMSDU:1; u8 bAMSDU:1;
u8 bFromAggrQ:1; u8 bFromAggrQ:1;
u8 reserved6:6; u8 reserved6:6;
@ -308,9 +309,7 @@ enum rt_op_mode {
}; };
#define aSifsTime \ #define aSifsTime \
(((priv->rtllib->current_network.mode == IEEE_A) \ ((priv->rtllib->current_network.mode == WIRELESS_MODE_N_24G) ? 16 : 10)
|| (priv->rtllib->current_network.mode == IEEE_N_24G) \
|| (priv->rtllib->current_network.mode == IEEE_N_5G)) ? 16 : 10)
#define MGMT_QUEUE_NUM 5 #define MGMT_QUEUE_NUM 5
@ -421,17 +420,6 @@ enum init_gain_op_type {
IG_Max 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 { enum wireless_mode {
WIRELESS_MODE_UNKNOWN = 0x00, WIRELESS_MODE_UNKNOWN = 0x00,
WIRELESS_MODE_A = 0x01, WIRELESS_MODE_A = 0x01,
@ -439,7 +427,6 @@ enum wireless_mode {
WIRELESS_MODE_G = 0x04, WIRELESS_MODE_G = 0x04,
WIRELESS_MODE_AUTO = 0x08, WIRELESS_MODE_AUTO = 0x08,
WIRELESS_MODE_N_24G = 0x10, WIRELESS_MODE_N_24G = 0x10,
WIRELESS_MODE_N_5G = 0x20
}; };
#ifndef ETH_P_PAE #ifndef ETH_P_PAE
@ -499,9 +486,6 @@ enum _REG_PREAMBLE_MODE {
#define RTLLIB_CCK_MODULATION (1<<0) #define RTLLIB_CCK_MODULATION (1<<0)
#define RTLLIB_OFDM_MODULATION (1<<1) #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_LEN 4
#define RTLLIB_CCK_RATE_1MB 0x02 #define RTLLIB_CCK_RATE_1MB 0x02
#define RTLLIB_CCK_RATE_2MB 0x04 #define RTLLIB_CCK_RATE_2MB 0x04
@ -548,10 +532,8 @@ struct rtllib_rx_stats {
u8 signal; u8 signal;
u8 noise; u8 noise;
u16 rate; /* in 100 kbps */ u16 rate; /* in 100 kbps */
u8 received_channel;
u8 control; u8 control;
u8 mask; u8 mask;
u8 freq;
u16 len; u16 len;
u64 tsf; u64 tsf;
u32 beacon_time; u32 beacon_time;
@ -1136,10 +1118,9 @@ struct rtllib_network {
struct list_head list; struct list_head list;
}; };
enum rtllib_state { enum rtl_link_state {
/* the card is not linked at all */ /* the card is not linked at all */
RTLLIB_NOLINK = 0, MAC80211_NOLINK = 0,
/* RTLLIB_ASSOCIATING* are for BSS client mode /* RTLLIB_ASSOCIATING* are for BSS client mode
* the driver shall not perform RX filtering unless * 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 /* 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 * 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 /* same as LINKED, but the driver shall apply RX filter
* rules as we are in NO_LINK mode. As the card is still * rules as we are in NO_LINK mode. As the card is still
* logically linked, but it is doing a syncro site survey * logically linked, but it is doing a syncro site survey
* then it will be back to LINKED state. * then it will be back to LINKED state.
*/ */
RTLLIB_LINKED_SCANNING, MAC80211_LINKED_SCANNING,
}; };
#define DEFAULT_MAX_SCAN_AGE (15 * HZ) #define DEFAULT_MAX_SCAN_AGE (15 * HZ)
@ -1298,7 +1279,6 @@ enum fw_cmd_io_type {
#define RT_MAX_LD_SLOT_NUM 10 #define RT_MAX_LD_SLOT_NUM 10
struct rt_link_detect { struct rt_link_detect {
u32 NumRecvBcnInPeriod; u32 NumRecvBcnInPeriod;
u32 NumRecvDataInPeriod; u32 NumRecvDataInPeriod;
@ -1316,7 +1296,6 @@ struct rt_link_detect {
}; };
struct sw_cam_table { struct sw_cam_table {
u8 macaddr[ETH_ALEN]; u8 macaddr[ETH_ALEN];
bool bused; bool bused;
u8 key_buf[16]; u8 key_buf[16];
@ -1509,7 +1488,7 @@ struct rtllib_device {
*/ */
struct rtllib_network current_network; struct rtllib_network current_network;
enum rtllib_state state; enum rtl_link_state link_state;
int short_slot; int short_slot;
int mode; /* A, B, G */ int mode; /* A, B, G */
@ -1651,17 +1630,6 @@ struct rtllib_device {
}; };
/* Callback functions */ /* 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 /* Softmac-generated frames (management) are TXed via this
* callback if the flag IEEE_SOFTMAC_SINGLE_QUEUE is * 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, void (*softmac_data_hard_start_xmit)(struct sk_buff *skb,
struct net_device *dev, int rate); 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. /* ask to the driver to retune the radio.
* This function can sleep. the driver should ensure * This function can sleep. the driver should ensure
* the radio has been switched before return. * the radio has been switched before return.
*/ */
void (*set_chan)(struct net_device *dev, short ch); 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 /* indicate the driver that the link state is changed
* for example it may indicate the card is associated now. * for example it may indicate the card is associated now.
* Driver might be interested in this to apply RX filter * Driver might be interested in this to apply RX filter
@ -1729,22 +1685,16 @@ struct rtllib_device {
/* check whether Tx hw resource available */ /* check whether Tx hw resource available */
short (*check_nic_enough_desc)(struct net_device *dev, int queue_index); short (*check_nic_enough_desc)(struct net_device *dev, int queue_index);
void (*SetBWModeHandler)(struct net_device *dev, void (*set_bw_mode_handler)(struct net_device *dev,
enum ht_channel_width bandwidth, enum ht_channel_width bandwidth,
enum ht_extchnl_offset Offset); enum ht_extchnl_offset Offset);
bool (*GetNmodeSupportBySecCfg)(struct net_device *dev); 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); bool (*GetHalfNmodeSupportByAPsHandler)(struct net_device *dev);
u8 (*rtllib_ap_sec_type)(struct rtllib_device *ieee); u8 (*rtllib_ap_sec_type)(struct rtllib_device *ieee);
void (*InitialGainHandler)(struct net_device *dev, u8 Operation); void (*init_gain_handler)(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 (*ScanOperationBackupHandler)(struct net_device *dev, void (*ScanOperationBackupHandler)(struct net_device *dev,
u8 Operation); u8 Operation);
void (*LedControlHandler)(struct net_device *dev,
enum led_ctl_mode LedAction);
void (*SetHwRegHandler)(struct net_device *dev, u8 variable, u8 *val); void (*SetHwRegHandler)(struct net_device *dev, u8 variable, u8 *val);
void (*AllowAllDestAddrHandler)(struct net_device *dev, 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_wq)(struct net_device *dev);
void (*rtllib_ips_leave)(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 /* This must be the last item so that it points to the data
* allocated beyond this structure by alloc_rtllib * allocated beyond this structure by alloc_rtllib
@ -1760,12 +1710,7 @@ struct rtllib_device {
u8 priv[]; u8 priv[];
}; };
#define IEEE_A (1<<0) #define IEEE_MODE_MASK (WIRELESS_MODE_B | WIRELESS_MODE_G)
#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)
/* Generate a 802.11 header */ /* Generate a 802.11 header */
@ -2080,8 +2025,6 @@ void TsStartAddBaProcess(struct rtllib_device *ieee,
void RemovePeerTS(struct rtllib_device *ieee, u8 *Addr); void RemovePeerTS(struct rtllib_device *ieee, u8 *Addr);
void RemoveAllTS(struct rtllib_device *ieee); 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 inline const char *escape_essid(const char *essid, u8 essid_len)
{ {
static char escaped[IW_ESSID_MAX_SIZE * 2 + 1]; static char escaped[IW_ESSID_MAX_SIZE * 2 + 1];

View File

@ -225,18 +225,6 @@ rtllib_rx_frame_mgmt(struct rtllib_device *ieee, struct sk_buff *skb,
return 0; 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) */ /* No encapsulation header if EtherType < 0x600 (=length) */
/* Called by rtllib_rx_frame_decrypt */ /* Called by rtllib_rx_frame_decrypt */
@ -264,8 +252,9 @@ static int rtllib_is_eapol_frame(struct rtllib_device *ieee,
RTLLIB_FCTL_FROMDS && RTLLIB_FCTL_FROMDS &&
memcmp(hdr->addr1, dev->dev_addr, ETH_ALEN) == 0) { memcmp(hdr->addr1, dev->dev_addr, ETH_ALEN) == 0) {
/* FromDS frame with own addr as DA */ /* FromDS frame with own addr as DA */
} else } else {
return 0; return 0;
}
if (skb->len < 24 + 8) if (skb->len < 24 + 8)
return 0; return 0;
@ -433,8 +422,9 @@ static int is_duplicate_packet(struct rtllib_device *ieee,
if (*last_frag + 1 != frag) if (*last_frag + 1 != frag)
/* out-of-order fragment */ /* out-of-order fragment */
goto drop; goto drop;
} else } else {
*last_seq = seq; *last_seq = seq;
}
*last_frag = frag; *last_frag = frag;
*last_time = jiffies; *last_time = jiffies;
@ -1206,11 +1196,11 @@ static void rtllib_rx_check_leave_lps(struct rtllib_device *ieee, u8 unicast,
u8 nr_subframes) u8 nr_subframes)
{ {
if (unicast) { if (unicast) {
if (ieee->state == RTLLIB_LINKED) { if (ieee->link_state == MAC80211_LINKED) {
if (((ieee->link_detect_info.NumRxUnicastOkInPeriod + if (((ieee->link_detect_info.NumRxUnicastOkInPeriod +
ieee->link_detect_info.NumTxOkInPeriod) > 8) || ieee->link_detect_info.NumTxOkInPeriod) > 8) ||
(ieee->link_detect_info.NumRxUnicastOkInPeriod > 2)) { (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->tim.tim_period = info_element->data[1];
network->dtim_period = info_element->data[1]; network->dtim_period = info_element->data[1];
if (ieee->state != RTLLIB_LINKED) if (ieee->link_state != MAC80211_LINKED)
break; break;
network->last_dtim_sta_time = jiffies; network->last_dtim_sta_time = jiffies;
@ -2311,11 +2301,7 @@ static inline int rtllib_network_init(
network->CountryIeLen = 0; network->CountryIeLen = 0;
memset(network->CountryIeBuf, 0, MAX_IE_LEN); memset(network->CountryIeBuf, 0, MAX_IE_LEN);
HTInitializeBssDesc(&network->bssht); HTInitializeBssDesc(&network->bssht);
if (stats->freq == RTLLIB_52GHZ_BAND) { network->flags |= NETWORK_HAS_CCK;
/* for A band (No DS info) */
network->channel = stats->received_channel;
} else
network->flags |= NETWORK_HAS_CCK;
network->wpa_ie_len = 0; network->wpa_ie_len = 0;
network->rsn_ie_len = 0; network->rsn_ie_len = 0;
@ -2329,14 +2315,11 @@ static inline int rtllib_network_init(
return 1; return 1;
network->mode = 0; network->mode = 0;
if (stats->freq == RTLLIB_52GHZ_BAND)
network->mode = IEEE_A; if (network->flags & NETWORK_HAS_OFDM)
else { network->mode |= WIRELESS_MODE_G;
if (network->flags & NETWORK_HAS_OFDM) if (network->flags & NETWORK_HAS_CCK)
network->mode |= IEEE_G; network->mode |= WIRELESS_MODE_B;
if (network->flags & NETWORK_HAS_CCK)
network->mode |= IEEE_B;
}
if (network->mode == 0) { if (network->mode == 0) {
netdev_dbg(ieee->dev, "Filtered out '%s (%pM)' network.\n", 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->bssht.bd_support_ht) {
if (network->mode == IEEE_A) if (network->mode & (WIRELESS_MODE_G | WIRELESS_MODE_B))
network->mode = IEEE_N_5G; network->mode = WIRELESS_MODE_N_24G;
else if (network->mode & (IEEE_G | IEEE_B))
network->mode = IEEE_N_24G;
} }
if (rtllib_is_empty_essid(network->ssid, network->ssid_len)) if (rtllib_is_empty_essid(network->ssid, network->ssid_len))
network->flags |= NETWORK_EMPTY_ESSID; network->flags |= NETWORK_EMPTY_ESSID;
@ -2595,8 +2576,8 @@ static inline void rtllib_process_probe_response(
if (is_same_network(&ieee->current_network, network, if (is_same_network(&ieee->current_network, network,
(network->ssid_len ? 1 : 0))) { (network->ssid_len ? 1 : 0))) {
update_network(ieee, &ieee->current_network, network); update_network(ieee, &ieee->current_network, network);
if ((ieee->current_network.mode == IEEE_N_24G || if ((ieee->current_network.mode == WIRELESS_MODE_N_24G ||
ieee->current_network.mode == IEEE_G) && ieee->current_network.mode == WIRELESS_MODE_G) &&
ieee->current_network.berp_info_valid) { ieee->current_network.berp_info_valid) {
if (ieee->current_network.erp_value & ERP_UseProtection) if (ieee->current_network.erp_value & ERP_UseProtection)
ieee->current_network.buseprotection = true; ieee->current_network.buseprotection = true;
@ -2604,7 +2585,7 @@ static inline void rtllib_process_probe_response(
ieee->current_network.buseprotection = false; ieee->current_network.buseprotection = false;
} }
if (is_beacon(frame_ctl)) { if (is_beacon(frame_ctl)) {
if (ieee->state >= RTLLIB_LINKED) if (ieee->link_state >= MAC80211_LINKED)
ieee->link_detect_info.NumRecvBcnInPeriod++; ieee->link_detect_info.NumRecvBcnInPeriod++;
} }
} }
@ -2662,7 +2643,7 @@ static inline void rtllib_process_probe_response(
|| ((ieee->current_network.ssid_len == network->ssid_len) && || ((ieee->current_network.ssid_len == network->ssid_len) &&
(strncmp(ieee->current_network.ssid, network->ssid, (strncmp(ieee->current_network.ssid, network->ssid,
network->ssid_len) == 0) && network->ssid_len) == 0) &&
(ieee->state == RTLLIB_NOLINK)))) (ieee->link_state == MAC80211_NOLINK))))
renew = 1; renew = 1;
update_network(ieee, target, network); update_network(ieee, target, network);
if (renew && (ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE)) if (renew && (ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE))
@ -2673,7 +2654,7 @@ static inline void rtllib_process_probe_response(
if (is_beacon(frame_ctl) && if (is_beacon(frame_ctl) &&
is_same_network(&ieee->current_network, network, is_same_network(&ieee->current_network, network,
(network->ssid_len ? 1 : 0)) && (network->ssid_len ? 1 : 0)) &&
(ieee->state == RTLLIB_LINKED)) { (ieee->link_state == MAC80211_LINKED)) {
ieee->handle_beacon(ieee->dev, beacon, &ieee->current_network); ieee->handle_beacon(ieee->dev, beacon, &ieee->current_network);
} }
free_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 && if (ieee->sta_sleep || (ieee->ps != RTLLIB_PS_DISABLED &&
ieee->iw_mode == IW_MODE_INFRA && ieee->iw_mode == IW_MODE_INFRA &&
ieee->state == RTLLIB_LINKED)) ieee->link_state == MAC80211_LINKED))
schedule_work(&ieee->ps_task); schedule_work(&ieee->ps_task);
break; break;
@ -2719,7 +2700,7 @@ static void rtllib_rx_mgt(struct rtllib_device *ieee,
if ((ieee->softmac_features & IEEE_SOFTMAC_PROBERS) && if ((ieee->softmac_features & IEEE_SOFTMAC_PROBERS) &&
((ieee->iw_mode == IW_MODE_ADHOC || ((ieee->iw_mode == IW_MODE_ADHOC ||
ieee->iw_mode == IW_MODE_MASTER) && ieee->iw_mode == IW_MODE_MASTER) &&
ieee->state == RTLLIB_LINKED)) ieee->link_state == MAC80211_LINKED))
rtllib_rx_probe_rq(ieee, skb); rtllib_rx_probe_rq(ieee, skb);
break; break;
} }

File diff suppressed because it is too large Load Diff

View File

@ -15,16 +15,6 @@
#include "rtllib.h" #include "rtllib.h"
#include "dot11d.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, int rtllib_wx_set_freq(struct rtllib_device *ieee, struct iw_request_info *a,
union iwreq_data *wrqu, char *b) 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->e == 1) {
if ((fwrq->m >= (int)2.412e8 && if ((fwrq->m >= (int)2.412e8 &&
fwrq->m <= (int)2.487e8)) { fwrq->m <= (int)2.487e8)) {
int f = fwrq->m / 100000; fwrq->m = ieee80211_freq_khz_to_channel(fwrq->m / 100);
int c = 0;
while ((c < 14) && (f != rtllib_wlan_frequencies[c]))
c++;
/* hack to fall through */
fwrq->e = 0; 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 || if (ieee->iw_mode == IW_MODE_ADHOC ||
ieee->iw_mode == IW_MODE_MASTER) ieee->iw_mode == IW_MODE_MASTER)
if (ieee->state == RTLLIB_LINKED) { if (ieee->link_state == MAC80211_LINKED) {
rtllib_stop_send_beacons(ieee); rtllib_stop_send_beacons(ieee);
rtllib_start_send_beacons(ieee); rtllib_start_send_beacons(ieee);
} }
@ -83,7 +66,6 @@ out:
} }
EXPORT_SYMBOL(rtllib_wx_set_freq); EXPORT_SYMBOL(rtllib_wx_set_freq);
int rtllib_wx_get_freq(struct rtllib_device *ieee, int rtllib_wx_get_freq(struct rtllib_device *ieee,
struct iw_request_info *a, struct iw_request_info *a,
union iwreq_data *wrqu, char *b) 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) if (ieee->current_network.channel == 0)
return -1; return -1;
fwrq->m = rtllib_wlan_frequencies[ieee->current_network.channel-1] * fwrq->m = ieee80211_channel_to_freq_khz(ieee->current_network.channel,
100000; NL80211_BAND_2GHZ) * 100;
fwrq->e = 1; fwrq->e = 1;
return 0; 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*/ /* We want avoid to give to the user inconsistent infos*/
spin_lock_irqsave(&ieee->lock, flags); spin_lock_irqsave(&ieee->lock, flags);
if (ieee->state != RTLLIB_LINKED && if (ieee->link_state != MAC80211_LINKED &&
ieee->state != RTLLIB_LINKED_SCANNING && ieee->link_state != MAC80211_LINKED_SCANNING &&
ieee->wap_set == 0) ieee->wap_set == 0)
eth_zero_addr(wrqu->ap_addr.sa_data); 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); EXPORT_SYMBOL(rtllib_wx_get_wap);
int rtllib_wx_set_wap(struct rtllib_device *ieee, int rtllib_wx_set_wap(struct rtllib_device *ieee,
struct iw_request_info *info, struct iw_request_info *info,
union iwreq_data *awrq, union iwreq_data *awrq,
char *extra) char *extra)
{ {
int ret = 0; int ret = 0;
unsigned long flags; unsigned long flags;
@ -164,7 +144,6 @@ int rtllib_wx_set_wap(struct rtllib_device *ieee,
goto out; goto out;
} }
if (ifup) if (ifup)
rtllib_stop_protocol(ieee, true); 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; goto out;
} }
if (ieee->state != RTLLIB_LINKED && if (ieee->link_state != MAC80211_LINKED &&
ieee->state != RTLLIB_LINKED_SCANNING && ieee->link_state != MAC80211_LINKED_SCANNING &&
ieee->ssid_set == 0) { ieee->ssid_set == 0) {
ret = -1; ret = -1;
goto out; goto out;
@ -220,7 +199,6 @@ out:
spin_unlock_irqrestore(&ieee->lock, flags); spin_unlock_irqrestore(&ieee->lock, flags);
return ret; return ret;
} }
EXPORT_SYMBOL(rtllib_wx_get_essid); EXPORT_SYMBOL(rtllib_wx_get_essid);
@ -228,10 +206,9 @@ int rtllib_wx_set_rate(struct rtllib_device *ieee,
struct iw_request_info *info, struct iw_request_info *info,
union iwreq_data *wrqu, char *extra) union iwreq_data *wrqu, char *extra)
{ {
u32 target_rate = wrqu->bitrate.value; u32 target_rate = wrqu->bitrate.value;
ieee->rate = target_rate/100000; ieee->rate = target_rate / 100000;
return 0; return 0;
} }
EXPORT_SYMBOL(rtllib_wx_set_rate); 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); EXPORT_SYMBOL(rtllib_wx_get_rate);
int rtllib_wx_set_rts(struct rtllib_device *ieee, int rtllib_wx_set_rts(struct rtllib_device *ieee,
struct iw_request_info *info, struct iw_request_info *info,
union iwreq_data *wrqu, char *extra) 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; ieee->rts = DEFAULT_RTS_THRESHOLD;
else { } else {
if (wrqu->rts.value < MIN_RTS_THRESHOLD || if (wrqu->rts.value < MIN_RTS_THRESHOLD ||
wrqu->rts.value > MAX_RTS_THRESHOLD) wrqu->rts.value > MAX_RTS_THRESHOLD)
return -EINVAL; return -EINVAL;
@ -332,6 +308,7 @@ void rtllib_wx_sync_scan_wq(void *data)
enum ht_channel_width bandwidth = 0; enum ht_channel_width bandwidth = 0;
int b40M = 0; int b40M = 0;
mutex_lock(&ieee->wx_mutex);
if (!(ieee->softmac_features & IEEE_SOFTMAC_SCAN)) { if (!(ieee->softmac_features & IEEE_SOFTMAC_SCAN)) {
rtllib_start_scan_syncro(ieee, 0); rtllib_start_scan_syncro(ieee, 0);
goto out; goto out;
@ -339,17 +316,14 @@ void rtllib_wx_sync_scan_wq(void *data)
chan = ieee->current_network.channel; chan = ieee->current_network.channel;
ieee->LeisurePSLeave(ieee->dev); ieee->leisure_ps_leave(ieee->dev);
/* notify AP to be in PS mode */ /* notify AP to be in PS mode */
rtllib_sta_ps_send_null_frame(ieee, 1); rtllib_sta_ps_send_null_frame(ieee, 1);
rtllib_sta_ps_send_null_frame(ieee, 1); rtllib_sta_ps_send_null_frame(ieee, 1);
rtllib_stop_all_queues(ieee); rtllib_stop_all_queues(ieee);
if (ieee->data_hard_stop)
ieee->data_hard_stop(ieee->dev);
rtllib_stop_send_beacons(ieee); rtllib_stop_send_beacons(ieee);
ieee->state = RTLLIB_LINKED_SCANNING; ieee->link_state = MAC80211_LINKED_SCANNING;
ieee->link_change(ieee->dev); ieee->link_change(ieee->dev);
/* wait for ps packet to be kicked out successfully */ /* wait for ps packet to be kicked out successfully */
msleep(50); msleep(50);
@ -361,7 +335,7 @@ void rtllib_wx_sync_scan_wq(void *data)
b40M = 1; b40M = 1;
chan_offset = ieee->ht_info->CurSTAExtChnlOffset; chan_offset = ieee->ht_info->CurSTAExtChnlOffset;
bandwidth = (enum ht_channel_width)ieee->ht_info->bCurBW40MHz; 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); HT_EXTCHNL_OFFSET_NO_EXT);
} }
@ -374,14 +348,14 @@ void rtllib_wx_sync_scan_wq(void *data)
ieee->set_chan(ieee->dev, chan - 2); ieee->set_chan(ieee->dev, chan - 2);
else else
ieee->set_chan(ieee->dev, chan); ieee->set_chan(ieee->dev, chan);
ieee->SetBWModeHandler(ieee->dev, bandwidth, chan_offset); ieee->set_bw_mode_handler(ieee->dev, bandwidth, chan_offset);
} else { } else {
ieee->set_chan(ieee->dev, chan); ieee->set_chan(ieee->dev, chan);
} }
ieee->ScanOperationBackupHandler(ieee->dev, SCAN_OPT_RESTORE); ieee->ScanOperationBackupHandler(ieee->dev, SCAN_OPT_RESTORE);
ieee->state = RTLLIB_LINKED; ieee->link_state = MAC80211_LINKED;
ieee->link_change(ieee->dev); ieee->link_change(ieee->dev);
/* Notify AP that I wake up again */ /* 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.NumRecvBcnInPeriod = 1;
ieee->link_detect_info.NumRecvDataInPeriod = 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) if (ieee->iw_mode == IW_MODE_ADHOC || ieee->iw_mode == IW_MODE_MASTER)
rtllib_start_send_beacons(ieee); rtllib_start_send_beacons(ieee);
@ -403,7 +373,6 @@ void rtllib_wx_sync_scan_wq(void *data)
out: out:
mutex_unlock(&ieee->wx_mutex); mutex_unlock(&ieee->wx_mutex);
} }
int rtllib_wx_set_scan(struct rtllib_device *ieee, struct iw_request_info *a, 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; int ret = 0;
mutex_lock(&ieee->wx_mutex);
if (ieee->iw_mode == IW_MODE_MONITOR || !(ieee->proto_started)) { if (ieee->iw_mode == IW_MODE_MONITOR || !(ieee->proto_started)) {
ret = -1; ret = -1;
goto out; goto out;
} }
if (ieee->state == RTLLIB_LINKED) { if (ieee->link_state == MAC80211_LINKED) {
schedule_work(&ieee->wx_sync_scan_wq); schedule_work(&ieee->wx_sync_scan_wq);
/* intentionally forget to up sem */ /* intentionally forget to up sem */
return 0; return 0;
} }
out: out:
mutex_unlock(&ieee->wx_mutex);
return ret; return ret;
} }
EXPORT_SYMBOL(rtllib_wx_set_scan); EXPORT_SYMBOL(rtllib_wx_set_scan);
@ -434,7 +400,6 @@ int rtllib_wx_set_essid(struct rtllib_device *ieee,
struct iw_request_info *a, struct iw_request_info *a,
union iwreq_data *wrqu, char *extra) union iwreq_data *wrqu, char *extra)
{ {
int ret = 0, len; int ret = 0, len;
short proto_started; short proto_started;
unsigned long flags; unsigned long flags;
@ -454,7 +419,6 @@ int rtllib_wx_set_essid(struct rtllib_device *ieee,
if (proto_started) if (proto_started)
rtllib_stop_protocol(ieee, true); rtllib_stop_protocol(ieee, true);
/* this is just to be sure that the GET wx callback /* this is just to be sure that the GET wx callback
* has consistent infos. not needed otherwise * has consistent infos. not needed otherwise
*/ */
@ -492,7 +456,6 @@ int rtllib_wx_set_rawtx(struct rtllib_device *ieee,
struct iw_request_info *info, struct iw_request_info *info,
union iwreq_data *wrqu, char *extra) union iwreq_data *wrqu, char *extra)
{ {
int *parms = (int *)extra; int *parms = (int *)extra;
int enable = (parms[0] > 0); int enable = (parms[0] > 0);
short prev = ieee->raw_tx; short prev = ieee->raw_tx;
@ -508,12 +471,8 @@ int rtllib_wx_set_rawtx(struct rtllib_device *ieee,
ieee->raw_tx ? "enabled" : "disabled"); ieee->raw_tx ? "enabled" : "disabled");
if (ieee->iw_mode == IW_MODE_MONITOR) { if (ieee->iw_mode == IW_MODE_MONITOR) {
if (prev == 0 && ieee->raw_tx) { if (prev == 0 && ieee->raw_tx)
if (ieee->data_hard_resume)
ieee->data_hard_resume(ieee->dev);
netif_carrier_on(ieee->dev); netif_carrier_on(ieee->dev);
}
if (prev && ieee->raw_tx == 1) if (prev && ieee->raw_tx == 1)
netif_carrier_off(ieee->dev); 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 *b = ieee->modulation & RTLLIB_CCK_MODULATION ? "b" : "";
const char *g = ieee->modulation & RTLLIB_OFDM_MODULATION ? "g" : ""; 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); scnprintf(wrqu->name, sizeof(wrqu->name), "802.11%s%s%s", b, g, n);
return 0; return 0;
} }
EXPORT_SYMBOL(rtllib_wx_get_name); EXPORT_SYMBOL(rtllib_wx_get_name);
/* this is mostly stolen from hostap */ /* this is mostly stolen from hostap */
int rtllib_wx_set_power(struct rtllib_device *ieee, int rtllib_wx_set_power(struct rtllib_device *ieee,
struct iw_request_info *info, struct iw_request_info *info,
@ -583,12 +541,10 @@ int rtllib_wx_set_power(struct rtllib_device *ieee,
default: default:
ret = -EINVAL; ret = -EINVAL;
goto exit; goto exit;
} }
exit: exit:
mutex_unlock(&ieee->wx_mutex); mutex_unlock(&ieee->wx_mutex);
return ret; return ret;
} }
EXPORT_SYMBOL(rtllib_wx_set_power); EXPORT_SYMBOL(rtllib_wx_set_power);
@ -625,6 +581,5 @@ int rtllib_wx_get_power(struct rtllib_device *ieee,
exit: exit:
mutex_unlock(&ieee->wx_mutex); mutex_unlock(&ieee->wx_mutex);
return 0; return 0;
} }
EXPORT_SYMBOL(rtllib_wx_get_power); EXPORT_SYMBOL(rtllib_wx_get_power);

View File

@ -406,7 +406,7 @@ static void rtllib_query_protectionmode(struct rtllib_device *ieee,
if (is_broadcast_ether_addr(skb->data + 16)) if (is_broadcast_ether_addr(skb->data + 16))
return; return;
if (ieee->mode < IEEE_N_24G) { if (ieee->mode < WIRELESS_MODE_N_24G) {
if (skb->len > ieee->rts) { if (skb->len > ieee->rts) {
tcb_desc->bRTSEnable = true; tcb_desc->bRTSEnable = true;
tcb_desc->rts_rate = MGN_24M; 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) { !tcb_desc->tx_use_drv_assinged_rate) {
if (ieee->iw_mode == IW_MODE_INFRA || if (ieee->iw_mode == IW_MODE_INFRA ||
ieee->iw_mode == IW_MODE_ADHOC) 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 /* If there is no driver handler to take the TXB, don't bother
* creating it... * creating it...
*/ */
if ((!ieee->hard_start_xmit && !(ieee->softmac_features & if (!(ieee->softmac_features & IEEE_SOFTMAC_TX_QUEUE) ||
IEEE_SOFTMAC_TX_QUEUE)) ||
((!ieee->softmac_data_hard_start_xmit && ((!ieee->softmac_data_hard_start_xmit &&
(ieee->softmac_features & IEEE_SOFTMAC_TX_QUEUE)))) { (ieee->softmac_features & IEEE_SOFTMAC_TX_QUEUE)))) {
netdev_warn(ieee->dev, "No xmit handler.\n"); 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->tx_dis_rate_fallback = 1;
} }
tcb_desc->RATRIndex = 7; tcb_desc->ratr_index = 7;
tcb_desc->tx_use_drv_assinged_rate = 1; tcb_desc->tx_use_drv_assinged_rate = 1;
} else { } else {
if (is_multicast_ether_addr(header.addr1)) 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->tx_dis_rate_fallback = 1;
} }
tcb_desc->RATRIndex = 7; tcb_desc->ratr_index = 7;
tcb_desc->tx_use_drv_assinged_rate = 1; tcb_desc->tx_use_drv_assinged_rate = 1;
tcb_desc->bdhcp = 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); dev->stats.tx_bytes += le16_to_cpu(txb->payload_size);
rtllib_softmac_xmit(txb, ieee); rtllib_softmac_xmit(txb, ieee);
} else { } 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); rtllib_txb_free(txb);
} }
} }

View File

@ -19,7 +19,7 @@
#include "rtllib.h" #include "rtllib.h"
static const char * const rtllib_modes[] = { static const char * const rtllib_modes[] = {
"a", "b", "g", "?", "N-24G", "N-5G" "a", "b", "g", "?", "N-24G"
}; };
#define MAX_CUSTOM_LEN 64 #define MAX_CUSTOM_LEN 64
@ -118,7 +118,7 @@ static inline char *rtl819x_translate_scan(struct rtllib_device *ieee,
max_rate = rate; max_rate = rate;
} }
if (network->mode >= IEEE_N_24G) { if (network->mode >= WIRELESS_MODE_N_24G) {
struct ht_capab_ele *ht_cap = NULL; struct ht_capab_ele *ht_cap = NULL;
bool is40M = false, isShortGI = false; bool is40M = false, isShortGI = false;
u8 max_mcs = 0; u8 max_mcs = 0;
@ -416,22 +416,6 @@ int rtllib_wx_set_encode(struct rtllib_device *ieee,
*/ */
sec.flags |= SEC_LEVEL; sec.flags |= SEC_LEVEL;
sec.level = SEC_LEVEL_1; /* 40 and 104 bit WEP */ 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; return 0;
} }
EXPORT_SYMBOL(rtllib_wx_set_encode); EXPORT_SYMBOL(rtllib_wx_set_encode);
@ -623,15 +607,6 @@ int rtllib_wx_set_encode_ext(struct rtllib_device *ieee,
sec.flags &= ~SEC_LEVEL; sec.flags &= ~SEC_LEVEL;
} }
done: 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; return ret;
} }
EXPORT_SYMBOL(rtllib_wx_set_encode_ext); EXPORT_SYMBOL(rtllib_wx_set_encode_ext);
@ -644,7 +619,7 @@ int rtllib_wx_set_mlme(struct rtllib_device *ieee,
bool deauth = false; bool deauth = false;
struct iw_mlme *mlme = (struct iw_mlme *)extra; struct iw_mlme *mlme = (struct iw_mlme *)extra;
if (ieee->state != RTLLIB_LINKED) if (ieee->link_state != MAC80211_LINKED)
return -ENOLINK; return -ENOLINK;
mutex_lock(&ieee->wx_mutex); mutex_lock(&ieee->wx_mutex);

View File

@ -2275,7 +2275,10 @@ void Hal_EfuseParseBTCoexistInfo_8723B(
pHalData->EEPROMBluetoothAntNum = tempval & BIT(0); pHalData->EEPROMBluetoothAntNum = tempval & BIT(0);
/* EFUSE_0xC3[6] == 0, S1(Main)-RF_PATH_A; */ /* EFUSE_0xC3[6] == 0, S1(Main)-RF_PATH_A; */
/* EFUSE_0xC3[6] == 1, S0(Aux)-RF_PATH_B */ /* 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 { } else {
pHalData->EEPROMBluetoothAntNum = Ant_x1; pHalData->EEPROMBluetoothAntNum = Ant_x1;
if (pHalData->PackageType == PACKAGE_QFN68) if (pHalData->PackageType == PACKAGE_QFN68)

View File

@ -16,9 +16,9 @@
/* if mode == 0, then the sta is allowed once the addr is hit. */ /* 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. */ /* if mode == 1, then the sta is rejected once the addr is non-hit. */
struct rtw_wlan_acl_node { struct rtw_wlan_acl_node {
struct list_head list; struct list_head list;
u8 addr[ETH_ALEN]; u8 addr[ETH_ALEN];
u8 valid; u8 valid;
}; };
/* mode = 0, disable */ /* mode = 0, disable */
@ -340,19 +340,19 @@ struct sta_priv {
static inline u32 wifi_mac_hash(u8 *mac) static inline u32 wifi_mac_hash(u8 *mac)
{ {
u32 x; u32 x;
x = mac[0]; x = mac[0];
x = (x << 2) ^ mac[1]; x = (x << 2) ^ mac[1];
x = (x << 2) ^ mac[2]; x = (x << 2) ^ mac[2];
x = (x << 2) ^ mac[3]; x = (x << 2) ^ mac[3];
x = (x << 2) ^ mac[4]; x = (x << 2) ^ mac[4];
x = (x << 2) ^ mac[5]; x = (x << 2) ^ mac[5];
x ^= x >> 8; x ^= x >> 8;
x = x & (NUM_STA - 1); x = x & (NUM_STA - 1);
return x; return x;
} }

View File

@ -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->addr2, pnetwork->network.mac_address, ETH_ALEN);
memcpy(pwlanhdr->addr3, pnetwork->network.mac_address, ETH_ALEN); memcpy(pwlanhdr->addr3, pnetwork->network.mac_address, ETH_ALEN);
pbuf += sizeof(struct ieee80211_hdr_3addr); pbuf += sizeof(struct ieee80211_hdr_3addr);
len = 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: exit:
return bss; return bss;
} }
/* /*
Check the given bss is valid by kernel API cfg80211_get_bss() * Check the given bss is valid by kernel API cfg80211_get_bss()
@padapter : the given adapter * @padapter : the given adapter
*
return true if bss is valid, false for not found. * return true if bss is valid, false for not found.
*/ */
int rtw_cfg80211_check_bss(struct adapter *padapter) int rtw_cfg80211_check_bss(struct adapter *padapter)
{ {
struct wlan_bssid_ex *pnetwork = &(padapter->mlmeextpriv.mlmext_info.network); 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; struct wlan_network *scanned = pmlmepriv->cur_network_scanned;
if (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == true) { if (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == true) {
memcpy(&cur_network->network, pnetwork, sizeof(struct wlan_bssid_ex)); memcpy(&cur_network->network, pnetwork, sizeof(struct wlan_bssid_ex));
rtw_cfg80211_inform_bss(padapter, cur_network); rtw_cfg80211_inform_bss(padapter, cur_network);
} else { } 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) static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, struct ieee_param *param, u32 param_len)
{ {
int ret = 0; 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); rtw_ap_set_wep_key(padapter, param->u.crypt.key, wep_key_len, wep_key_idx, 1);
goto exit; goto exit;
} }
/* group key */ /* group key */
@ -581,7 +576,7 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, struct ieee_pa
psecuritypriv->dot118021XGrpPrivacy = _WEP40_; psecuritypriv->dot118021XGrpPrivacy = _WEP40_;
if (param->u.crypt.key_len == 13) if (param->u.crypt.key_len == 13)
psecuritypriv->dot118021XGrpPrivacy = _WEP104_; psecuritypriv->dot118021XGrpPrivacy = _WEP104_;
} else if (strcmp(param->u.crypt.alg, "TKIP") == 0) { } else if (strcmp(param->u.crypt.alg, "TKIP") == 0) {
psecuritypriv->dot118021XGrpPrivacy = _TKIP_; 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->ieee8021x_blocked = false;
pbcmc_sta->dot118021XPrivacy = psecuritypriv->dot118021XGrpPrivacy;/* rx will use bmc_sta's dot118021XPrivacy */ pbcmc_sta->dot118021XPrivacy = psecuritypriv->dot118021XGrpPrivacy;/* rx will use bmc_sta's dot118021XPrivacy */
} }
} }
goto exit; goto exit;
} }
if (psecuritypriv->dot11AuthAlgrthm == dot11AuthAlgrthm_8021X && psta) { /* psk/802_1x */ 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; psecuritypriv->busetkipkey = true;
} else if (strcmp(param->u.crypt.alg, "CCMP") == 0) { } else if (strcmp(param->u.crypt.alg, "CCMP") == 0) {
psta->dot118021XPrivacy = _AES_; psta->dot118021XPrivacy = _AES_;
} else { } else {
psta->dot118021XPrivacy = _NO_PRIVACY_; 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->ieee8021x_blocked = false;
pbcmc_sta->dot118021XPrivacy = psecuritypriv->dot118021XGrpPrivacy;/* rx will use bmc_sta's dot118021XPrivacy */ pbcmc_sta->dot118021XPrivacy = psecuritypriv->dot118021XGrpPrivacy;/* rx will use bmc_sta's dot118021XPrivacy */
} }
} }
} }
} }
exit: exit:
return ret; return ret;
} }
static int rtw_cfg80211_set_encryption(struct net_device *dev, struct ieee_param *param, u32 param_len) 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) if (strcmp(param->u.crypt.alg, "none") != 0)
psta->ieee8021x_blocked = false; psta->ieee8021x_blocked = false;
if ((padapter->securitypriv.ndisencryptstatus == Ndis802_11Encryption2Enabled) || if ((padapter->securitypriv.ndisencryptstatus == Ndis802_11Encryption2Enabled) ||
(padapter->securitypriv.ndisencryptstatus == Ndis802_11Encryption3Enabled)) { (padapter->securitypriv.ndisencryptstatus == Ndis802_11Encryption3Enabled)) {
psta->dot118021XPrivacy = padapter->securitypriv.dot11PrivacyAlgrthm; 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); strncpy((char *)param->u.crypt.alg, alg_name, IEEE_CRYPT_ALG_NAME_LEN);
if (!mac_addr || is_broadcast_ether_addr(mac_addr)) if (!mac_addr || is_broadcast_ether_addr(mac_addr))
param->u.crypt.set_tx = 0; /* for wpa/wpa2 group key */ param->u.crypt.set_tx = 0; /* for wpa/wpa2 group key */
else else
@ -932,7 +918,6 @@ addkey_end:
kfree(param); kfree(param);
return ret; return ret;
} }
static int cfg80211_rtw_get_key(struct wiphy *wiphy, struct net_device *ndev, 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; return 0;
} }
static int cfg80211_rtw_get_station(struct wiphy *wiphy, 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); */ /* ev =translate_scan(padapter, a, pnetwork, ev, stop); */
rtw_cfg80211_inform_bss(padapter, pnetwork); rtw_cfg80211_inform_bss(padapter, pnetwork);
} }
} }
spin_unlock_bh(&(pmlmepriv->scanned_queue.lock)); 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; return ret;
} }
static int cfg80211_rtw_scan(struct wiphy *wiphy 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) { } else if (request->n_channels <= 4) {
for (j = request->n_channels - 1; j >= 0; j--) for (j = request->n_channels - 1; j >= 0; j--)
for (i = 0; i < survey_times; i++) 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); _status = rtw_sitesurvey_cmd(padapter, ssid, RTW_SSID_SCAN_AMOUNT, ch, survey_times * request->n_channels);
} else { } else {
_status = rtw_sitesurvey_cmd(padapter, ssid, RTW_SSID_SCAN_AMOUNT, NULL, 0); _status = rtw_sitesurvey_cmd(padapter, ssid, RTW_SSID_SCAN_AMOUNT, NULL, 0);
} }
spin_unlock_bh(&pmlmepriv->lock); spin_unlock_bh(&pmlmepriv->lock);
if (_status == false) if (_status == false)
ret = -1; ret = -1;
@ -1327,7 +1308,6 @@ check_need_indicate_scan_done:
exit: exit:
return ret; return ret;
} }
static int cfg80211_rtw_set_wiphy_params(struct wiphy *wiphy, u32 changed) 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; return 0;
} }
if (wpa_version & (NL80211_WPA_VERSION_1 | NL80211_WPA_VERSION_2)) if (wpa_version & (NL80211_WPA_VERSION_1 | NL80211_WPA_VERSION_2))
psecuritypriv->ndisauthtype = Ndis802_11AuthModeWPAPSK; psecuritypriv->ndisauthtype = Ndis802_11AuthModeWPAPSK;
return 0; return 0;
} }
static int rtw_cfg80211_set_auth_type(struct security_priv *psecuritypriv, 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; psecuritypriv->ndisencryptstatus = Ndis802_11Encryption1Enabled;
break; break;
default: default:
psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_Open; psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_Open;
@ -1381,7 +1358,6 @@ static int rtw_cfg80211_set_auth_type(struct security_priv *psecuritypriv,
} }
return 0; return 0;
} }
static int rtw_cfg80211_set_cipher(struct security_priv *psecuritypriv, u32 cipher, bool ucast) 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 : u32 *profile_cipher = ucast ? &psecuritypriv->dot11PrivacyAlgrthm :
&psecuritypriv->dot118021XGrpPrivacy; &psecuritypriv->dot118021XGrpPrivacy;
if (!cipher) { if (!cipher) {
*profile_cipher = _NO_PRIVACY_; *profile_cipher = _NO_PRIVACY_;
psecuritypriv->ndisencryptstatus = ndisencryptstatus; 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) { if (params->ssid_len > IW_ESSID_MAX_SIZE) {
ret = -E2BIG; ret = -E2BIG;
goto exit; goto exit;
} }
@ -1671,7 +1645,6 @@ static int cfg80211_rtw_connect(struct wiphy *wiphy, struct net_device *ndev,
padapter->mlmepriv.not_indic_disco = true; padapter->mlmepriv.not_indic_disco = true;
if (adapter_wdev_data(padapter)->block == true) { if (adapter_wdev_data(padapter)->block == true) {
ret = -EBUSY; ret = -EBUSY;
goto exit; 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) { if (sme->ssid_len > IW_ESSID_MAX_SIZE) {
ret = -E2BIG; ret = -E2BIG;
goto exit; goto exit;
} }
@ -1889,7 +1861,6 @@ static int cfg80211_rtw_set_pmksa(struct wiphy *wiphy,
/* overwrite PMKID */ /* overwrite PMKID */
for (index = 0 ; index < NUM_PMKID_CACHE; index++) { for (index = 0 ; index < NUM_PMKID_CACHE; index++) {
if (!memcmp(psecuritypriv->PMKIDList[index].Bssid, (u8 *)pmksa->bssid, ETH_ALEN)) { if (!memcmp(psecuritypriv->PMKIDList[index].Bssid, (u8 *)pmksa->bssid, ETH_ALEN)) {
memcpy(psecuritypriv->PMKIDList[index].PMKID, (u8 *)pmksa->pmkid, WLAN_PMKID_LEN); memcpy(psecuritypriv->PMKIDList[index].PMKID, (u8 *)pmksa->pmkid, WLAN_PMKID_LEN);
psecuritypriv->PMKIDList[index].bUsed = true; psecuritypriv->PMKIDList[index].bUsed = true;
psecuritypriv->PMKIDIndex = index+1; psecuritypriv->PMKIDIndex = index+1;
@ -1899,7 +1870,6 @@ static int cfg80211_rtw_set_pmksa(struct wiphy *wiphy,
} }
if (!blInserted) { if (!blInserted) {
memcpy(psecuritypriv->PMKIDList[psecuritypriv->PMKIDIndex].Bssid, (u8 *)pmksa->bssid, ETH_ALEN); memcpy(psecuritypriv->PMKIDList[psecuritypriv->PMKIDIndex].Bssid, (u8 *)pmksa->bssid, ETH_ALEN);
memcpy(psecuritypriv->PMKIDList[psecuritypriv->PMKIDIndex].PMKID, (u8 *)pmksa->pmkid, WLAN_PMKID_LEN); 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; pattrib->seqnum = pmlmeext->mgnt_seq;
pmlmeext->mgnt_seq++; pmlmeext->mgnt_seq++;
pattrib->last_txcmdsz = pattrib->pktlen; pattrib->last_txcmdsz = pattrib->pktlen;
dump_mgntframe(padapter, pmgntframe); dump_mgntframe(padapter, pmgntframe);
} }
fail: fail:
@ -2147,11 +2115,8 @@ fail:
dev_kfree_skb_any(skb); dev_kfree_skb_any(skb);
return NETDEV_TX_OK; return NETDEV_TX_OK;
} }
static const struct net_device_ops rtw_cfg80211_monitor_if_ops = { static const struct net_device_ops rtw_cfg80211_monitor_if_ops = {
.ndo_start_xmit = rtw_cfg80211_monitor_if_xmit_entry, .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 else
ret = -EINVAL; ret = -EINVAL;
kfree(pbuf); kfree(pbuf);
return ret; return ret;
@ -2404,7 +2368,6 @@ static int cfg80211_rtw_del_station(struct wiphy *wiphy, struct net_device *ndev
return -EINVAL; return -EINVAL;
} }
spin_lock_bh(&pstapriv->asoc_list_lock); spin_lock_bh(&pstapriv->asoc_list_lock);
phead = &pstapriv->asoc_list; phead = &pstapriv->asoc_list;
@ -2423,9 +2386,7 @@ static int cfg80211_rtw_del_station(struct wiphy *wiphy, struct net_device *ndev
break; break;
} }
} }
} }
spin_unlock_bh(&pstapriv->asoc_list_lock); 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); associated_clients_update(padapter, updated);
return ret; return ret;
} }
static int cfg80211_rtw_change_station(struct wiphy *wiphy, struct net_device *ndev, 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, static int cfg80211_rtw_dump_station(struct wiphy *wiphy, struct net_device *ndev,
int idx, u8 *mac, struct station_info *sinfo) int idx, u8 *mac, struct station_info *sinfo)
{ {
int ret = 0; int ret = 0;
struct adapter *padapter = rtw_netdev_priv(ndev); struct adapter *padapter = rtw_netdev_priv(ndev);
struct sta_info *psta = NULL; 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: exit:
return ret; return ret;
} }
static int cfg80211_rtw_mgmt_tx(struct wiphy *wiphy, 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) 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_MCS15 300 /* Mbps */
#define MAX_BIT_RATE_40MHZ_MCS7 150 /* 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 */ /* copy mac_addr to wiphy */
memcpy(wiphy->perm_addr, padapter->eeprompriv.mac_addr, ETH_ALEN); memcpy(wiphy->perm_addr, padapter->eeprompriv.mac_addr, ETH_ALEN);
} }
static void rtw_cfg80211_preinit_wiphy(struct adapter *padapter, struct wiphy *wiphy) static void rtw_cfg80211_preinit_wiphy(struct adapter *padapter, struct wiphy *wiphy)
{ {
wiphy->signal_type = CFG80211_SIGNAL_TYPE_MBM; wiphy->signal_type = CFG80211_SIGNAL_TYPE_MBM;
wiphy->max_scan_ssids = RTW_SSID_SCAN_AMOUNT; 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->netdev = pnetdev;
wdev->iftype = NL80211_IFTYPE_STATION; /* will be init in rtw_hal_init() */ 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 */ /* pmlmepriv->fw_state = WIFI_STATION_STATE */
padapter->rtw_wdev = wdev; padapter->rtw_wdev = wdev;
pnetdev->ieee80211_ptr = wdev; pnetdev->ieee80211_ptr = wdev;
@ -2844,7 +2799,6 @@ unregister_wiphy:
wiphy_free(wiphy); wiphy_free(wiphy);
exit: exit:
return ret; return ret;
} }
void rtw_wdev_free(struct wireless_dev *wdev) void rtw_wdev_free(struct wireless_dev *wdev)

View File

@ -382,27 +382,21 @@ static int rtsx_control_thread(void *__dev)
if (chip->srb->sc_data_direction == DMA_BIDIRECTIONAL) { if (chip->srb->sc_data_direction == DMA_BIDIRECTIONAL) {
dev_err(&dev->pci->dev, "UNKNOWN data direction\n"); dev_err(&dev->pci->dev, "UNKNOWN data direction\n");
chip->srb->result = DID_ERROR << 16; chip->srb->result = DID_ERROR << 16;
} } else if (chip->srb->device->id) {
/* reject if target != 0 or if LUN is higher than
/* reject if target != 0 or if LUN is higher than * the maximum known LUN
* the maximum known LUN */
*/
else if (chip->srb->device->id) {
dev_err(&dev->pci->dev, "Bad target number (%d:%d)\n", dev_err(&dev->pci->dev, "Bad target number (%d:%d)\n",
chip->srb->device->id, chip->srb->device->id,
(u8)chip->srb->device->lun); (u8)chip->srb->device->lun);
chip->srb->result = DID_BAD_TARGET << 16; 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", dev_err(&dev->pci->dev, "Bad LUN (%d:%d)\n",
chip->srb->device->id, chip->srb->device->id,
(u8)chip->srb->device->lun); (u8)chip->srb->device->lun);
chip->srb->result = DID_BAD_TARGET << 16; chip->srb->result = DID_BAD_TARGET << 16;
} } else {
/* we've got a command, let's do it! */
/* we've got a command, let's do it! */
else {
scsi_show_command(chip); scsi_show_command(chip);
rtsx_invoke_transport(chip->srb, chip); rtsx_invoke_transport(chip->srb, chip);
} }

View File

@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
config FB_SM750 config FB_SM750
tristate "Silicon Motion SM750 framebuffer support" tristate "Silicon Motion SM750 framebuffer support"
depends on FB && PCI depends on FB && PCI && HAS_IOPORT
select FB_MODE_HELPERS select FB_MODE_HELPERS
select FB_CFB_FILLRECT select FB_CFB_FILLRECT
select FB_CFB_COPYAREA select FB_CFB_COPYAREA

View File

@ -78,8 +78,6 @@ struct vchiq_service_params_kernel {
short version_min; /* Update for incompatible changes */ short version_min; /* Update for incompatible changes */
}; };
struct vchiq_instance;
extern int vchiq_initialise(struct vchiq_instance **pinstance); extern int vchiq_initialise(struct vchiq_instance **pinstance);
extern int vchiq_shutdown(struct vchiq_instance *instance); extern int vchiq_shutdown(struct vchiq_instance *instance);
extern int vchiq_connect(struct vchiq_instance *instance); extern int vchiq_connect(struct vchiq_instance *instance);

View File

@ -415,7 +415,7 @@ free_pagelist(struct vchiq_instance *instance, struct vchiq_pagelist_info *pagel
pagelistinfo->scatterlist_mapped = 0; pagelistinfo->scatterlist_mapped = 0;
/* Deal with any partial cache lines (fragments) */ /* 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 + char *fragments = g_fragments_base +
(pagelist->type - PAGELIST_READ_WITH_FRAGMENTS) * (pagelist->type - PAGELIST_READ_WITH_FRAGMENTS) *
g_fragments_size; g_fragments_size;
@ -462,7 +462,7 @@ free_pagelist(struct vchiq_instance *instance, struct vchiq_pagelist_info *pagel
cleanup_pagelistinfo(instance, pagelistinfo); 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 device *dev = &pdev->dev;
struct vchiq_drvdata *drvdata = platform_get_drvdata(pdev); struct vchiq_drvdata *drvdata = platform_get_drvdata(pdev);

View File

@ -1,6 +1,6 @@
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
config VT6655 config VT6655
tristate "VIA Technologies VT6655 support" tristate "VIA Technologies VT6655 support"
depends on PCI && MAC80211 && m depends on PCI && HAS_IOPORT && MAC80211 && m
help help
This is a vendor-written driver for VIA VT6655. This is a vendor-written driver for VIA VT6655.

View File

@ -8,27 +8,6 @@
* *
* linux-wlan * 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 * Inquiries regarding the linux-wlan Open Source project can be

View File

@ -8,27 +8,6 @@
* *
* linux-wlan * 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 * Inquiries regarding the linux-wlan Open Source project can be

View File

@ -8,27 +8,6 @@
* *
* linux-wlan * 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 * Inquiries regarding the linux-wlan Open Source project can be

View File

@ -8,27 +8,6 @@
* *
* linux-wlan * 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 * Inquiries regarding the linux-wlan Open Source project can be

View File

@ -8,27 +8,6 @@
* *
* linux-wlan * 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 * Inquiries regarding the linux-wlan Open Source project can be

View File

@ -8,27 +8,6 @@
* *
* linux-wlan * 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 * Inquiries regarding the linux-wlan Open Source project can be

View File

@ -6,27 +6,6 @@
* *
* linux-wlan * 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 * Inquiries regarding the linux-wlan Open Source project can be

View File

@ -6,27 +6,6 @@
* *
* linux-wlan * 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 * 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 cfpollreq;
struct p80211item_uint32 privacy; struct p80211item_uint32 privacy;
struct p80211item_uint32 capinfo; struct p80211item_uint32 capinfo;
struct p80211item_uint32 basicrate1; struct p80211item_uint32 basicrate[8];
struct p80211item_uint32 basicrate2; struct p80211item_uint32 supprate[8];
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;
} __packed; } __packed;
struct p80211msg_dot11req_start { struct p80211msg_dot11req_start {

View File

@ -8,27 +8,6 @@
* *
* linux-wlan * 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 * Inquiries regarding the linux-wlan Open Source project can be

View File

@ -8,27 +8,6 @@
* *
* linux-wlan * 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 * Inquiries regarding the linux-wlan Open Source project can be

View File

@ -8,27 +8,6 @@
* *
* linux-wlan * 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 * Inquiries regarding the linux-wlan Open Source project can be

View File

@ -8,27 +8,6 @@
* *
* linux-wlan * 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 * Inquiries regarding the linux-wlan Open Source project can be

View File

@ -8,27 +8,6 @@
* *
* linux-wlan * 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 * Inquiries regarding the linux-wlan Open Source project can be

View File

@ -8,27 +8,6 @@
* *
* linux-wlan * 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 * Inquiries regarding the linux-wlan Open Source project can be

View File

@ -9,27 +9,6 @@
* *
* linux-wlan * 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 * Inquiries regarding the linux-wlan Open Source project can be

View File

@ -8,27 +8,6 @@
* *
* linux-wlan * 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 * Inquiries regarding the linux-wlan Open Source project can be

View File

@ -8,27 +8,6 @@
* *
* linux-wlan * 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 * Inquiries regarding the linux-wlan Open Source project can be

View File

@ -8,27 +8,6 @@
* *
* linux-wlan * 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 * 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) if (item->supprates[count] == 0)
break; break;
#define REQBASICRATE(N) \ for (int i = 0; i < 8; i++) {
do { \ if (count > i &&
if ((count >= (N)) && DOT11_RATE5_ISBASIC_GET( \ DOT11_RATE5_ISBASIC_GET(item->supprates[i])) {
item->supprates[(N) - 1])) { \ req->basicrate[i].data = item->supprates[i];
req->basicrate ## N .data = item->supprates[(N) - 1]; \ req->basicrate[i].status =
req->basicrate ## N .status = \ P80211ENUM_msgitem_status_data_ok;
P80211ENUM_msgitem_status_data_ok; \ }
} \ }
} while (0)
REQBASICRATE(1); for (int i = 0; i < 8; i++) {
REQBASICRATE(2); if (count > i) {
REQBASICRATE(3); req->supprate[i].data = item->supprates[i];
REQBASICRATE(4); req->supprate[i].status =
REQBASICRATE(5); P80211ENUM_msgitem_status_data_ok;
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);
/* beacon period */ /* beacon period */
req->beaconperiod.status = P80211ENUM_msgitem_status_data_ok; req->beaconperiod.status = P80211ENUM_msgitem_status_data_ok;

View File

@ -8,27 +8,6 @@
* *
* linux-wlan * 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 * Inquiries regarding the linux-wlan Open Source project can be

View File

@ -8,27 +8,6 @@
* *
* linux-wlan * 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 * Inquiries regarding the linux-wlan Open Source project can be

View File

@ -8,27 +8,6 @@
* *
* linux-wlan * 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 * Inquiries regarding the linux-wlan Open Source project can be