diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2009-07-03 10:06:40 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-09-15 15:01:37 -0400 |
commit | db28336458f7f86c9c1b977e0235dd8baac93253 (patch) | |
tree | f8a4018a53ad910ffa3ca12aa2b85449bd83bbb8 | |
parent | a7e3c1d62124ca5de34aebd0451fa211d410ef93 (diff) |
Staging: rtl8192su: remove USB_RX_AGGREGATION_SUPPORT ifdefs
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | drivers/staging/rtl8192su/Makefile | 1 | ||||
-rw-r--r-- | drivers/staging/rtl8192su/ieee80211/rtl819x_HT.h | 6 | ||||
-rw-r--r-- | drivers/staging/rtl8192su/ieee80211/rtl819x_HTProc.c | 15 | ||||
-rw-r--r-- | drivers/staging/rtl8192su/r8192U.h | 32 | ||||
-rw-r--r-- | drivers/staging/rtl8192su/r8192U_core.c | 471 | ||||
-rw-r--r-- | drivers/staging/rtl8192su/r8192U_dm.c | 98 | ||||
-rw-r--r-- | drivers/staging/rtl8192su/r819xU_HTType.h | 6 |
7 files changed, 0 insertions, 629 deletions
diff --git a/drivers/staging/rtl8192su/Makefile b/drivers/staging/rtl8192su/Makefile index 11cf9f182e0..c51889d7e9a 100644 --- a/drivers/staging/rtl8192su/Makefile +++ b/drivers/staging/rtl8192su/Makefile | |||
@@ -12,7 +12,6 @@ EXTRA_CFLAGS += -DRTL8190_Download_Firmware_From_Header=1 | |||
12 | EXTRA_CFLAGS += -DRTL8192S_PREPARE_FOR_NORMAL_RELEASE | 12 | EXTRA_CFLAGS += -DRTL8192S_PREPARE_FOR_NORMAL_RELEASE |
13 | EXTRA_CFLAGS += -DRTL8192SU_DISABLE_IQK=1 | 13 | EXTRA_CFLAGS += -DRTL8192SU_DISABLE_IQK=1 |
14 | 14 | ||
15 | #EXTRA_CFLAGS += -DUSB_RX_AGGREGATION_SUPPORT=0 | ||
16 | #EXTRA_CFLAGS += -DUSB_TX_DRIVER_AGGREGATION_ENABLE=0 | 15 | #EXTRA_CFLAGS += -DUSB_TX_DRIVER_AGGREGATION_ENABLE=0 |
17 | #EXTRA_CFLAGS += -DRTL8192SU_DISABLE_CCK_RATE=0 | 16 | #EXTRA_CFLAGS += -DRTL8192SU_DISABLE_CCK_RATE=0 |
18 | EXTRA_CFLAGS += -DRTL8192S_DISABLE_FW_DM=0 | 17 | EXTRA_CFLAGS += -DRTL8192S_DISABLE_FW_DM=0 |
diff --git a/drivers/staging/rtl8192su/ieee80211/rtl819x_HT.h b/drivers/staging/rtl8192su/ieee80211/rtl819x_HT.h index 16a7462d7df..22a3d450287 100644 --- a/drivers/staging/rtl8192su/ieee80211/rtl819x_HT.h +++ b/drivers/staging/rtl8192su/ieee80211/rtl819x_HT.h | |||
@@ -327,12 +327,6 @@ typedef struct _RT_HIGH_THROUGHPUT{ | |||
327 | #ifdef USB_TX_DRIVER_AGGREGATION_ENABLE | 327 | #ifdef USB_TX_DRIVER_AGGREGATION_ENABLE |
328 | u8 UsbTxAggrNum; | 328 | u8 UsbTxAggrNum; |
329 | #endif | 329 | #endif |
330 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
331 | u8 UsbRxFwAggrEn; | ||
332 | u8 UsbRxFwAggrPageNum; | ||
333 | u8 UsbRxFwAggrPacketNum; | ||
334 | u8 UsbRxFwAggrTimeout; | ||
335 | #endif | ||
336 | 330 | ||
337 | // Add for Broadcom(Linksys) IOT. Joseph | 331 | // Add for Broadcom(Linksys) IOT. Joseph |
338 | u8 bIsPeerBcm; | 332 | u8 bIsPeerBcm; |
diff --git a/drivers/staging/rtl8192su/ieee80211/rtl819x_HTProc.c b/drivers/staging/rtl8192su/ieee80211/rtl819x_HTProc.c index d263cdfca6d..eca9ac27c2c 100644 --- a/drivers/staging/rtl8192su/ieee80211/rtl819x_HTProc.c +++ b/drivers/staging/rtl8192su/ieee80211/rtl819x_HTProc.c | |||
@@ -105,21 +105,6 @@ void HTUpdateDefaultSetting(struct ieee80211_device* ieee) | |||
105 | #ifdef USB_TX_DRIVER_AGGREGATION_ENABLE | 105 | #ifdef USB_TX_DRIVER_AGGREGATION_ENABLE |
106 | pHTInfo->UsbTxAggrNum = 4; | 106 | pHTInfo->UsbTxAggrNum = 4; |
107 | #endif | 107 | #endif |
108 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
109 | #ifdef RTL8192SU | ||
110 | pHTInfo->UsbRxFwAggrEn = 1; | ||
111 | pHTInfo->UsbRxFwAggrPageNum = 16; | ||
112 | pHTInfo->UsbRxFwAggrPacketNum = 8; | ||
113 | pHTInfo->UsbRxFwAggrTimeout = 4; ////usb rx FW aggregation timeout threshold.It's in units of 64us | ||
114 | // For page size of receive packet buffer. | ||
115 | pHTInfo->UsbRxPageSize= 128; | ||
116 | #else | ||
117 | pHTInfo->UsbRxFwAggrEn = 1; | ||
118 | pHTInfo->UsbRxFwAggrPageNum = 24; | ||
119 | pHTInfo->UsbRxFwAggrPacketNum = 8; | ||
120 | pHTInfo->UsbRxFwAggrTimeout = 16; ////usb rx FW aggregation timeout threshold.It's in units of 64us | ||
121 | #endif | ||
122 | #endif | ||
123 | 108 | ||
124 | 109 | ||
125 | } | 110 | } |
diff --git a/drivers/staging/rtl8192su/r8192U.h b/drivers/staging/rtl8192su/r8192U.h index 222b615499e..c5bf13ec333 100644 --- a/drivers/staging/rtl8192su/r8192U.h +++ b/drivers/staging/rtl8192su/r8192U.h | |||
@@ -693,11 +693,7 @@ typedef struct rx_desc_819x_usb{ | |||
693 | //DWORD 2 | 693 | //DWORD 2 |
694 | u16 Seq:12; | 694 | u16 Seq:12; |
695 | u16 Frag:4; | 695 | u16 Frag:4; |
696 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
697 | u8 UsbAggPktNum;//:8; | ||
698 | #else | ||
699 | u8 NextPktLen;//:8; | 696 | u8 NextPktLen;//:8; |
700 | #endif | ||
701 | u8 Rsvd0:6; | 697 | u8 Rsvd0:6; |
702 | u8 NextIND:1; | 698 | u8 NextIND:1; |
703 | u8 Rsvd1:1; | 699 | u8 Rsvd1:1; |
@@ -751,27 +747,6 @@ typedef struct rx_desc_819x_usb{ | |||
751 | }rx_desc_819x_usb, *prx_desc_819x_usb; | 747 | }rx_desc_819x_usb, *prx_desc_819x_usb; |
752 | #endif | 748 | #endif |
753 | 749 | ||
754 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
755 | typedef struct _rx_desc_819x_usb_aggr_subframe{ | ||
756 | //DOWRD 0 | ||
757 | u16 Length:14; | ||
758 | u16 CRC32:1; | ||
759 | u16 ICV:1; | ||
760 | u8 Offset; | ||
761 | u8 RxDrvInfoSize; | ||
762 | //DOWRD 1 | ||
763 | u8 Shift:2; | ||
764 | u8 PHYStatus:1; | ||
765 | u8 SWDec:1; | ||
766 | u8 Reserved1:4; | ||
767 | u8 Reserved2; | ||
768 | u16 Reserved3; | ||
769 | //DWORD 2 | ||
770 | //u4Byte Reserved3; | ||
771 | //DWORD 3 | ||
772 | //u4Byte BufferAddress; | ||
773 | }rx_desc_819x_usb_aggr_subframe, *prx_desc_819x_usb_aggr_subframe; | ||
774 | #endif | ||
775 | 750 | ||
776 | #ifdef RTL8192SU | 751 | #ifdef RTL8192SU |
777 | // | 752 | // |
@@ -1896,13 +1871,6 @@ typedef struct r8192_priv | |||
1896 | //#endif | 1871 | //#endif |
1897 | 1872 | ||
1898 | 1873 | ||
1899 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
1900 | bool bCurrentRxAggrEnable; | ||
1901 | bool bForcedUsbRxAggr; | ||
1902 | u32 ForcedUsbRxAggrInfo; | ||
1903 | u32 LastUsbRxAggrInfoSetting; | ||
1904 | u32 RegUsbRxAggrInfo; | ||
1905 | #endif | ||
1906 | 1874 | ||
1907 | 1875 | ||
1908 | 1876 | ||
diff --git a/drivers/staging/rtl8192su/r8192U_core.c b/drivers/staging/rtl8192su/r8192U_core.c index efcc5d1c5d4..19ed783a8ce 100644 --- a/drivers/staging/rtl8192su/r8192U_core.c +++ b/drivers/staging/rtl8192su/r8192U_core.c | |||
@@ -1601,12 +1601,6 @@ static void rtl8192_rx_isr(struct urb *urb); | |||
1601 | u32 get_rxpacket_shiftbytes_819xusb(struct ieee80211_rx_stats *pstats) | 1601 | u32 get_rxpacket_shiftbytes_819xusb(struct ieee80211_rx_stats *pstats) |
1602 | { | 1602 | { |
1603 | 1603 | ||
1604 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
1605 | if (pstats->bisrxaggrsubframe) | ||
1606 | return (sizeof(rx_desc_819x_usb) + pstats->RxDrvInfoSize | ||
1607 | + pstats->RxBufShift + 8); | ||
1608 | else | ||
1609 | #endif | ||
1610 | return (sizeof(rx_desc_819x_usb) + pstats->RxDrvInfoSize | 1604 | return (sizeof(rx_desc_819x_usb) + pstats->RxDrvInfoSize |
1611 | + pstats->RxBufShift); | 1605 | + pstats->RxBufShift); |
1612 | 1606 | ||
@@ -6780,20 +6774,6 @@ void rtl8192_hwconfig(struct net_device* dev) | |||
6780 | } | 6774 | } |
6781 | 6775 | ||
6782 | #ifdef RTL8192SU | 6776 | #ifdef RTL8192SU |
6783 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
6784 | u8 rtl8192SU_MapRxPageSizeToIdx(u16 RxPktSize ) | ||
6785 | { | ||
6786 | switch(RxPktSize) | ||
6787 | { | ||
6788 | case 64: return 0; break; | ||
6789 | case 128 : return 1; break; | ||
6790 | case 256: return 2; break; | ||
6791 | case 512: return 3; break; | ||
6792 | case 1024: return 4; break; | ||
6793 | default: return 0; // We use 64bytes in defult. | ||
6794 | } | ||
6795 | } | ||
6796 | #endif | ||
6797 | 6777 | ||
6798 | // | 6778 | // |
6799 | // Description: | 6779 | // Description: |
@@ -6951,165 +6931,8 @@ static void rtl8192SU_MacConfigBeforeFwDownloadASIC(struct net_device *dev) | |||
6951 | 6931 | ||
6952 | RT_TRACE(COMP_INIT, "<---MacConfigBeforeFwDownloadASIC()\n"); | 6932 | RT_TRACE(COMP_INIT, "<---MacConfigBeforeFwDownloadASIC()\n"); |
6953 | } | 6933 | } |
6954 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
6955 | void rtl8192SU_HalUsbRxAggr8192SUsb(struct net_device *dev, bool Value) | ||
6956 | { | ||
6957 | struct r8192_priv *priv = ieee80211_priv((struct net_device *)dev); | ||
6958 | PRT_HIGH_THROUGHPUT pHTInfo = priv->ieee80211->pHTInfo;; | ||
6959 | 6934 | ||
6960 | 6935 | ||
6961 | // | ||
6962 | // <Roger_Notes> We decrease Rx page aggregated threshold in B/G mode. | ||
6963 | // 2008.10.29 | ||
6964 | // | ||
6965 | if(priv->ieee80211->mode == WIRELESS_MODE_B || priv->ieee80211->mode == WIRELESS_MODE_G) | ||
6966 | {// Overwrite current settings to disable Rx Aggregation. | ||
6967 | Value = false; | ||
6968 | } | ||
6969 | |||
6970 | // Alway set Rx Aggregation to Disable if current platform is Win2K USB 1.1, by Emily | ||
6971 | //if(PLATFORM_LIMITED_RX_BUF_SIZE(Adapter)) | ||
6972 | // Value = FALSE; | ||
6973 | |||
6974 | // Always set Rx Aggregation to Disable if connected AP is Realtek AP, by Joseph | ||
6975 | //if(pHTInfo->bCurrentRT2RTAggregation) | ||
6976 | // Value = FALSE; | ||
6977 | |||
6978 | // The RX aggregation may be enabled/disabled dynamically according current traffic stream. | ||
6979 | //Enable Rx aggregation if downlink traffic is busier than uplink traffic. by Guangan | ||
6980 | if(priv->bCurrentRxAggrEnable != Value) | ||
6981 | { | ||
6982 | priv->bCurrentRxAggrEnable = Value; | ||
6983 | //Adapter->HalFunc.SetHwRegHandler(Adapter, HW_VAR_USB_RX_AGGR, (pu1Byte)&pHalData->bCurrentRxAggrEnable); | ||
6984 | { | ||
6985 | //u8 Setting = ((pu1Byte)(val))[0]; | ||
6986 | u8 Setting = priv->bCurrentRxAggrEnable | ||
6987 | u32 ulValue; | ||
6988 | |||
6989 | if(Setting==0) | ||
6990 | { | ||
6991 | // | ||
6992 | // <Roger_Notes> Reduce aggregated page threshold to 0x01 and set minimal threshold 0x0a. | ||
6993 | // i.e., disable Rx aggregation. | ||
6994 | // | ||
6995 | ulValue = 0x0001000a; | ||
6996 | } | ||
6997 | else | ||
6998 | { | ||
6999 | //PRT_HIGH_THROUGHPUT pHTInfo = priv->ieee80211->pHTInfo; | ||
7000 | //HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter); | ||
7001 | |||
7002 | if (priv->bForcedUsbRxAggr) | ||
7003 | {// Using forced settings. | ||
7004 | ulValue = priv->ForcedUsbRxAggrInfo; | ||
7005 | } | ||
7006 | else | ||
7007 | {// Using default settings. | ||
7008 | |||
7009 | ulValue = (pHTInfo->UsbRxFwAggrEn<<24) | (pHTInfo->UsbRxFwAggrPageNum<<16) | | ||
7010 | (pHTInfo->UsbRxFwAggrPacketNum<<8) | (pHTInfo->UsbRxFwAggrTimeout); | ||
7011 | } | ||
7012 | } | ||
7013 | |||
7014 | write_nic_byte(dev, RXDMA_AGG_PG_TH, (u8)((ulValue&0xff0000)>>16)); | ||
7015 | write_nic_byte_E(dev, USB_RX_AGG_TIMEOUT, (u8)(ulValue&0xff)); | ||
7016 | |||
7017 | priv->LastUsbRxAggrInfoSetting = ulValue; | ||
7018 | |||
7019 | RT_TRACE(COMP_HT|COMP_RECV, "Set HW_VAR_USB_RX_AGGR: ulValue(%#x)\n", ulValue); | ||
7020 | } | ||
7021 | RT_TRACE(COMP_RECV, "HalUsbRxAggr8192SUsb() : Set RxAggregation to %s\n", Value?"ON":"OFF"); | ||
7022 | } | ||
7023 | |||
7024 | } | ||
7025 | #endif | ||
7026 | |||
7027 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
7028 | void rtl8192SU_HalUsbRxAggr8192SUsb(struct net_device *dev, bool Value) | ||
7029 | { | ||
7030 | struct r8192_priv *priv = ieee80211_priv((struct net_device *)dev); | ||
7031 | PRT_HIGH_THROUGHPUT pHTInfo = priv->ieee80211->pHTInfo;; | ||
7032 | |||
7033 | |||
7034 | // | ||
7035 | // <Roger_Notes> We decrease Rx page aggregated threshold in B/G mode. | ||
7036 | // 2008.10.29 | ||
7037 | // | ||
7038 | if((priv->ieee80211->mode & WIRELESS_MODE_B) || (priv->ieee80211->mode & WIRELESS_MODE_G)) | ||
7039 | {// Overwrite current settings to disable Rx Aggregation. | ||
7040 | Value = false; | ||
7041 | } | ||
7042 | |||
7043 | // Alway set Rx Aggregation to Disable if current platform is Win2K USB 1.1, by Emily | ||
7044 | //if(PLATFORM_LIMITED_RX_BUF_SIZE(Adapter)) | ||
7045 | // Value = FALSE; | ||
7046 | |||
7047 | // Always set Rx Aggregation to Disable if connected AP is Realtek AP, by Joseph | ||
7048 | //if(pHTInfo->bCurrentRT2RTAggregation) | ||
7049 | // Value = FALSE; | ||
7050 | |||
7051 | // The RX aggregation may be enabled/disabled dynamically according current traffic stream. | ||
7052 | //Enable Rx aggregation if downlink traffic is busier than uplink traffic. by Guangan | ||
7053 | if(priv->bCurrentRxAggrEnable != Value) | ||
7054 | { | ||
7055 | priv->bCurrentRxAggrEnable = Value; | ||
7056 | //Adapter->HalFunc.SetHwRegHandler(Adapter, HW_VAR_USB_RX_AGGR, (pu1Byte)&pHalData->bCurrentRxAggrEnable); | ||
7057 | { | ||
7058 | //u8 Setting = ((pu1Byte)(val))[0]; | ||
7059 | u8 Setting = priv->bCurrentRxAggrEnable | ||
7060 | u32 ulValue; | ||
7061 | |||
7062 | if(Setting==0) | ||
7063 | { | ||
7064 | // | ||
7065 | // <Roger_Notes> Reduce aggregated page threshold to 0x01 and set minimal threshold 0x0a. | ||
7066 | // i.e., disable Rx aggregation. | ||
7067 | // | ||
7068 | ulValue = 0x0001000a; | ||
7069 | } | ||
7070 | else | ||
7071 | { | ||
7072 | //PRT_HIGH_THROUGHPUT pHTInfo = priv->ieee80211->pHTInfo; | ||
7073 | //HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter); | ||
7074 | |||
7075 | if (priv->bForcedUsbRxAggr) | ||
7076 | {// Using forced settings. | ||
7077 | ulValue = priv->ForcedUsbRxAggrInfo; | ||
7078 | } | ||
7079 | else | ||
7080 | {// Using default settings. | ||
7081 | |||
7082 | ulValue = (pHTInfo->UsbRxFwAggrEn<<24) | (pHTInfo->UsbRxFwAggrPageNum<<16) | | ||
7083 | (pHTInfo->UsbRxFwAggrPacketNum<<8) | (pHTInfo->UsbRxFwAggrTimeout); | ||
7084 | } | ||
7085 | } | ||
7086 | |||
7087 | write_nic_byte(dev, RXDMA_AGG_PG_TH, (u8)((ulValue&0xff0000)>>16)); | ||
7088 | write_nic_byte_E(dev, USB_RX_AGG_TIMEOUT, (u8)(ulValue&0xff)); | ||
7089 | |||
7090 | priv->LastUsbRxAggrInfoSetting = ulValue; | ||
7091 | |||
7092 | RT_TRACE(COMP_HT|COMP_RECV, "Set HW_VAR_USB_RX_AGGR: ulValue(%#x)\n", ulValue); | ||
7093 | } | ||
7094 | RT_TRACE(COMP_RECV, "HalUsbRxAggr8192SUsb() : Set RxAggregation to %s\n", Value?"ON":"OFF"); | ||
7095 | } | ||
7096 | |||
7097 | } | ||
7098 | |||
7099 | u8 rtl8192SU_MapRxPageSizeToIdx(u16 RxPktSize ) | ||
7100 | { | ||
7101 | switch(RxPktSize) | ||
7102 | { | ||
7103 | case 64: return 0; break; | ||
7104 | case 128 : return 1; break; | ||
7105 | case 256: return 2; break; | ||
7106 | case 512: return 3; break; | ||
7107 | case 1024: return 4; break; | ||
7108 | default: return 0; // We use 64bytes in defult. | ||
7109 | } | ||
7110 | } | ||
7111 | #endif | ||
7112 | |||
7113 | #if 0 | 6936 | #if 0 |
7114 | static void rtl8192SU_SetHwRegAmpduMinSpace(struct net_device *dev, u8 MinSpaceCfg) | 6937 | static void rtl8192SU_SetHwRegAmpduMinSpace(struct net_device *dev, u8 MinSpaceCfg) |
7115 | { | 6938 | { |
@@ -7224,19 +7047,6 @@ static void rtl8192SU_MacConfigAfterFwDownload(struct net_device *dev) | |||
7224 | #endif | 7047 | #endif |
7225 | #endif | 7048 | #endif |
7226 | 7049 | ||
7227 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
7228 | // Size of Tx/Rx packet buffer. | ||
7229 | tmpU1b = read_nic_byte(dev, PBP); | ||
7230 | RxPageCfg = rtl8192SU_MapRxPageSizeToIdx(priv->ieee80211->pHTInfo.UsbRxPageSize); | ||
7231 | write_nic_byte(dev, PBP, tmpU1b|RxPageCfg); // Set page size of Rx packet buffer to 128 bytes. | ||
7232 | tmpU1b = read_nic_byte(dev, RXDMA); | ||
7233 | |||
7234 | write_nic_byte(dev, RXDMA, tmpU1b|RXDMA_AGG_EN); // Rx aggregation enable. | ||
7235 | //PlatformIOWrite1Byte(Adapter, RXDMA_AGG_PG_TH, 0x14); // Set page size of RxDMA aggregation threshold, default: 20. | ||
7236 | //write_nic_byte(dev, RXDMA_AGG_PG_TH, 0x40); // By Scott's suggestion, 2008.09.30.//92su del | ||
7237 | //write_nic_byte(dev, USB_RX_AGG_TIMEOUT, RXDMA_AGG_TIMEOUT_17_4_MS); // Set aggregation time-out to 17ms/4. | ||
7238 | rtl8192SU_HalUsbRxAggr8192SUsb(dev, true); | ||
7239 | #endif | ||
7240 | 7050 | ||
7241 | // Fix the RX FIFO issue(USB error), Rivesed by Roger, 2008-06-14 | 7051 | // Fix the RX FIFO issue(USB error), Rivesed by Roger, 2008-06-14 |
7242 | tmpU1b = read_nic_byte_E(dev, 0x5C); | 7052 | tmpU1b = read_nic_byte_E(dev, 0x5C); |
@@ -7961,23 +7771,6 @@ bool rtl8192_adapter_start(struct net_device *dev) | |||
7961 | for (i=0; i<QOS_QUEUE_NUM; i++) | 7771 | for (i=0; i<QOS_QUEUE_NUM; i++) |
7962 | write_nic_dword(dev, WDCAPARA_ADD[i], DEFAULT_EDCA); | 7772 | write_nic_dword(dev, WDCAPARA_ADD[i], DEFAULT_EDCA); |
7963 | } | 7773 | } |
7964 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
7965 | //3 For usb rx firmware aggregation control | ||
7966 | if(priv->ResetProgress == RESET_TYPE_NORESET) | ||
7967 | { | ||
7968 | u32 ulValue; | ||
7969 | PRT_HIGH_THROUGHPUT pHTInfo = priv->ieee80211->pHTInfo; | ||
7970 | ulValue = (pHTInfo->UsbRxFwAggrEn<<24) | (pHTInfo->UsbRxFwAggrPageNum<<16) | | ||
7971 | (pHTInfo->UsbRxFwAggrPacketNum<<8) | (pHTInfo->UsbRxFwAggrTimeout); | ||
7972 | /* | ||
7973 | * If usb rx firmware aggregation is enabled, | ||
7974 | * when anyone of three threshold conditions above is reached, | ||
7975 | * firmware will send aggregated packet to driver. | ||
7976 | */ | ||
7977 | write_nic_dword(dev, 0x1a8, ulValue); | ||
7978 | priv->bCurrentRxAggrEnable = true; | ||
7979 | } | ||
7980 | #endif | ||
7981 | 7774 | ||
7982 | rtl8192_phy_configmac(dev); | 7775 | rtl8192_phy_configmac(dev); |
7983 | 7776 | ||
@@ -10496,11 +10289,6 @@ void rtl8192SU_query_rxdesc_status(struct sk_buff *skb, struct ieee80211_rx_stat | |||
10496 | //pu1Byte pDesc = (pu1Byte)pDescIn; | 10289 | //pu1Byte pDesc = (pu1Byte)pDescIn; |
10497 | //PRX_DRIVER_INFO_8192S pDrvInfo; | 10290 | //PRX_DRIVER_INFO_8192S pDrvInfo; |
10498 | 10291 | ||
10499 | #ifdef USB_RX_AGGREGATION_SUPPORT//FIXLZM | ||
10500 | //if (bIsRxAggrSubframe) | ||
10501 | rx_desc_819x_usb_aggr_subframe *desc = (rx_desc_819x_usb_aggr_subframe *)skb->data; | ||
10502 | else | ||
10503 | #endif | ||
10504 | rx_desc_819x_usb *desc = (rx_desc_819x_usb *)skb->data; | 10292 | rx_desc_819x_usb *desc = (rx_desc_819x_usb *)skb->data; |
10505 | 10293 | ||
10506 | if(0) | 10294 | if(0) |
@@ -10637,19 +10425,6 @@ void query_rxdesc_status(struct sk_buff *skb, struct ieee80211_rx_stats *stats, | |||
10637 | // | 10425 | // |
10638 | //Get Rx Descriptor Information | 10426 | //Get Rx Descriptor Information |
10639 | // | 10427 | // |
10640 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
10641 | if (bIsRxAggrSubframe) | ||
10642 | { | ||
10643 | rx_desc_819x_usb_aggr_subframe *desc = (rx_desc_819x_usb_aggr_subframe *)skb->data; | ||
10644 | stats->Length = desc->Length ; | ||
10645 | stats->RxDrvInfoSize = desc->RxDrvInfoSize; | ||
10646 | stats->RxBufShift = 0; //RxBufShift = 2 in RxDesc, but usb didn't shift bytes in fact. | ||
10647 | stats->bICV = desc->ICV; | ||
10648 | stats->bCRC = desc->CRC32; | ||
10649 | stats->bHwError = stats->bCRC|stats->bICV; | ||
10650 | stats->Decrypted = !desc->SWDec;//RTL8190 set this bit to indicate that Hw does not decrypt packet | ||
10651 | } else | ||
10652 | #endif | ||
10653 | { | 10428 | { |
10654 | rx_desc_819x_usb *desc = (rx_desc_819x_usb *)skb->data; | 10429 | rx_desc_819x_usb *desc = (rx_desc_819x_usb *)skb->data; |
10655 | 10430 | ||
@@ -10738,12 +10513,6 @@ void query_rxdesc_status(struct sk_buff *skb, struct ieee80211_rx_stats *stats, | |||
10738 | skb_pull(skb,stats->RxBufShift + stats->RxDrvInfoSize); | 10513 | skb_pull(skb,stats->RxBufShift + stats->RxDrvInfoSize); |
10739 | } | 10514 | } |
10740 | 10515 | ||
10741 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
10742 | /* for the rx aggregated sub frame, the redundant space truelly contained in the packet */ | ||
10743 | if(bIsRxAggrSubframe) { | ||
10744 | skb_pull(skb, 8); | ||
10745 | } | ||
10746 | #endif | ||
10747 | /* for debug 2008.5.29 */ | 10516 | /* for debug 2008.5.29 */ |
10748 | #if 0 | 10517 | #if 0 |
10749 | { | 10518 | { |
@@ -10906,27 +10675,6 @@ void rtl8192SU_rx_nomal(struct sk_buff* skb) | |||
10906 | struct ieee80211_hdr_1addr *ieee80211_hdr = NULL; | 10675 | struct ieee80211_hdr_1addr *ieee80211_hdr = NULL; |
10907 | bool unicast_packet = false; | 10676 | bool unicast_packet = false; |
10908 | 10677 | ||
10909 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
10910 | struct sk_buff *agg_skb = NULL; | ||
10911 | u32 TotalLength = 0;//Total packet length for all aggregated packets. | ||
10912 | u32 TempDWord = 0; | ||
10913 | u32 PacketLength = 0;// Per-packet length include size of RxDesc. | ||
10914 | u32 PacketOccupiedLendth = 0; | ||
10915 | u8 TempByte = 0; | ||
10916 | u32 PacketShiftBytes = 0; | ||
10917 | rx_desc_819x_usb_aggr_subframe *RxDescr = NULL; | ||
10918 | u8 PaddingBytes = 0; | ||
10919 | //add just for testing | ||
10920 | u8 testing; | ||
10921 | |||
10922 | u8 TotalAggPkt = 0; | ||
10923 | PRT_HIGH_THROUGHPUT pHTInfo =priv-> ieee80211->pHTInfo; | ||
10924 | u16 RxPageSize = pHTInfo->UsbRxPageSize; | ||
10925 | |||
10926 | stats->nTotalAggPkt = 0; | ||
10927 | //stats->bIsRxAggrSubframe = FALSE; | ||
10928 | |||
10929 | #endif | ||
10930 | //printk("**********skb->len = %d\n", skb->len); | 10678 | //printk("**********skb->len = %d\n", skb->len); |
10931 | /* 20 is for ps-poll */ | 10679 | /* 20 is for ps-poll */ |
10932 | if((skb->len >=(20 + sizeof(rx_desc_819x_usb))) && (skb->len < RX_URB_SIZE)) { | 10680 | if((skb->len >=(20 + sizeof(rx_desc_819x_usb))) && (skb->len < RX_URB_SIZE)) { |
@@ -10936,14 +10684,6 @@ void rtl8192SU_rx_nomal(struct sk_buff* skb) | |||
10936 | /* TODO */ | 10684 | /* TODO */ |
10937 | 10685 | ||
10938 | /* hardware related info */ | 10686 | /* hardware related info */ |
10939 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
10940 | TotalAggPkt = stats->nTotalAggPkt; | ||
10941 | PacketLength = stats->Length + GetRxPacketShiftBytes8192SU(&stats, false); | ||
10942 | |||
10943 | agg_skb = skb; | ||
10944 | skb = dev_alloc_skb(PacketLength); | ||
10945 | memcpy(skb_put(skb,PacketLength),agg_skb->data,PacketLength); | ||
10946 | #endif | ||
10947 | priv->stats.rxoktotal++; //YJ,test,090108 | 10687 | priv->stats.rxoktotal++; //YJ,test,090108 |
10948 | 10688 | ||
10949 | /* Process the MPDU recevied */ | 10689 | /* Process the MPDU recevied */ |
@@ -10971,106 +10711,6 @@ void rtl8192SU_rx_nomal(struct sk_buff* skb) | |||
10971 | } | 10711 | } |
10972 | 10712 | ||
10973 | //up is firs pkt, follow is next and next | 10713 | //up is firs pkt, follow is next and next |
10974 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
10975 | // | ||
10976 | // The following operations are for processing Rx aggregated packets. | ||
10977 | // | ||
10978 | if(TotalAggPkt>0) | ||
10979 | TotalAggPkt--; | ||
10980 | |||
10981 | while ( TotalAggPkt>0 ) | ||
10982 | {// More aggregated packets need to process. | ||
10983 | |||
10984 | u8 tmpCRC = 0, tmpICV = 0; | ||
10985 | |||
10986 | //Page size must align to multiple of 128-Bytes. | ||
10987 | if((PacketLength%RxPageSize) != 0) | ||
10988 | //PacketLength = ((PacketLength/RxPageSize)+1)*RxPageSize; | ||
10989 | PacketLength = ((PacketLength>>7)+1)*RxPageSize; // RxPageSize is 128bytes as default. | ||
10990 | |||
10991 | // Current total packet occupied length in this buffer. | ||
10992 | PacketOccupiedLendth += PacketLength; | ||
10993 | |||
10994 | #if (defined (RTL8192SU_FPGA_2MAC_VERIFICATION)||defined (RTL8192SU_ASIC_VERIFICATION)) | ||
10995 | //if(PacketOccupiedLendth>pContext->BufLenUsed) | ||
10996 | if(PacketOccupiedLendth>skb->len) | ||
10997 | { | ||
10998 | RT_TRACE(COMP_RECV, "(1)HalUsbInMpduComplete8192SUsb(): pRtRfdStatus->Length(%#x)!!\n", stats->Length); | ||
10999 | RT_TRACE(COMP_RECV, "(1)HalUsbInMpduComplete8192SUsb(): Invalid PacketOccupiedLendth(%#x)!!, BufLenUsed(%#x)\n", PacketOccupiedLendth, stats->BufLenUsed); | ||
11000 | break; | ||
11001 | } | ||
11002 | #endif | ||
11003 | |||
11004 | skb_pull(agg_skb, PacketLength); | ||
11005 | |||
11006 | // | ||
11007 | // Process the MPDU recevied. | ||
11008 | // | ||
11009 | //RT_TRACE(COMP_RECV,"%s:aggred pkt,total_len = %d\n",__FUNCTION__,agg_skb->len); | ||
11010 | RxDescr = (rx_desc_819x_usb_aggr_subframe *)(agg_skb->data); | ||
11011 | |||
11012 | #if 0//92SU del | ||
11013 | tmpCRC = RxDescr->CRC32; | ||
11014 | tmpICV = RxDescr->ICV; | ||
11015 | memcpy(agg_skb->data, &agg_skb->data[44], 2); | ||
11016 | RxDescr->CRC32 = tmpCRC; | ||
11017 | RxDescr->ICV = tmpICV; | ||
11018 | #endif | ||
11019 | memset(&stats, 0, sizeof(struct ieee80211_rx_stats)); | ||
11020 | stats.signal = 0; | ||
11021 | stats.noise = -98; | ||
11022 | stats.rate = 0; | ||
11023 | stats.freq = IEEE80211_24GHZ_BAND; | ||
11024 | |||
11025 | rtl8192SU_query_rxdesc_status(agg_skb, &stats, true); | ||
11026 | //PacketLength = stats.Length; | ||
11027 | PacketLength = stats.Length + GetRxPacketShiftBytes8192SU(&stats, true); | ||
11028 | |||
11029 | #if (defined (RTL8192SU_FPGA_2MAC_VERIFICATION)||defined (RTL8192SU_ASIC_VERIFICATION)) | ||
11030 | if((PacketOccupiedLendth+PacketLength)>skb->len) | ||
11031 | { | ||
11032 | RT_TRACE(COMP_RECV, "(2)HalUsbInMpduComplete8192SUsb(): Invalid PacketOccupiedLendth(%#x)+PacketLength(%#x)!!, BufLenUsed(%#x)\n", | ||
11033 | PacketOccupiedLendth, PacketLength, pContext->BufLenUsed); | ||
11034 | break; | ||
11035 | } | ||
11036 | #endif | ||
11037 | |||
11038 | if(PacketLength > agg_skb->len) { | ||
11039 | break; | ||
11040 | } | ||
11041 | |||
11042 | /* Process the MPDU recevied */ | ||
11043 | skb = dev_alloc_skb(PacketLength); | ||
11044 | memcpy(skb_put(skb,PacketLength),agg_skb->data, PacketLength); | ||
11045 | skb_trim(skb, skb->len - 4/*sCrcLng*/); | ||
11046 | |||
11047 | rx_pkt_len = skb->len; | ||
11048 | ieee80211_hdr = (struct ieee80211_hdr_1addr *)skb->data; | ||
11049 | unicast_packet = false; | ||
11050 | if(is_broadcast_ether_addr(ieee80211_hdr->addr1)) { | ||
11051 | //TODO | ||
11052 | }else if(is_multicast_ether_addr(ieee80211_hdr->addr1)){ | ||
11053 | //TODO | ||
11054 | }else { | ||
11055 | /* unicast packet */ | ||
11056 | unicast_packet = true; | ||
11057 | } | ||
11058 | if(!ieee80211_rx(priv->ieee80211,skb, &stats)) { | ||
11059 | dev_kfree_skb_any(skb); | ||
11060 | } else { | ||
11061 | priv->stats.rxoktotal++; | ||
11062 | if(unicast_packet) { | ||
11063 | priv->stats.rxbytesunicast += rx_pkt_len; | ||
11064 | } | ||
11065 | } | ||
11066 | |||
11067 | TotalAggPkt--; | ||
11068 | |||
11069 | skb_pull(agg_skb, TempDWord); | ||
11070 | } | ||
11071 | |||
11072 | dev_kfree_skb(agg_skb); | ||
11073 | #endif | ||
11074 | } | 10714 | } |
11075 | else | 10715 | else |
11076 | { | 10716 | { |
@@ -11083,12 +10723,6 @@ void rtl8192SU_rx_nomal(struct sk_buff* skb) | |||
11083 | #else | 10723 | #else |
11084 | u32 GetRxPacketShiftBytes819xUsb(struct ieee80211_rx_stats *Status, bool bIsRxAggrSubframe) | 10724 | u32 GetRxPacketShiftBytes819xUsb(struct ieee80211_rx_stats *Status, bool bIsRxAggrSubframe) |
11085 | { | 10725 | { |
11086 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
11087 | if (bIsRxAggrSubframe) | ||
11088 | return (sizeof(rx_desc_819x_usb) + Status->RxDrvInfoSize | ||
11089 | + Status->RxBufShift + 8); | ||
11090 | else | ||
11091 | #endif | ||
11092 | return (sizeof(rx_desc_819x_usb) + Status->RxDrvInfoSize | 10726 | return (sizeof(rx_desc_819x_usb) + Status->RxDrvInfoSize |
11093 | + Status->RxBufShift); | 10727 | + Status->RxBufShift); |
11094 | } | 10728 | } |
@@ -11108,44 +10742,13 @@ void rtl8192_rx_nomal(struct sk_buff* skb) | |||
11108 | u32 rx_pkt_len = 0; | 10742 | u32 rx_pkt_len = 0; |
11109 | struct ieee80211_hdr_1addr *ieee80211_hdr = NULL; | 10743 | struct ieee80211_hdr_1addr *ieee80211_hdr = NULL; |
11110 | bool unicast_packet = false; | 10744 | bool unicast_packet = false; |
11111 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
11112 | struct sk_buff *agg_skb = NULL; | ||
11113 | u32 TotalLength = 0; | ||
11114 | u32 TempDWord = 0; | ||
11115 | u32 PacketLength = 0; | ||
11116 | u32 PacketOccupiedLendth = 0; | ||
11117 | u8 TempByte = 0; | ||
11118 | u32 PacketShiftBytes = 0; | ||
11119 | rx_desc_819x_usb_aggr_subframe *RxDescr = NULL; | ||
11120 | u8 PaddingBytes = 0; | ||
11121 | //add just for testing | ||
11122 | u8 testing; | ||
11123 | |||
11124 | #endif | ||
11125 | 10745 | ||
11126 | /* 20 is for ps-poll */ | 10746 | /* 20 is for ps-poll */ |
11127 | if((skb->len >=(20 + sizeof(rx_desc_819x_usb))) && (skb->len < RX_URB_SIZE)) { | 10747 | if((skb->len >=(20 + sizeof(rx_desc_819x_usb))) && (skb->len < RX_URB_SIZE)) { |
11128 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
11129 | TempByte = *(skb->data + sizeof(rx_desc_819x_usb)); | ||
11130 | #endif | ||
11131 | /* first packet should not contain Rx aggregation header */ | 10748 | /* first packet should not contain Rx aggregation header */ |
11132 | query_rxdesc_status(skb, &stats, false); | 10749 | query_rxdesc_status(skb, &stats, false); |
11133 | /* TODO */ | 10750 | /* TODO */ |
11134 | /* hardware related info */ | 10751 | /* hardware related info */ |
11135 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
11136 | if (TempByte & BIT0) { | ||
11137 | agg_skb = skb; | ||
11138 | //TotalLength = agg_skb->len - 4; /*sCrcLng*/ | ||
11139 | TotalLength = stats.Length - 4; /*sCrcLng*/ | ||
11140 | //RT_TRACE(COMP_RECV, "%s:first aggregated packet!Length=%d\n",__FUNCTION__,TotalLength); | ||
11141 | /* though the head pointer has passed this position */ | ||
11142 | TempDWord = *(u32 *)(agg_skb->data - 4); | ||
11143 | PacketLength = (u16)(TempDWord & 0x3FFF); /*sCrcLng*/ | ||
11144 | skb = dev_alloc_skb(PacketLength); | ||
11145 | memcpy(skb_put(skb,PacketLength),agg_skb->data,PacketLength); | ||
11146 | PacketShiftBytes = GetRxPacketShiftBytes819xUsb(&stats, false); | ||
11147 | } | ||
11148 | #endif | ||
11149 | /* Process the MPDU recevied */ | 10752 | /* Process the MPDU recevied */ |
11150 | skb_trim(skb, skb->len - 4/*sCrcLng*/); | 10753 | skb_trim(skb, skb->len - 4/*sCrcLng*/); |
11151 | 10754 | ||
@@ -11169,80 +10772,6 @@ void rtl8192_rx_nomal(struct sk_buff* skb) | |||
11169 | priv->stats.rxbytesunicast += rx_pkt_len; | 10772 | priv->stats.rxbytesunicast += rx_pkt_len; |
11170 | } | 10773 | } |
11171 | } | 10774 | } |
11172 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
11173 | testing = 1; | ||
11174 | // (PipeIndex == 0) && (TempByte & BIT0) => TotalLength > 0. | ||
11175 | if (TotalLength > 0) { | ||
11176 | PacketOccupiedLendth = PacketLength + (PacketShiftBytes + 8); | ||
11177 | if ((PacketOccupiedLendth & 0xFF) != 0) | ||
11178 | PacketOccupiedLendth = (PacketOccupiedLendth & 0xFFFFFF00) + 256; | ||
11179 | PacketOccupiedLendth -= 8; | ||
11180 | TempDWord = PacketOccupiedLendth - PacketShiftBytes; /*- PacketLength */ | ||
11181 | if (agg_skb->len > TempDWord) | ||
11182 | skb_pull(agg_skb, TempDWord); | ||
11183 | else | ||
11184 | agg_skb->len = 0; | ||
11185 | |||
11186 | while (agg_skb->len>=GetRxPacketShiftBytes819xUsb(&stats, true)) { | ||
11187 | u8 tmpCRC = 0, tmpICV = 0; | ||
11188 | //RT_TRACE(COMP_RECV,"%s:aggred pkt,total_len = %d\n",__FUNCTION__,agg_skb->len); | ||
11189 | RxDescr = (rx_desc_819x_usb_aggr_subframe *)(agg_skb->data); | ||
11190 | tmpCRC = RxDescr->CRC32; | ||
11191 | tmpICV = RxDescr->ICV; | ||
11192 | memcpy(agg_skb->data, &agg_skb->data[44], 2); | ||
11193 | RxDescr->CRC32 = tmpCRC; | ||
11194 | RxDescr->ICV = tmpICV; | ||
11195 | |||
11196 | memset(&stats, 0, sizeof(struct ieee80211_rx_stats)); | ||
11197 | stats.signal = 0; | ||
11198 | stats.noise = -98; | ||
11199 | stats.rate = 0; | ||
11200 | stats.freq = IEEE80211_24GHZ_BAND; | ||
11201 | query_rxdesc_status(agg_skb, &stats, true); | ||
11202 | PacketLength = stats.Length; | ||
11203 | |||
11204 | if(PacketLength > agg_skb->len) { | ||
11205 | break; | ||
11206 | } | ||
11207 | /* Process the MPDU recevied */ | ||
11208 | skb = dev_alloc_skb(PacketLength); | ||
11209 | memcpy(skb_put(skb,PacketLength),agg_skb->data, PacketLength); | ||
11210 | skb_trim(skb, skb->len - 4/*sCrcLng*/); | ||
11211 | |||
11212 | rx_pkt_len = skb->len; | ||
11213 | ieee80211_hdr = (struct ieee80211_hdr_1addr *)skb->data; | ||
11214 | unicast_packet = false; | ||
11215 | if(is_broadcast_ether_addr(ieee80211_hdr->addr1)) { | ||
11216 | //TODO | ||
11217 | }else if(is_multicast_ether_addr(ieee80211_hdr->addr1)){ | ||
11218 | //TODO | ||
11219 | }else { | ||
11220 | /* unicast packet */ | ||
11221 | unicast_packet = true; | ||
11222 | } | ||
11223 | if(!ieee80211_rx(priv->ieee80211,skb, &stats)) { | ||
11224 | dev_kfree_skb_any(skb); | ||
11225 | } else { | ||
11226 | priv->stats.rxoktotal++; | ||
11227 | if(unicast_packet) { | ||
11228 | priv->stats.rxbytesunicast += rx_pkt_len; | ||
11229 | } | ||
11230 | } | ||
11231 | /* should trim the packet which has been copied to target skb */ | ||
11232 | skb_pull(agg_skb, PacketLength); | ||
11233 | PacketShiftBytes = GetRxPacketShiftBytes819xUsb(&stats, true); | ||
11234 | PacketOccupiedLendth = PacketLength + PacketShiftBytes; | ||
11235 | if ((PacketOccupiedLendth & 0xFF) != 0) { | ||
11236 | PaddingBytes = 256 - (PacketOccupiedLendth & 0xFF); | ||
11237 | if (agg_skb->len > PaddingBytes) | ||
11238 | skb_pull(agg_skb, PaddingBytes); | ||
11239 | else | ||
11240 | agg_skb->len = 0; | ||
11241 | } | ||
11242 | } | ||
11243 | dev_kfree_skb(agg_skb); | ||
11244 | } | ||
11245 | #endif | ||
11246 | } else { | 10775 | } else { |
11247 | priv->stats.rxurberr++; | 10776 | priv->stats.rxurberr++; |
11248 | printk("actual_length:%d\n", skb->len); | 10777 | printk("actual_length:%d\n", skb->len); |
diff --git a/drivers/staging/rtl8192su/r8192U_dm.c b/drivers/staging/rtl8192su/r8192U_dm.c index 7902f623f8f..ef1dcc2e88f 100644 --- a/drivers/staging/rtl8192su/r8192U_dm.c +++ b/drivers/staging/rtl8192su/r8192U_dm.c | |||
@@ -315,98 +315,6 @@ extern void deinit_hal_dm(struct net_device *dev) | |||
315 | } | 315 | } |
316 | 316 | ||
317 | 317 | ||
318 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
319 | void dm_CheckRxAggregation(struct net_device *dev) { | ||
320 | struct r8192_priv *priv = ieee80211_priv((struct net_device *)dev); | ||
321 | PRT_HIGH_THROUGHPUT pHTInfo = priv->ieee80211->pHTInfo; | ||
322 | static unsigned long lastTxOkCnt = 0; | ||
323 | static unsigned long lastRxOkCnt = 0; | ||
324 | unsigned long curTxOkCnt = 0; | ||
325 | unsigned long curRxOkCnt = 0; | ||
326 | |||
327 | /* | ||
328 | if (pHalData->bForcedUsbRxAggr) { | ||
329 | if (pHalData->ForcedUsbRxAggrInfo == 0) { | ||
330 | if (pHalData->bCurrentRxAggrEnable) { | ||
331 | Adapter->HalFunc.HalUsbRxAggrHandler(Adapter, FALSE); | ||
332 | } | ||
333 | } else { | ||
334 | if (!pHalData->bCurrentRxAggrEnable || (pHalData->ForcedUsbRxAggrInfo != pHalData->LastUsbRxAggrInfoSetting)) { | ||
335 | Adapter->HalFunc.HalUsbRxAggrHandler(Adapter, TRUE); | ||
336 | } | ||
337 | } | ||
338 | return; | ||
339 | } | ||
340 | |||
341 | */ | ||
342 | #ifdef RTL8192SU | ||
343 | if (priv->bForcedUsbRxAggr) { | ||
344 | if (priv->ForcedUsbRxAggrInfo == 0) { | ||
345 | if (priv->bCurrentRxAggrEnable) { | ||
346 | //Adapter->HalFunc.HalUsbRxAggrHandler(Adapter, FALSE); | ||
347 | write_nic_dword(dev, 0x1a8, 0); | ||
348 | priv->bCurrentRxAggrEnable = false; | ||
349 | } | ||
350 | } else { | ||
351 | if (!priv->bCurrentRxAggrEnable || (priv->ForcedUsbRxAggrInfo != priv->LastUsbRxAggrInfoSetting)) { | ||
352 | u32 ulValue; | ||
353 | ulValue = (pHTInfo->UsbRxFwAggrEn<<24) | (pHTInfo->UsbRxFwAggrPageNum<<16) | | ||
354 | (pHTInfo->UsbRxFwAggrPacketNum<<8) | (pHTInfo->UsbRxFwAggrTimeout); | ||
355 | /* | ||
356 | * If usb rx firmware aggregation is enabled, | ||
357 | * when anyone of three threshold conditions above is reached, | ||
358 | * firmware will send aggregated packet to driver. | ||
359 | */ | ||
360 | write_nic_dword(dev, 0x1a8, ulValue); | ||
361 | priv->bCurrentRxAggrEnable = true; | ||
362 | } | ||
363 | } | ||
364 | return; | ||
365 | } | ||
366 | |||
367 | if((priv->ieee80211->mode & WIRELESS_MODE_B) || (priv->ieee80211->mode & WIRELESS_MODE_G)) | ||
368 | { | ||
369 | if (priv->bCurrentRxAggrEnable) | ||
370 | { | ||
371 | RT_TRACE(COMP_RECV, "dm_CheckRxAggregation() : Disable Rx Aggregation!!\n"); | ||
372 | write_nic_dword(dev, 0x1a8, 0); | ||
373 | priv->bCurrentRxAggrEnable = false; | ||
374 | return; | ||
375 | } | ||
376 | } | ||
377 | #endif | ||
378 | |||
379 | curTxOkCnt = priv->stats.txbytesunicast - lastTxOkCnt; | ||
380 | curRxOkCnt = priv->stats.rxbytesunicast - lastRxOkCnt; | ||
381 | |||
382 | if((curTxOkCnt + curRxOkCnt) < 15000000) { | ||
383 | return; | ||
384 | } | ||
385 | |||
386 | if(curTxOkCnt > 4*curRxOkCnt) { | ||
387 | if (priv->bCurrentRxAggrEnable) { | ||
388 | write_nic_dword(dev, 0x1a8, 0); | ||
389 | priv->bCurrentRxAggrEnable = false; | ||
390 | } | ||
391 | }else{ | ||
392 | if (!priv->bCurrentRxAggrEnable && !pHTInfo->bCurrentRT2RTAggregation) { | ||
393 | u32 ulValue; | ||
394 | ulValue = (pHTInfo->UsbRxFwAggrEn<<24) | (pHTInfo->UsbRxFwAggrPageNum<<16) | | ||
395 | (pHTInfo->UsbRxFwAggrPacketNum<<8) | (pHTInfo->UsbRxFwAggrTimeout); | ||
396 | /* | ||
397 | * If usb rx firmware aggregation is enabled, | ||
398 | * when anyone of three threshold conditions above is reached, | ||
399 | * firmware will send aggregated packet to driver. | ||
400 | */ | ||
401 | write_nic_dword(dev, 0x1a8, ulValue); | ||
402 | priv->bCurrentRxAggrEnable = true; | ||
403 | } | ||
404 | } | ||
405 | |||
406 | lastTxOkCnt = priv->stats.txbytesunicast; | ||
407 | lastRxOkCnt = priv->stats.rxbytesunicast; | ||
408 | } // dm_CheckEdcaTurbo | ||
409 | #endif | ||
410 | 318 | ||
411 | 319 | ||
412 | #ifdef RTL8192SU | 320 | #ifdef RTL8192SU |
@@ -438,9 +346,6 @@ extern void hal_dm_watchdog(struct net_device *dev) | |||
438 | //if (IS_HARDWARE_TYPE_8192S(dev)) | 346 | //if (IS_HARDWARE_TYPE_8192S(dev)) |
439 | return; | 347 | return; |
440 | 348 | ||
441 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
442 | dm_CheckRxAggregation(dev); | ||
443 | #endif | ||
444 | #ifdef TO_DO_LIST | 349 | #ifdef TO_DO_LIST |
445 | if(Adapter->MgntInfo.mActingAsAp) | 350 | if(Adapter->MgntInfo.mActingAsAp) |
446 | { | 351 | { |
@@ -490,9 +395,6 @@ extern void hal_dm_watchdog(struct net_device *dev) | |||
490 | dm_check_pbc_gpio(dev); | 395 | dm_check_pbc_gpio(dev); |
491 | dm_send_rssi_tofw(dev); | 396 | dm_send_rssi_tofw(dev); |
492 | dm_ctstoself(dev); | 397 | dm_ctstoself(dev); |
493 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
494 | dm_CheckRxAggregation(dev); | ||
495 | #endif | ||
496 | } //HalDmWatchDog | 398 | } //HalDmWatchDog |
497 | #endif | 399 | #endif |
498 | 400 | ||
diff --git a/drivers/staging/rtl8192su/r819xU_HTType.h b/drivers/staging/rtl8192su/r819xU_HTType.h index 2994aa0876a..4ccfcc1910c 100644 --- a/drivers/staging/rtl8192su/r819xU_HTType.h +++ b/drivers/staging/rtl8192su/r819xU_HTType.h | |||
@@ -296,12 +296,6 @@ typedef struct _RT_HIGH_THROUGHPUT{ | |||
296 | #ifdef USB_TX_DRIVER_AGGREGATION_ENABLE | 296 | #ifdef USB_TX_DRIVER_AGGREGATION_ENABLE |
297 | u8 UsbTxAggrNum; | 297 | u8 UsbTxAggrNum; |
298 | #endif | 298 | #endif |
299 | #ifdef USB_RX_AGGREGATION_SUPPORT | ||
300 | u8 UsbRxFwAggrEn; | ||
301 | u8 UsbRxFwAggrPageNum; | ||
302 | u8 UsbRxFwAggrPacketNum; | ||
303 | u8 UsbRxFwAggrTimeout; | ||
304 | #endif | ||
305 | 299 | ||
306 | // Add for Broadcom(Linksys) IOT. Joseph | 300 | // Add for Broadcom(Linksys) IOT. Joseph |
307 | u8 bIsPeerBcm; | 301 | u8 bIsPeerBcm; |