* [PATCH 00/12] Staging: rt28x0 cleanups
@ 2009-10-21 20:43 Bartlomiej Zolnierkiewicz
2009-10-21 20:43 ` [PATCH 01/12] Staging: rt28x0: remove unused ->eewrite methods Bartlomiej Zolnierkiewicz
` (11 more replies)
0 siblings, 12 replies; 13+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2009-10-21 20:43 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: devel, Bartlomiej Zolnierkiewicz, linux-kernel
Cleanups for rt28x0 drivers (almost 8 KLOC gone) removing private
driver parameters, ioctls, WEXT handlers and unused features..
Tested with RT2860 and RT3070 (both still work for me :).
diffstat:
drivers/staging/rt2860/Makefile | 2
drivers/staging/rt2860/chip/rtmp_phy.h | 36
drivers/staging/rt2860/chips/rt30xx.c | 2
drivers/staging/rt2860/common/cmm_asic.c | 6
drivers/staging/rt2860/common/cmm_info.c | 4039 +++++-----------------------
drivers/staging/rt2860/common/cmm_mac_pci.c | 7
drivers/staging/rt2860/common/cmm_profile.c | 1779 ------------
drivers/staging/rt2860/common/crypt_hmac.c | 85
drivers/staging/rt2860/common/crypt_sha2.c | 257 -
drivers/staging/rt2860/common/ee_efuse.c | 1145 -------
drivers/staging/rt2860/common/ee_prom.c | 48
drivers/staging/rt2860/common/eeprom.c | 6
drivers/staging/rt2860/common/mlme.c | 1
drivers/staging/rt2860/common/rtmp_init.c | 21
drivers/staging/rt2860/common/rtmp_mcu.c | 2
drivers/staging/rt2860/crypt_hmac.h | 11
drivers/staging/rt2860/crypt_sha2.h | 28
drivers/staging/rt2860/eeprom.h | 15
drivers/staging/rt2860/oid.h | 19
drivers/staging/rt2860/pci_main_dev.c | 35
drivers/staging/rt2860/rt_config.h | 8
drivers/staging/rt2860/rt_linux.c | 30
drivers/staging/rt2860/rt_linux.h | 10
drivers/staging/rt2860/rt_main_dev.c | 6
drivers/staging/rt2860/rt_profile.c | 95
drivers/staging/rt2860/rtmp.h | 300 --
drivers/staging/rt2860/rtmp_chip.h | 4
drivers/staging/rt2860/rtmp_def.h | 9
drivers/staging/rt2860/sta/connect.c | 1
drivers/staging/rt2860/sta_ioctl.c | 1315 ---------
drivers/staging/rt2860/usb_main_dev.c | 7
drivers/staging/rt2870/Makefile | 2
drivers/staging/rt2870/common/rtusb_io.c | 11
33 files changed, 819 insertions(+), 8523 deletions(-)
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 01/12] Staging: rt28x0: remove unused ->eewrite methods
2009-10-21 20:43 [PATCH 00/12] Staging: rt28x0 cleanups Bartlomiej Zolnierkiewicz
@ 2009-10-21 20:43 ` Bartlomiej Zolnierkiewicz
2009-10-21 20:43 ` [PATCH 02/12] Staging: rt28x0: remove unused code from common/ee_efuse-c Bartlomiej Zolnierkiewicz
` (10 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2009-10-21 20:43 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: devel, Bartlomiej Zolnierkiewicz, linux-kernel
From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Subject: [PATCH] Staging: rt28x0: remove unused ->eewrite methods
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
drivers/staging/rt2860/common/ee_efuse.c | 17 ----------
drivers/staging/rt2860/common/ee_prom.c | 48 -------------------------------
drivers/staging/rt2860/common/eeprom.c | 3 -
drivers/staging/rt2860/eeprom.h | 15 ---------
drivers/staging/rt2860/rtmp.h | 1
drivers/staging/rt2860/rtmp_chip.h | 4 --
drivers/staging/rt2870/common/rtusb_io.c | 11 -------
7 files changed, 99 deletions(-)
Index: b/drivers/staging/rt2860/common/ee_efuse.c
===================================================================
--- a/drivers/staging/rt2860/common/ee_efuse.c
+++ b/drivers/staging/rt2860/common/ee_efuse.c
@@ -1271,23 +1271,6 @@ int rtmp_ee_efuse_read16(
return (*pValue);
}
-
-int rtmp_ee_efuse_write16(
- IN RTMP_ADAPTER *pAd,
- IN USHORT Offset,
- IN USHORT data)
-{
- if(pAd->bFroceEEPROMBuffer||pAd->bEEPROMFile)
- {
- DBGPRINT(RT_DEBUG_TRACE, ("Write to EEPROM Buffer\n"));
- NdisMoveMemory(&(pAd->EEPROMImage[Offset]), &data, 2);
- }
- else
- eFuseWriteRegisters(pAd, Offset, 2, &data);
- return 0;
-}
-
-
int RtmpEfuseSupportCheck(
IN RTMP_ADAPTER *pAd)
{
Index: b/drivers/staging/rt2860/common/ee_prom.c
===================================================================
--- a/drivers/staging/rt2860/common/ee_prom.c
+++ b/drivers/staging/rt2860/common/ee_prom.c
@@ -220,51 +220,3 @@ int rtmp_ee_prom_read16(
return NDIS_STATUS_SUCCESS;
}
-
-
-int rtmp_ee_prom_write16(
- IN PRTMP_ADAPTER pAd,
- IN USHORT Offset,
- IN USHORT Data)
-{
- UINT32 x;
-
-
- Offset /= 2;
-
- EWEN(pAd);
-
- // reset bits and set EECS
- RTMP_IO_READ32(pAd, E2PROM_CSR, &x);
- x &= ~(EEDI | EEDO | EESK);
- x |= EECS;
- RTMP_IO_WRITE32(pAd, E2PROM_CSR, x);
-
- // patch can not access e-Fuse issue
- if (!(IS_RT3090(pAd) || IS_RT3572(pAd) || IS_RT3390(pAd)))
- {
- // kick a pulse
- RaiseClock(pAd, &x);
- LowerClock(pAd, &x);
- }
-
- // output the read_opcode ,register number and data in that order
- ShiftOutBits(pAd, EEPROM_WRITE_OPCODE, 3);
- ShiftOutBits(pAd, Offset, pAd->EEPROMAddressNum);
- ShiftOutBits(pAd, Data, 16); // 16-bit access
-
- // read DO status
- RTMP_IO_READ32(pAd, E2PROM_CSR, &x);
-
- EEpromCleanup(pAd);
-
- RTMPusecDelay(10000); //delay for twp(MAX)=10ms
-
- EWDS(pAd);
-
- EEpromCleanup(pAd);
-
-
- return NDIS_STATUS_SUCCESS;
-
-}
Index: b/drivers/staging/rt2860/common/eeprom.c
===================================================================
--- a/drivers/staging/rt2860/common/eeprom.c
+++ b/drivers/staging/rt2860/common/eeprom.c
@@ -66,7 +66,6 @@ INT RtmpChipOpsEepromHook(
{
pChipOps->eeinit = eFuse_init;
pChipOps->eeread = rtmp_ee_efuse_read16;
- pChipOps->eewrite = rtmp_ee_efuse_write16;
return 0 ;
}
else
@@ -83,14 +82,12 @@ INT RtmpChipOpsEepromHook(
case RTMP_DEV_INF_PCI:
pChipOps->eeinit = NULL;
pChipOps->eeread = rtmp_ee_prom_read16;
- pChipOps->eewrite = rtmp_ee_prom_write16;
break;
#endif // RTMP_PCI_SUPPORT //
#ifdef RTMP_USB_SUPPORT
case RTMP_DEV_INF_USB:
pChipOps->eeinit = NULL;
pChipOps->eeread = RTUSBReadEEPROM16;
- pChipOps->eewrite = RTUSBWriteEEPROM16;
break;
#endif // RTMP_USB_SUPPORT //
Index: b/drivers/staging/rt2860/eeprom.h
===================================================================
--- a/drivers/staging/rt2860/eeprom.h
+++ b/drivers/staging/rt2860/eeprom.h
@@ -48,11 +48,6 @@ int rtmp_ee_prom_read16(
IN PRTMP_ADAPTER pAd,
IN USHORT Offset,
OUT USHORT *pValue);
-
-int rtmp_ee_prom_write16(
- IN PRTMP_ADAPTER pAd,
- IN USHORT Offset,
- IN USHORT value);
#endif // RTMP_PCI_SUPPORT //
#ifdef RTMP_USB_SUPPORT
/*************************************************************************
@@ -62,11 +57,6 @@ NTSTATUS RTUSBReadEEPROM16(
IN PRTMP_ADAPTER pAd,
IN USHORT offset,
OUT PUSHORT pData);
-
-NTSTATUS RTUSBWriteEEPROM16(
- IN RTMP_ADAPTER *pAd,
- IN USHORT offset,
- IN USHORT value);
#endif // RTMP_USB_SUPPORT //
#ifdef RT30xx
@@ -75,11 +65,6 @@ int rtmp_ee_efuse_read16(
IN RTMP_ADAPTER *pAd,
IN USHORT Offset,
OUT USHORT *pValue);
-
-int rtmp_ee_efuse_write16(
- IN RTMP_ADAPTER *pAd,
- IN USHORT Offset,
- IN USHORT data);
#endif // RTMP_EFUSE_SUPPORT //
#endif // RT30xx //
Index: b/drivers/staging/rt2860/rtmp.h
===================================================================
--- a/drivers/staging/rt2860/rtmp.h
+++ b/drivers/staging/rt2860/rtmp.h
@@ -1790,7 +1790,6 @@ struct _RTMP_CHIP_OP_
/* Calibration access related callback functions */
int (*eeinit)(RTMP_ADAPTER *pAd); /* int (*eeinit)(RTMP_ADAPTER *pAd); */
int (*eeread)(RTMP_ADAPTER *pAd, USHORT offset, PUSHORT pValue); /* int (*eeread)(RTMP_ADAPTER *pAd, int offset, PUSHORT pValue); */
- int (*eewrite)(RTMP_ADAPTER *pAd, USHORT offset, USHORT value);; /* int (*eewrite)(RTMP_ADAPTER *pAd, int offset, USHORT value); */
/* MCU related callback functions */
int (*loadFirmware)(RTMP_ADAPTER *pAd); /* int (*loadFirmware)(RTMP_ADAPTER *pAd); */
Index: b/drivers/staging/rt2860/rtmp_chip.h
===================================================================
--- a/drivers/staging/rt2860/rtmp_chip.h
+++ b/drivers/staging/rt2860/rtmp_chip.h
@@ -167,10 +167,6 @@
#define RT28xx_EEPROM_READ16(_pAd, _offset, _value) \
(_pAd)->chipOps.eeread((RTMP_ADAPTER *)(_pAd), (USHORT)(_offset), (PUSHORT)&(_value))
-#define RT28xx_EEPROM_WRITE16(_pAd, _offset, _value) \
- (_pAd)->chipOps.eewrite((RTMP_ADAPTER *)(_pAd), (USHORT)(_offset), (USHORT)(_value))
-
-
// -------------------------------------------------------------------
// E2PROM data layout
Index: b/drivers/staging/rt2870/common/rtusb_io.c
===================================================================
--- a/drivers/staging/rt2870/common/rtusb_io.c
+++ b/drivers/staging/rt2870/common/rtusb_io.c
@@ -619,17 +619,6 @@ NTSTATUS RTUSBReadEEPROM16(
}
-NTSTATUS RTUSBWriteEEPROM16(
- IN RTMP_ADAPTER *pAd,
- IN USHORT offset,
- IN USHORT value)
-{
- USHORT tmpVal;
-
- tmpVal = cpu2le16(value);
- return RTUSBWriteEEPROM(pAd, offset, (PUCHAR)&(tmpVal), 2);
-}
-
/*
========================================================================
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 02/12] Staging: rt28x0: remove unused code from common/ee_efuse-c
2009-10-21 20:43 [PATCH 00/12] Staging: rt28x0 cleanups Bartlomiej Zolnierkiewicz
2009-10-21 20:43 ` [PATCH 01/12] Staging: rt28x0: remove unused ->eewrite methods Bartlomiej Zolnierkiewicz
@ 2009-10-21 20:43 ` Bartlomiej Zolnierkiewicz
2009-10-21 20:44 ` [PATCH 03/12] Staging: rt28x0: remove private RTPRIV_IOCTL_SET ioctl Bartlomiej Zolnierkiewicz
` (9 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2009-10-21 20:43 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: devel, Bartlomiej Zolnierkiewicz, linux-kernel
From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Subject: [PATCH] Staging: rt28x0: remove unused code from common/ee_efuse-c
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
drivers/staging/rt2860/common/ee_efuse.c | 340 -------------------------------
drivers/staging/rt2860/rtmp.h | 12 -
2 files changed, 352 deletions(-)
Index: b/drivers/staging/rt2860/common/ee_efuse.c
===================================================================
--- a/drivers/staging/rt2860/common/ee_efuse.c
+++ b/drivers/staging/rt2860/common/ee_efuse.c
@@ -67,31 +67,6 @@ typedef union _EFUSE_CTRL_STRUC {
UINT32 word;
} EFUSE_CTRL_STRUC, *PEFUSE_CTRL_STRUC;
-static UCHAR eFuseReadRegisters(
- IN PRTMP_ADAPTER pAd,
- IN USHORT Offset,
- IN USHORT Length,
- OUT USHORT* pData);
-
-static VOID eFuseReadPhysical(
- IN PRTMP_ADAPTER pAd,
- IN PUSHORT lpInBuffer,
- IN ULONG nInBufferSize,
- OUT PUSHORT lpOutBuffer,
- IN ULONG nOutBufferSize);
-
-static VOID eFusePhysicalWriteRegisters(
- IN PRTMP_ADAPTER pAd,
- IN USHORT Offset,
- IN USHORT Length,
- OUT USHORT* pData);
-
-static NTSTATUS eFuseWriteRegisters(
- IN PRTMP_ADAPTER pAd,
- IN USHORT Offset,
- IN USHORT Length,
- IN USHORT* pData);
-
static VOID eFuseWritePhysical(
IN PRTMP_ADAPTER pAd,
PUSHORT lpInBuffer,
@@ -306,37 +281,6 @@ static VOID eFuseReadPhysical(
========================================================================
*/
-NTSTATUS eFuseRead(
- IN PRTMP_ADAPTER pAd,
- IN USHORT Offset,
- OUT PUCHAR pData,
- IN USHORT Length)
-{
- USHORT* pOutBuf = (USHORT*)pData;
- NTSTATUS Status = STATUS_SUCCESS;
- UCHAR EFSROM_AOUT;
- int i;
-
- for(i=0; i<Length; i+=2)
- {
- EFSROM_AOUT = eFuseReadRegisters(pAd, Offset+i, 2, &pOutBuf[i/2]);
- }
- return Status;
-}
-
-/*
-========================================================================
-
- Routine Description:
-
- Arguments:
-
- Return Value:
-
- Note:
-
-========================================================================
-*/
static VOID eFusePhysicalWriteRegisters(
IN PRTMP_ADAPTER pAd,
IN USHORT Offset,
@@ -450,247 +394,6 @@ static VOID eFusePhysicalWriteRegisters(
========================================================================
*/
-static NTSTATUS eFuseWriteRegisters(
- IN PRTMP_ADAPTER pAd,
- IN USHORT Offset,
- IN USHORT Length,
- IN USHORT* pData)
-{
- USHORT i,Loop=0;
- USHORT eFuseData;
- USHORT LogicalAddress, BlkNum = 0xffff;
- UCHAR EFSROM_AOUT;
-
- USHORT addr,tmpaddr, InBuf[3], tmpOffset;
- USHORT buffer[8];
- BOOLEAN bWriteSuccess = TRUE;
-
- DBGPRINT(RT_DEBUG_TRACE, ("eFuseWriteRegisters Offset=%x, pData=%x\n", Offset, *pData));
-
- //Step 0. find the entry in the mapping table
- //The address of EEPROM is 2-bytes alignment.
- //The last bit is used for alignment, so it must be 0.
- tmpOffset = Offset & 0xfffe;
- EFSROM_AOUT = eFuseReadRegisters(pAd, tmpOffset, 2, &eFuseData);
-
- if( EFSROM_AOUT == 0x3f)
- { //find available logical address pointer
- //the logical address does not exist, find an empty one
- //from the first address of block 45=16*45=0x2d0 to the last address of block 47
- //==>48*16-3(reserved)=2FC
- for (i=EFUSE_USAGE_MAP_START; i<=EFUSE_USAGE_MAP_END; i+=2)
- {
- //Retrive the logical block nubmer form each logical address pointer
- //It will access two logical address pointer each time.
- eFusePhysicalReadRegisters(pAd, i, 2, &LogicalAddress);
- if( (LogicalAddress & 0xff) == 0)
- {//Not used logical address pointer
- BlkNum = i-EFUSE_USAGE_MAP_START;
- break;
- }
- else if(( (LogicalAddress >> 8) & 0xff) == 0)
- {//Not used logical address pointer
- if (i != EFUSE_USAGE_MAP_END)
- {
- BlkNum = i-EFUSE_USAGE_MAP_START+1;
- }
- break;
- }
- }
- }
- else
- {
- BlkNum = EFSROM_AOUT;
- }
-
- DBGPRINT(RT_DEBUG_TRACE, ("eFuseWriteRegisters BlkNum = %d \n", BlkNum));
-
- if(BlkNum == 0xffff)
- {
- DBGPRINT(RT_DEBUG_TRACE, ("eFuseWriteRegisters: out of free E-fuse space!!!\n"));
- return FALSE;
- }
-
- //Step 1. Save data of this block which is pointed by the avaible logical address pointer
- // read and save the original block data
- for(i =0; i<8; i++)
- {
- addr = BlkNum * 0x10 ;
-
- InBuf[0] = addr+2*i;
- InBuf[1] = 2;
- InBuf[2] = 0x0;
-
- eFuseReadPhysical(pAd, &InBuf[0], 4, &InBuf[2], 2);
-
- buffer[i] = InBuf[2];
- }
-
- //Step 2. Update the data in buffer, and write the data to Efuse
- buffer[ (Offset >> 1) % 8] = pData[0];
-
- do
- { Loop++;
- //Step 3. Write the data to Efuse
- if(!bWriteSuccess)
- {
- for(i =0; i<8; i++)
- {
- addr = BlkNum * 0x10 ;
-
- InBuf[0] = addr+2*i;
- InBuf[1] = 2;
- InBuf[2] = buffer[i];
-
- eFuseWritePhysical(pAd, &InBuf[0], 6, NULL, 2);
- }
- }
- else
- {
- addr = BlkNum * 0x10 ;
-
- InBuf[0] = addr+(Offset % 16);
- InBuf[1] = 2;
- InBuf[2] = pData[0];
-
- eFuseWritePhysical(pAd, &InBuf[0], 6, NULL, 2);
- }
-
- //Step 4. Write mapping table
- addr = EFUSE_USAGE_MAP_START+BlkNum;
-
- tmpaddr = addr;
-
- if(addr % 2 != 0)
- addr = addr -1;
- InBuf[0] = addr;
- InBuf[1] = 2;
-
- //convert the address from 10 to 8 bit ( bit7, 6 = parity and bit5 ~ 0 = bit9~4), and write to logical map entry
- tmpOffset = Offset;
- tmpOffset >>= 4;
- tmpOffset |= ((~((tmpOffset & 0x01) ^ ( tmpOffset >> 1 & 0x01) ^ (tmpOffset >> 2 & 0x01) ^ (tmpOffset >> 3 & 0x01))) << 6) & 0x40;
- tmpOffset |= ((~( (tmpOffset >> 2 & 0x01) ^ (tmpOffset >> 3 & 0x01) ^ (tmpOffset >> 4 & 0x01) ^ ( tmpOffset >> 5 & 0x01))) << 7) & 0x80;
-
- // write the logical address
- if(tmpaddr%2 != 0)
- InBuf[2] = tmpOffset<<8;
- else
- InBuf[2] = tmpOffset;
-
- eFuseWritePhysical(pAd,&InBuf[0], 6, NULL, 0);
-
- //Step 5. Compare data if not the same, invalidate the mapping entry, then re-write the data until E-fuse is exhausted
- bWriteSuccess = TRUE;
- for(i =0; i<8; i++)
- {
- addr = BlkNum * 0x10 ;
-
- InBuf[0] = addr+2*i;
- InBuf[1] = 2;
- InBuf[2] = 0x0;
-
- eFuseReadPhysical(pAd, &InBuf[0], 4, &InBuf[2], 2);
-
- if(buffer[i] != InBuf[2])
- {
- bWriteSuccess = FALSE;
- break;
- }
- }
-
- //Step 6. invlidate mapping entry and find a free mapping entry if not succeed
- if (!bWriteSuccess)
- {
- DBGPRINT(RT_DEBUG_TRACE, ("Not bWriteSuccess BlkNum = %d\n", BlkNum));
-
- // the offset of current mapping entry
- addr = EFUSE_USAGE_MAP_START+BlkNum;
-
- //find a new mapping entry
- BlkNum = 0xffff;
- for (i=EFUSE_USAGE_MAP_START; i<=EFUSE_USAGE_MAP_END; i+=2)
- {
- eFusePhysicalReadRegisters(pAd, i, 2, &LogicalAddress);
- if( (LogicalAddress & 0xff) == 0)
- {
- BlkNum = i-EFUSE_USAGE_MAP_START;
- break;
- }
- else if(( (LogicalAddress >> 8) & 0xff) == 0)
- {
- if (i != EFUSE_USAGE_MAP_END)
- {
- BlkNum = i+1-EFUSE_USAGE_MAP_START;
- }
- break;
- }
- }
- DBGPRINT(RT_DEBUG_TRACE, ("Not bWriteSuccess new BlkNum = %d\n", BlkNum));
- if(BlkNum == 0xffff)
- {
- DBGPRINT(RT_DEBUG_TRACE, ("eFuseWriteRegisters: out of free E-fuse space!!!\n"));
- return FALSE;
- }
-
- //invalidate the original mapping entry if new entry is not found
- tmpaddr = addr;
-
- if(addr % 2 != 0)
- addr = addr -1;
- InBuf[0] = addr;
- InBuf[1] = 2;
-
- eFuseReadPhysical(pAd, &InBuf[0], 4, &InBuf[2], 2);
-
- // write the logical address
- if(tmpaddr%2 != 0)
- {
- // Invalidate the high byte
- for (i=8; i<15; i++)
- {
- if( ( (InBuf[2] >> i) & 0x01) == 0)
- {
- InBuf[2] |= (0x1 <<i);
- break;
- }
- }
- }
- else
- {
- // invalidate the low byte
- for (i=0; i<8; i++)
- {
- if( ( (InBuf[2] >> i) & 0x01) == 0)
- {
- InBuf[2] |= (0x1 <<i);
- break;
- }
- }
- }
- eFuseWritePhysical(pAd, &InBuf[0], 6, NULL, 0);
- }
- }
- while (!bWriteSuccess&&Loop<2);
- if(!bWriteSuccess)
- DBGPRINT(RT_DEBUG_ERROR,("Efsue Write Failed!!\n"));
- return TRUE;
-}
-
-
-/*
-========================================================================
-
- Routine Description:
-
- Arguments:
-
- Return Value:
-
- Note:
-
-========================================================================
-*/
static VOID eFuseWritePhysical(
IN PRTMP_ADAPTER pAd,
PUSHORT lpInBuffer,
@@ -723,49 +426,6 @@ static VOID eFuseWritePhysical(
}
}
-
-/*
-========================================================================
-
- Routine Description:
-
- Arguments:
-
- Return Value:
-
- Note:
-
-========================================================================
-*/
-NTSTATUS eFuseWrite(
- IN PRTMP_ADAPTER pAd,
- IN USHORT Offset,
- IN PUCHAR pData,
- IN USHORT length)
-{
- int i;
- USHORT* pValueX = (PUSHORT) pData; //value ...
-
- // The input value=3070 will be stored as following
- // Little-endian S | S Big-endian
- // addr 1 0 | 0 1
- // Ori-V 30 70 | 30 70
- // After swapping
- // 30 70 | 70 30
- // Casting
- // 3070 | 7030 (x)
- // The swapping should be removed for big-endian
- for(i=0; i<length; i+=2)
- {
- eFuseWriteRegisters(pAd, Offset+i, 2, &pValueX[i/2]);
- }
-
- return TRUE;
-}
-
-
-
-
/*
========================================================================
Index: b/drivers/staging/rt2860/rtmp.h
===================================================================
--- a/drivers/staging/rt2860/rtmp.h
+++ b/drivers/staging/rt2860/rtmp.h
@@ -4052,18 +4052,6 @@ VOID eFuseGetFreeBlockCount(IN PRTMP_ADA
INT eFuse_init(
IN PRTMP_ADAPTER pAd);
-
-NTSTATUS eFuseRead(
- IN PRTMP_ADAPTER pAd,
- IN USHORT Offset,
- OUT PUCHAR pData,
- IN USHORT Length);
-
-NTSTATUS eFuseWrite(
- IN PRTMP_ADAPTER pAd,
- IN USHORT Offset,
- IN PUCHAR pData,
- IN USHORT length);
//2008/09/11:KH add to support efuse-->
#endif // RTMP_EFUSE_SUPPORT //
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 03/12] Staging: rt28x0: remove private RTPRIV_IOCTL_SET ioctl
2009-10-21 20:43 [PATCH 00/12] Staging: rt28x0 cleanups Bartlomiej Zolnierkiewicz
2009-10-21 20:43 ` [PATCH 01/12] Staging: rt28x0: remove unused ->eewrite methods Bartlomiej Zolnierkiewicz
2009-10-21 20:43 ` [PATCH 02/12] Staging: rt28x0: remove unused code from common/ee_efuse-c Bartlomiej Zolnierkiewicz
@ 2009-10-21 20:44 ` Bartlomiej Zolnierkiewicz
2009-10-21 20:44 ` [PATCH 04/12] Staging: rt28x0: remove private RTPRIV_IOCTL_GSITESURVEY ioctl Bartlomiej Zolnierkiewicz
` (8 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2009-10-21 20:44 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: devel, Bartlomiej Zolnierkiewicz, linux-kernel
From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Subject: [PATCH] Staging: rt28x0: remove private RTPRIV_IOCTL_SET ioctl
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
drivers/staging/rt2860/sta_ioctl.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
Index: b/drivers/staging/rt2860/sta_ioctl.c
===================================================================
--- a/drivers/staging/rt2860/sta_ioctl.c
+++ b/drivers/staging/rt2860/sta_ioctl.c
@@ -2978,6 +2978,7 @@ INT rt28xx_sta_ioctl(
case SIOCSIWRETRY: //set retry limits and lifetime
case RT_PRIV_IOCTL:
case RT_PRIV_IOCTL_EXT:
+ case RTPRIV_IOCTL_SET:
Status = -EOPNOTSUPP;
break;
case SIOCGIWPRIV:
@@ -2990,11 +2991,6 @@ INT rt28xx_sta_ioctl(
Status = -EFAULT;
}
break;
- case RTPRIV_IOCTL_SET:
- if(access_ok(VERIFY_READ, wrq->u.data.pointer, wrq->u.data.length) != TRUE)
- break;
- rt_ioctl_setparam(net_dev, NULL, NULL, wrq->u.data.pointer);
- break;
case RTPRIV_IOCTL_GSITESURVEY:
RTMPIoctlGetSiteSurvey(pAd, wrq);
break;
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 04/12] Staging: rt28x0: remove private RTPRIV_IOCTL_GSITESURVEY ioctl
2009-10-21 20:43 [PATCH 00/12] Staging: rt28x0 cleanups Bartlomiej Zolnierkiewicz
` (2 preceding siblings ...)
2009-10-21 20:44 ` [PATCH 03/12] Staging: rt28x0: remove private RTPRIV_IOCTL_SET ioctl Bartlomiej Zolnierkiewicz
@ 2009-10-21 20:44 ` Bartlomiej Zolnierkiewicz
2009-10-21 20:44 ` [PATCH 05/12] Staging: rt28x0: remove private WEXT handlers Bartlomiej Zolnierkiewicz
` (7 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2009-10-21 20:44 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: devel, Bartlomiej Zolnierkiewicz, linux-kernel
From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Subject: [PATCH] Staging: rt28x0: remove private RTPRIV_IOCTL_GSITESURVEY ioctl
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
drivers/staging/rt2860/common/cmm_info.c | 57 -------------------------------
drivers/staging/rt2860/rtmp.h | 12 ------
drivers/staging/rt2860/sta_ioctl.c | 4 --
3 files changed, 1 insertion(+), 72 deletions(-)
Index: b/drivers/staging/rt2860/common/cmm_info.c
===================================================================
--- a/drivers/staging/rt2860/common/cmm_info.c
+++ b/drivers/staging/rt2860/common/cmm_info.c
@@ -1970,63 +1970,6 @@ VOID RTMPCommSiteSurveyData(
return;
}
-VOID RTMPIoctlGetSiteSurvey(
- IN PRTMP_ADAPTER pAdapter,
- IN struct iwreq *wrq)
-{
- PSTRING msg;
- INT i=0;
- INT WaitCnt;
- INT Status=0;
- INT max_len = LINE_LEN;
- PBSS_ENTRY pBss;
-
-
- os_alloc_mem(NULL, (PUCHAR *)&msg, sizeof(CHAR)*((MAX_LEN_OF_BSS_TABLE)*max_len));
-
- if (msg == NULL)
- {
- DBGPRINT(RT_DEBUG_TRACE, ("RTMPIoctlGetSiteSurvey - msg memory alloc fail.\n"));
- return;
- }
-
- memset(msg, 0 ,(MAX_LEN_OF_BSS_TABLE)*max_len );
- sprintf(msg,"%s","\n");
- sprintf(msg+strlen(msg),"%-4s%-33s%-20s%-23s%-9s%-7s%-7s%-3s\n",
- "Ch", "SSID", "BSSID", "Security", "Siganl(%)", "W-Mode", " ExtCH"," NT");
-
-
-
- WaitCnt = 0;
- pAdapter->StaCfg.bScanReqIsFromWebUI = TRUE;
- while ((ScanRunning(pAdapter) == TRUE) && (WaitCnt++ < 200))
- OS_WAIT(500);
-
- for(i=0; i<pAdapter->ScanTab.BssNr ;i++)
- {
- pBss = &pAdapter->ScanTab.BssEntry[i];
-
- if( pBss->Channel==0)
- break;
-
- if((strlen(msg)+max_len ) >= IW_SCAN_MAX_DATA)
- break;
-
-
- RTMPCommSiteSurveyData(msg, pBss);
-
-
- }
-
- pAdapter->StaCfg.bScanReqIsFromWebUI = FALSE;
- wrq->u.data.length = strlen(msg);
- Status = copy_to_user(wrq->u.data.pointer, msg, wrq->u.data.length);
-
- DBGPRINT(RT_DEBUG_TRACE, ("RTMPIoctlGetSiteSurvey - wrq->u.data.length = %d\n", wrq->u.data.length));
- os_free_mem(NULL, (PUCHAR)msg);
-}
-
-
#define MAC_LINE_LEN (14+4+4+10+10+10+6+6) // Addr+aid+psm+datatime+rxbyte+txbyte+current tx rate+last tx rate
VOID RTMPIoctlGetMacTable(
IN PRTMP_ADAPTER pAd,
Index: b/drivers/staging/rt2860/rtmp.h
===================================================================
--- a/drivers/staging/rt2860/rtmp.h
+++ b/drivers/staging/rt2860/rtmp.h
@@ -4991,18 +4991,6 @@ PNDIS_PACKET RTMPDeFragmentDataFrame(
IN PRTMP_ADAPTER pAd,
IN RX_BLK *pRxBlk);
-////////////////////////////////////////
-
-VOID RTMPIoctlGetSiteSurvey(
- IN PRTMP_ADAPTER pAdapter,
- IN struct iwreq *wrq);
-
-
-
-
-
-
-
enum {
DIDmsg_lnxind_wlansniffrm = 0x00000044,
DIDmsg_lnxind_wlansniffrm_hosttime = 0x00010044,
Index: b/drivers/staging/rt2860/sta_ioctl.c
===================================================================
--- a/drivers/staging/rt2860/sta_ioctl.c
+++ b/drivers/staging/rt2860/sta_ioctl.c
@@ -2979,6 +2979,7 @@ INT rt28xx_sta_ioctl(
case RT_PRIV_IOCTL:
case RT_PRIV_IOCTL_EXT:
case RTPRIV_IOCTL_SET:
+ case RTPRIV_IOCTL_GSITESURVEY:
Status = -EOPNOTSUPP;
break;
case SIOCGIWPRIV:
@@ -2991,9 +2992,6 @@ INT rt28xx_sta_ioctl(
Status = -EFAULT;
}
break;
- case RTPRIV_IOCTL_GSITESURVEY:
- RTMPIoctlGetSiteSurvey(pAd, wrq);
- break;
case SIOCETHTOOL:
break;
default:
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 05/12] Staging: rt28x0: remove private WEXT handlers
2009-10-21 20:43 [PATCH 00/12] Staging: rt28x0 cleanups Bartlomiej Zolnierkiewicz
` (3 preceding siblings ...)
2009-10-21 20:44 ` [PATCH 04/12] Staging: rt28x0: remove private RTPRIV_IOCTL_GSITESURVEY ioctl Bartlomiej Zolnierkiewicz
@ 2009-10-21 20:44 ` Bartlomiej Zolnierkiewicz
2009-10-21 20:44 ` [PATCH 06/12] Staging: rt28x0: remove support for private driver parameters Bartlomiej Zolnierkiewicz
` (6 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2009-10-21 20:44 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: devel, Bartlomiej Zolnierkiewicz, linux-kernel
From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Subject: [PATCH] Staging: rt28x0: remove private WEXT handlers
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
drivers/staging/rt2860/common/cmm_info.c | 3982 +++++--------------------------
drivers/staging/rt2860/rtmp.h | 204 -
drivers/staging/rt2860/sta_ioctl.c | 1305 ----------
3 files changed, 767 insertions(+), 4724 deletions(-)
Index: b/drivers/staging/rt2860/common/cmm_info.c
===================================================================
--- a/drivers/staging/rt2860/common/cmm_info.c
+++ b/drivers/staging/rt2860/common/cmm_info.c
@@ -27,3380 +27,930 @@
#include "../rt_config.h"
+/*
+ ========================================================================
-INT Show_SSID_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_WirelessMode_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_TxBurst_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_TxPreamble_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_TxPower_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_Channel_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_BGProtection_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_RTSThreshold_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_FragThreshold_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_HtBw_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_HtMcs_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_HtGi_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_HtOpMode_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_HtExtcha_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_HtMpduDensity_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_HtBaWinSize_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_HtRdg_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_HtAmsdu_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_HtAutoBa_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_CountryRegion_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_CountryRegionABand_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_CountryCode_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-#ifdef AGGREGATION_SUPPORT
-INT Show_PktAggregate_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-#endif // AGGREGATION_SUPPORT //
-
-#ifdef WMM_SUPPORT
-INT Show_WmmCapable_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-#endif // WMM_SUPPORT //
-
-INT Show_IEEE80211H_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_NetworkType_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-
-INT Show_AuthMode_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_EncrypType_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_DefaultKeyID_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_Key1_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_Key2_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_Key3_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_Key4_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-INT Show_WPAPSK_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf);
-
-static struct {
- PSTRING name;
- INT (*show_proc)(PRTMP_ADAPTER pAdapter, PSTRING arg);
-} *PRTMP_PRIVATE_STA_SHOW_CFG_VALUE_PROC, RTMP_PRIVATE_STA_SHOW_CFG_VALUE_PROC[] = {
- {"SSID", Show_SSID_Proc},
- {"WirelessMode", Show_WirelessMode_Proc},
- {"TxBurst", Show_TxBurst_Proc},
- {"TxPreamble", Show_TxPreamble_Proc},
- {"TxPower", Show_TxPower_Proc},
- {"Channel", Show_Channel_Proc},
- {"BGProtection", Show_BGProtection_Proc},
- {"RTSThreshold", Show_RTSThreshold_Proc},
- {"FragThreshold", Show_FragThreshold_Proc},
- {"HtBw", Show_HtBw_Proc},
- {"HtMcs", Show_HtMcs_Proc},
- {"HtGi", Show_HtGi_Proc},
- {"HtOpMode", Show_HtOpMode_Proc},
- {"HtExtcha", Show_HtExtcha_Proc},
- {"HtMpduDensity", Show_HtMpduDensity_Proc},
- {"HtBaWinSize", Show_HtBaWinSize_Proc},
- {"HtRdg", Show_HtRdg_Proc},
- {"HtAmsdu", Show_HtAmsdu_Proc},
- {"HtAutoBa", Show_HtAutoBa_Proc},
- {"CountryRegion", Show_CountryRegion_Proc},
- {"CountryRegionABand", Show_CountryRegionABand_Proc},
- {"CountryCode", Show_CountryCode_Proc},
-#ifdef AGGREGATION_SUPPORT
- {"PktAggregate", Show_PktAggregate_Proc},
-#endif
-
-#ifdef WMM_SUPPORT
- {"WmmCapable", Show_WmmCapable_Proc},
-#endif
- {"IEEE80211H", Show_IEEE80211H_Proc},
- {"NetworkType", Show_NetworkType_Proc},
- {"AuthMode", Show_AuthMode_Proc},
- {"EncrypType", Show_EncrypType_Proc},
- {"DefaultKeyID", Show_DefaultKeyID_Proc},
- {"Key1", Show_Key1_Proc},
- {"Key2", Show_Key2_Proc},
- {"Key3", Show_Key3_Proc},
- {"Key4", Show_Key4_Proc},
- {"WPAPSK", Show_WPAPSK_Proc},
- {NULL, NULL}
-};
-
-/*
- ==========================================================================
- Description:
- Get Driver version.
-
- Return:
- ==========================================================================
-*/
-INT Set_DriverVersion_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
-
- DBGPRINT(RT_DEBUG_TRACE, ("Driver version-%s\n", STA_DRIVER_VERSION));
-
- return TRUE;
-}
-
-/*
- ==========================================================================
- Description:
- Set Country Region.
- This command will not work, if the field of CountryRegion in eeprom is programmed.
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_CountryRegion_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- int retval;
-
-
- retval = RT_CfgSetCountryRegion(pAd, arg, BAND_24G);
- if (retval == FALSE)
- return FALSE;
-
- // if set country region, driver needs to be reset
- BuildChannelList(pAd);
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_CountryRegion_Proc::(CountryRegion=%d)\n", pAd->CommonCfg.CountryRegion));
-
- return TRUE;
-}
-
-/*
- ==========================================================================
- Description:
- Set Country Region for A band.
- This command will not work, if the field of CountryRegion in eeprom is programmed.
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_CountryRegionABand_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- int retval;
-
-
- retval = RT_CfgSetCountryRegion(pAd, arg, BAND_5G);
- if (retval == FALSE)
- return FALSE;
-
- // if set country region, driver needs to be reset
- BuildChannelList(pAd);
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_CountryRegionABand_Proc::(CountryRegion=%d)\n", pAd->CommonCfg.CountryRegionForABand));
-
- return TRUE;
-}
-
-/*
- ==========================================================================
- Description:
- Set Wireless Mode
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_WirelessMode_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- INT success = TRUE;
-
- success = RT_CfgSetWirelessMode(pAd, arg);
- if (success)
- {
- {
- LONG WirelessMode = pAd->CommonCfg.PhyMode;
-
- RTMPSetPhyMode(pAd, WirelessMode);
- if (WirelessMode >= PHY_11ABGN_MIXED)
- {
- pAd->CommonCfg.BACapability.field.AutoBA = TRUE;
- pAd->CommonCfg.REGBACapability.field.AutoBA = TRUE;
- }
- else
- {
- pAd->CommonCfg.BACapability.field.AutoBA = FALSE;
- pAd->CommonCfg.REGBACapability.field.AutoBA = FALSE;
- }
-
- // Set AdhocMode rates
- if (pAd->StaCfg.BssType == BSS_ADHOC)
- {
- MlmeUpdateTxRates(pAd, FALSE, 0);
- MakeIbssBeacon(pAd); // re-build BEACON frame
- AsicEnableIbssSync(pAd); // copy to on-chip memory
- }
- }
-
- // it is needed to set SSID to take effect
- SetCommonHT(pAd);
- DBGPRINT(RT_DEBUG_TRACE, ("Set_WirelessMode_Proc::(=%d)\n", pAd->CommonCfg.PhyMode));
- }
- else
- {
- DBGPRINT(RT_DEBUG_ERROR, ("Set_WirelessMode_Proc::parameters out of range\n"));
- }
-
- return success;
-}
-
-/*
- ==========================================================================
- Description:
- Set Channel
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_Channel_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- INT success = TRUE;
- UCHAR Channel;
-
- Channel = (UCHAR) simple_strtol(arg, 0, 10);
-
- // check if this channel is valid
- if (ChannelSanity(pAd, Channel) == TRUE)
- {
- {
- pAd->CommonCfg.Channel = Channel;
-
- if (MONITOR_ON(pAd))
- {
- N_ChannelCheck(pAd);
- if (pAd->CommonCfg.PhyMode >= PHY_11ABGN_MIXED &&
- pAd->CommonCfg.RegTransmitSetting.field.BW == BW_40)
- {
- N_SetCenCh(pAd);
- AsicSwitchChannel(pAd, pAd->CommonCfg.CentralChannel, FALSE);
- AsicLockChannel(pAd, pAd->CommonCfg.CentralChannel);
- DBGPRINT(RT_DEBUG_TRACE, ("BW_40, control_channel(%d), CentralChannel(%d) \n",
- pAd->CommonCfg.Channel, pAd->CommonCfg.CentralChannel));
- }
- else
- {
- AsicSwitchChannel(pAd, pAd->CommonCfg.Channel, FALSE);
- AsicLockChannel(pAd, pAd->CommonCfg.Channel);
- DBGPRINT(RT_DEBUG_TRACE, ("BW_20, Channel(%d)\n", pAd->CommonCfg.Channel));
- }
- }
- }
- success = TRUE;
- }
- else
- {
- success = FALSE;
- }
-
-
- if (success == TRUE)
- DBGPRINT(RT_DEBUG_TRACE, ("Set_Channel_Proc::(Channel=%d)\n", pAd->CommonCfg.Channel));
-
- return success;
-}
-
-/*
- ==========================================================================
- Description:
- Set Short Slot Time Enable or Disable
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_ShortSlot_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- int retval;
-
- retval = RT_CfgSetShortSlot(pAd, arg);
- if (retval == TRUE)
- DBGPRINT(RT_DEBUG_TRACE, ("Set_ShortSlot_Proc::(ShortSlot=%d)\n", pAd->CommonCfg.bUseShortSlotTime));
-
- return retval;
-}
-
-
-/*
- ==========================================================================
- Description:
- Set Tx power
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_TxPower_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- LONG TxPower;
- INT success = FALSE;
-
- TxPower = simple_strtol(arg, 0, 10);
- if (TxPower <= 100)
- {
- {
- pAd->CommonCfg.TxPowerDefault = TxPower;
- pAd->CommonCfg.TxPowerPercentage = pAd->CommonCfg.TxPowerDefault;
- }
- success = TRUE;
- }
- else
- success = FALSE;
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_TxPower_Proc::(TxPowerPercentage=%ld)\n", pAd->CommonCfg.TxPowerPercentage));
-
- return success;
-}
-
-/*
- ==========================================================================
- Description:
- Set 11B/11G Protection
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_BGProtection_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- switch (simple_strtol(arg, 0, 10))
- {
- case 0: //AUTO
- pAd->CommonCfg.UseBGProtection = 0;
- break;
- case 1: //Always On
- pAd->CommonCfg.UseBGProtection = 1;
- break;
- case 2: //Always OFF
- pAd->CommonCfg.UseBGProtection = 2;
- break;
- default: //Invalid argument
- return FALSE;
- }
-
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_BGProtection_Proc::(BGProtection=%ld)\n", pAd->CommonCfg.UseBGProtection));
-
- return TRUE;
-}
-
-/*
- ==========================================================================
- Description:
- Set TxPreamble
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_TxPreamble_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- RT_802_11_PREAMBLE Preamble;
-
- Preamble = simple_strtol(arg, 0, 10);
-
-
- switch (Preamble)
- {
- case Rt802_11PreambleShort:
- pAd->CommonCfg.TxPreamble = Preamble;
-
- MlmeSetTxPreamble(pAd, Rt802_11PreambleShort);
- break;
- case Rt802_11PreambleLong:
- case Rt802_11PreambleAuto:
- // if user wants AUTO, initialize to LONG here, then change according to AP's
- // capability upon association.
- pAd->CommonCfg.TxPreamble = Preamble;
-
- MlmeSetTxPreamble(pAd, Rt802_11PreambleLong);
- break;
- default: //Invalid argument
- return FALSE;
- }
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_TxPreamble_Proc::(TxPreamble=%ld)\n", pAd->CommonCfg.TxPreamble));
-
- return TRUE;
-}
-
-/*
- ==========================================================================
- Description:
- Set RTS Threshold
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_RTSThreshold_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- NDIS_802_11_RTS_THRESHOLD RtsThresh;
-
- RtsThresh = simple_strtol(arg, 0, 10);
-
- if((RtsThresh > 0) && (RtsThresh <= MAX_RTS_THRESHOLD))
- pAd->CommonCfg.RtsThreshold = (USHORT)RtsThresh;
- else if (RtsThresh == 0)
- pAd->CommonCfg.RtsThreshold = MAX_RTS_THRESHOLD;
- else
- return FALSE; //Invalid argument
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_RTSThreshold_Proc::(RTSThreshold=%d)\n", pAd->CommonCfg.RtsThreshold));
-
- return TRUE;
-}
-
-/*
- ==========================================================================
- Description:
- Set Fragment Threshold
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_FragThreshold_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- NDIS_802_11_FRAGMENTATION_THRESHOLD FragThresh;
-
- FragThresh = simple_strtol(arg, 0, 10);
-
- if (FragThresh > MAX_FRAG_THRESHOLD || FragThresh < MIN_FRAG_THRESHOLD)
- {
- //Illegal FragThresh so we set it to default
- pAd->CommonCfg.FragmentThreshold = MAX_FRAG_THRESHOLD;
- }
- else if (FragThresh % 2 == 1)
- {
- // The length of each fragment shall always be an even number of octets, except for the last fragment
- // of an MSDU or MMPDU, which may be either an even or an odd number of octets.
- pAd->CommonCfg.FragmentThreshold = (USHORT)(FragThresh - 1);
- }
- else
- {
- pAd->CommonCfg.FragmentThreshold = (USHORT)FragThresh;
- }
-
- {
- if (pAd->CommonCfg.FragmentThreshold == MAX_FRAG_THRESHOLD)
- pAd->CommonCfg.bUseZeroToDisableFragment = TRUE;
- else
- pAd->CommonCfg.bUseZeroToDisableFragment = FALSE;
- }
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_FragThreshold_Proc::(FragThreshold=%d)\n", pAd->CommonCfg.FragmentThreshold));
-
- return TRUE;
-}
-
-/*
- ==========================================================================
- Description:
- Set TxBurst
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_TxBurst_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- LONG TxBurst;
-
- TxBurst = simple_strtol(arg, 0, 10);
- if (TxBurst == 1)
- pAd->CommonCfg.bEnableTxBurst = TRUE;
- else if (TxBurst == 0)
- pAd->CommonCfg.bEnableTxBurst = FALSE;
- else
- return FALSE; //Invalid argument
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_TxBurst_Proc::(TxBurst=%d)\n", pAd->CommonCfg.bEnableTxBurst));
-
- return TRUE;
-}
-
-#ifdef AGGREGATION_SUPPORT
-/*
- ==========================================================================
- Description:
- Set TxBurst
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_PktAggregate_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- LONG aggre;
-
- aggre = simple_strtol(arg, 0, 10);
-
- if (aggre == 1)
- pAd->CommonCfg.bAggregationCapable = TRUE;
- else if (aggre == 0)
- pAd->CommonCfg.bAggregationCapable = FALSE;
- else
- return FALSE; //Invalid argument
-
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_PktAggregate_Proc::(AGGRE=%d)\n", pAd->CommonCfg.bAggregationCapable));
-
- return TRUE;
-}
-#endif
-
-/*
- ==========================================================================
- Description:
- Set IEEE80211H.
- This parameter is 1 when needs radar detection, otherwise 0
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_IEEE80211H_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- LONG ieee80211h;
-
- ieee80211h = simple_strtol(arg, 0, 10);
-
- if (ieee80211h == 1)
- pAd->CommonCfg.bIEEE80211H = TRUE;
- else if (ieee80211h == 0)
- pAd->CommonCfg.bIEEE80211H = FALSE;
- else
- return FALSE; //Invalid argument
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_IEEE80211H_Proc::(IEEE80211H=%d)\n", pAd->CommonCfg.bIEEE80211H));
-
- return TRUE;
-}
-
-
-#ifdef DBG
-/*
- ==========================================================================
- Description:
- For Debug information
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_Debug_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- DBGPRINT(RT_DEBUG_TRACE, ("==> Set_Debug_Proc *******************\n"));
-
- if(simple_strtol(arg, 0, 10) <= RT_DEBUG_LOUD)
- RTDebugLevel = simple_strtol(arg, 0, 10);
-
- DBGPRINT(RT_DEBUG_TRACE, ("<== Set_Debug_Proc(RTDebugLevel = %ld)\n", RTDebugLevel));
-
- return TRUE;
-}
-#endif
-
-INT Show_DescInfo_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
-#ifdef RTMP_MAC_PCI
- INT i, QueIdx=0;
-// ULONG RegValue;
- PRT28XX_RXD_STRUC pRxD;
- PTXD_STRUC pTxD;
- PRTMP_TX_RING pTxRing = &pAd->TxRing[QueIdx];
- PRTMP_MGMT_RING pMgmtRing = &pAd->MgmtRing;
- PRTMP_RX_RING pRxRing = &pAd->RxRing;
-
- for(i=0;i<TX_RING_SIZE;i++)
- {
- pTxD = (PTXD_STRUC) pTxRing->Cell[i].AllocVa;
- DBGPRINT(RT_DEBUG_OFF, ("Desc #%d\n",i));
- hex_dump("Tx Descriptor", (PUCHAR)pTxD, 16);
- DBGPRINT(RT_DEBUG_OFF, ("pTxD->DMADONE = %x\n", pTxD->DMADONE));
- }
- DBGPRINT(RT_DEBUG_OFF, ("---------------------------------------------------\n"));
- for(i=0;i<MGMT_RING_SIZE;i++)
- {
- pTxD = (PTXD_STRUC) pMgmtRing->Cell[i].AllocVa;
- DBGPRINT(RT_DEBUG_OFF, ("Desc #%d\n",i));
- hex_dump("Mgmt Descriptor", (PUCHAR)pTxD, 16);
- DBGPRINT(RT_DEBUG_OFF, ("pMgmt->DMADONE = %x\n", pTxD->DMADONE));
- }
- DBGPRINT(RT_DEBUG_OFF, ("---------------------------------------------------\n"));
- for(i=0;i<RX_RING_SIZE;i++)
- {
- pRxD = (PRT28XX_RXD_STRUC) pRxRing->Cell[i].AllocVa;
- DBGPRINT(RT_DEBUG_OFF, ("Desc #%d\n",i));
- hex_dump("Rx Descriptor", (PUCHAR)pRxD, 16);
- DBGPRINT(RT_DEBUG_OFF, ("pRxD->DDONE = %x\n", pRxD->DDONE));
- }
-#endif // RTMP_MAC_PCI //
-
- return TRUE;
-}
-
-/*
- ==========================================================================
- Description:
- Reset statistics counter
-
- Arguments:
- pAdapter Pointer to our adapter
- arg
-
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_ResetStatCounter_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- //UCHAR i;
- //MAC_TABLE_ENTRY *pEntry;
-
- DBGPRINT(RT_DEBUG_TRACE, ("==>Set_ResetStatCounter_Proc\n"));
-
- // add the most up-to-date h/w raw counters into software counters
- NICUpdateRawCounters(pAd);
-
- NdisZeroMemory(&pAd->WlanCounters, sizeof(COUNTER_802_11));
- NdisZeroMemory(&pAd->Counters8023, sizeof(COUNTER_802_3));
- NdisZeroMemory(&pAd->RalinkCounters, sizeof(COUNTER_RALINK));
-
- // Reset HotSpot counter
-
-
- return TRUE;
-}
-
-/*
- ========================================================================
-
- Routine Description:
- Add WPA key process.
- In Adhoc WPANONE, bPairwise = 0; KeyIdx = 0;
-
- Arguments:
- pAd Pointer to our adapter
- pBuf Pointer to the where the key stored
-
- Return Value:
- NDIS_SUCCESS Add key successfully
-
- IRQL = DISPATCH_LEVEL
-
- Note:
-
- ========================================================================
-*/
-
-BOOLEAN RTMPCheckStrPrintAble(
- IN CHAR *pInPutStr,
- IN UCHAR strLen)
-{
- UCHAR i=0;
-
- for (i=0; i<strLen; i++)
- {
- if ((pInPutStr[i] < 0x21) ||
- (pInPutStr[i] > 0x7E))
- return FALSE;
- }
-
- return TRUE;
-}
-
-/*
- ========================================================================
-
- Routine Description:
- Remove WPA Key process
-
- Arguments:
- pAd Pointer to our adapter
- pBuf Pointer to the where the key stored
-
- Return Value:
- NDIS_SUCCESS Add key successfully
-
- IRQL = DISPATCH_LEVEL
-
- Note:
-
- ========================================================================
-*/
-VOID RTMPSetDesiredRates(
- IN PRTMP_ADAPTER pAdapter,
- IN LONG Rates)
-{
- NDIS_802_11_RATES aryRates;
-
- memset(&aryRates, 0x00, sizeof(NDIS_802_11_RATES));
- switch (pAdapter->CommonCfg.PhyMode)
- {
- case PHY_11A: // A only
- switch (Rates)
- {
- case 6000000: //6M
- aryRates[0] = 0x0c; // 6M
- pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_0;
- break;
- case 9000000: //9M
- aryRates[0] = 0x12; // 9M
- pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_1;
- break;
- case 12000000: //12M
- aryRates[0] = 0x18; // 12M
- pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_2;
- break;
- case 18000000: //18M
- aryRates[0] = 0x24; // 18M
- pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_3;
- break;
- case 24000000: //24M
- aryRates[0] = 0x30; // 24M
- pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_4;
- break;
- case 36000000: //36M
- aryRates[0] = 0x48; // 36M
- pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_5;
- break;
- case 48000000: //48M
- aryRates[0] = 0x60; // 48M
- pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_6;
- break;
- case 54000000: //54M
- aryRates[0] = 0x6c; // 54M
- pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_7;
- break;
- case -1: //Auto
- default:
- aryRates[0] = 0x6c; // 54Mbps
- aryRates[1] = 0x60; // 48Mbps
- aryRates[2] = 0x48; // 36Mbps
- aryRates[3] = 0x30; // 24Mbps
- aryRates[4] = 0x24; // 18M
- aryRates[5] = 0x18; // 12M
- aryRates[6] = 0x12; // 9M
- aryRates[7] = 0x0c; // 6M
- pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_AUTO;
- break;
- }
- break;
- case PHY_11BG_MIXED: // B/G Mixed
- case PHY_11B: // B only
- case PHY_11ABG_MIXED: // A/B/G Mixed
- default:
- switch (Rates)
- {
- case 1000000: //1M
- aryRates[0] = 0x02;
- pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_0;
- break;
- case 2000000: //2M
- aryRates[0] = 0x04;
- pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_1;
- break;
- case 5000000: //5.5M
- aryRates[0] = 0x0b; // 5.5M
- pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_2;
- break;
- case 11000000: //11M
- aryRates[0] = 0x16; // 11M
- pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_3;
- break;
- case 6000000: //6M
- aryRates[0] = 0x0c; // 6M
- pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_0;
- break;
- case 9000000: //9M
- aryRates[0] = 0x12; // 9M
- pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_1;
- break;
- case 12000000: //12M
- aryRates[0] = 0x18; // 12M
- pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_2;
- break;
- case 18000000: //18M
- aryRates[0] = 0x24; // 18M
- pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_3;
- break;
- case 24000000: //24M
- aryRates[0] = 0x30; // 24M
- pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_4;
- break;
- case 36000000: //36M
- aryRates[0] = 0x48; // 36M
- pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_5;
- break;
- case 48000000: //48M
- aryRates[0] = 0x60; // 48M
- pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_6;
- break;
- case 54000000: //54M
- aryRates[0] = 0x6c; // 54M
- pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_7;
- break;
- case -1: //Auto
- default:
- if (pAdapter->CommonCfg.PhyMode == PHY_11B)
- { //B Only
- aryRates[0] = 0x16; // 11Mbps
- aryRates[1] = 0x0b; // 5.5Mbps
- aryRates[2] = 0x04; // 2Mbps
- aryRates[3] = 0x02; // 1Mbps
- }
- else
- { //(B/G) Mixed or (A/B/G) Mixed
- aryRates[0] = 0x6c; // 54Mbps
- aryRates[1] = 0x60; // 48Mbps
- aryRates[2] = 0x48; // 36Mbps
- aryRates[3] = 0x30; // 24Mbps
- aryRates[4] = 0x16; // 11Mbps
- aryRates[5] = 0x0b; // 5.5Mbps
- aryRates[6] = 0x04; // 2Mbps
- aryRates[7] = 0x02; // 1Mbps
- }
- pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_AUTO;
- break;
- }
- break;
- }
-
- NdisZeroMemory(pAdapter->CommonCfg.DesireRate, MAX_LEN_OF_SUPPORTED_RATES);
- NdisMoveMemory(pAdapter->CommonCfg.DesireRate, &aryRates, sizeof(NDIS_802_11_RATES));
- DBGPRINT(RT_DEBUG_TRACE, (" RTMPSetDesiredRates (%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x)\n",
- pAdapter->CommonCfg.DesireRate[0],pAdapter->CommonCfg.DesireRate[1],
- pAdapter->CommonCfg.DesireRate[2],pAdapter->CommonCfg.DesireRate[3],
- pAdapter->CommonCfg.DesireRate[4],pAdapter->CommonCfg.DesireRate[5],
- pAdapter->CommonCfg.DesireRate[6],pAdapter->CommonCfg.DesireRate[7] ));
- // Changing DesiredRate may affect the MAX TX rate we used to TX frames out
- MlmeUpdateTxRates(pAdapter, FALSE, 0);
-}
-
-NDIS_STATUS RTMPWPARemoveKeyProc(
- IN PRTMP_ADAPTER pAd,
- IN PVOID pBuf)
-{
- PNDIS_802_11_REMOVE_KEY pKey;
- ULONG KeyIdx;
- NDIS_STATUS Status = NDIS_STATUS_FAILURE;
- BOOLEAN bTxKey; // Set the key as transmit key
- BOOLEAN bPairwise; // Indicate the key is pairwise key
- BOOLEAN bKeyRSC; // indicate the receive SC set by KeyRSC value.
- // Otherwise, it will set by the NIC.
- BOOLEAN bAuthenticator; // indicate key is set by authenticator.
- INT i;
-
- DBGPRINT(RT_DEBUG_TRACE,("---> RTMPWPARemoveKeyProc\n"));
-
- pKey = (PNDIS_802_11_REMOVE_KEY) pBuf;
- KeyIdx = pKey->KeyIndex & 0xff;
- // Bit 31 of Add-key, Tx Key
- bTxKey = (pKey->KeyIndex & 0x80000000) ? TRUE : FALSE;
- // Bit 30 of Add-key PairwiseKey
- bPairwise = (pKey->KeyIndex & 0x40000000) ? TRUE : FALSE;
- // Bit 29 of Add-key KeyRSC
- bKeyRSC = (pKey->KeyIndex & 0x20000000) ? TRUE : FALSE;
- // Bit 28 of Add-key Authenticator
- bAuthenticator = (pKey->KeyIndex & 0x10000000) ? TRUE : FALSE;
-
- // 1. If bTx is TRUE, return failure information
- if (bTxKey == TRUE)
- return(NDIS_STATUS_INVALID_DATA);
-
- // 2. Check Pairwise Key
- if (bPairwise)
- {
- // a. If BSSID is broadcast, remove all pairwise keys.
- // b. If not broadcast, remove the pairwise specified by BSSID
- for (i = 0; i < SHARE_KEY_NUM; i++)
- {
- if (MAC_ADDR_EQUAL(pAd->SharedKey[BSS0][i].BssId, pKey->BSSID))
- {
- DBGPRINT(RT_DEBUG_TRACE,("RTMPWPARemoveKeyProc(KeyIdx=%d)\n", i));
- pAd->SharedKey[BSS0][i].KeyLen = 0;
- pAd->SharedKey[BSS0][i].CipherAlg = CIPHER_NONE;
- AsicRemoveSharedKeyEntry(pAd, BSS0, (UCHAR)i);
- Status = NDIS_STATUS_SUCCESS;
- break;
- }
- }
- }
- // 3. Group Key
- else
- {
- // a. If BSSID is broadcast, remove all group keys indexed
- // b. If BSSID matched, delete the group key indexed.
- DBGPRINT(RT_DEBUG_TRACE,("RTMPWPARemoveKeyProc(KeyIdx=%ld)\n", KeyIdx));
- pAd->SharedKey[BSS0][KeyIdx].KeyLen = 0;
- pAd->SharedKey[BSS0][KeyIdx].CipherAlg = CIPHER_NONE;
- AsicRemoveSharedKeyEntry(pAd, BSS0, (UCHAR)KeyIdx);
- Status = NDIS_STATUS_SUCCESS;
- }
-
- return (Status);
-}
-
-/*
- ========================================================================
-
- Routine Description:
- Remove All WPA Keys
-
- Arguments:
- pAd Pointer to our adapter
-
- Return Value:
- None
-
- IRQL = DISPATCH_LEVEL
-
- Note:
-
- ========================================================================
-*/
-VOID RTMPWPARemoveAllKeys(
- IN PRTMP_ADAPTER pAd)
-{
-
- UCHAR i;
-
- DBGPRINT(RT_DEBUG_TRACE,("RTMPWPARemoveAllKeys(AuthMode=%d, WepStatus=%d)\n", pAd->StaCfg.AuthMode, pAd->StaCfg.WepStatus));
- RTMP_CLEAR_PSFLAG(pAd, fRTMP_PS_CAN_GO_SLEEP);
- // For WEP/CKIP, there is no need to remove it, since WinXP won't set it again after
- // Link up. And it will be replaced if user changed it.
- if (pAd->StaCfg.AuthMode < Ndis802_11AuthModeWPA)
- return;
-
- // For WPA-None, there is no need to remove it, since WinXP won't set it again after
- // Link up. And it will be replaced if user changed it.
- if (pAd->StaCfg.AuthMode == Ndis802_11AuthModeWPANone)
- return;
-
- // set BSSID wcid entry of the Pair-wise Key table as no-security mode
- AsicRemovePairwiseKeyEntry(pAd, BSS0, BSSID_WCID);
-
- // set all shared key mode as no-security.
- for (i = 0; i < SHARE_KEY_NUM; i++)
- {
- DBGPRINT(RT_DEBUG_TRACE,("remove %s key #%d\n", CipherName[pAd->SharedKey[BSS0][i].CipherAlg], i));
- NdisZeroMemory(&pAd->SharedKey[BSS0][i], sizeof(CIPHER_KEY));
-
- AsicRemoveSharedKeyEntry(pAd, BSS0, i);
- }
- RTMP_SET_PSFLAG(pAd, fRTMP_PS_CAN_GO_SLEEP);
-}
-
-
-/*
- ========================================================================
-
- Routine Description:
- As STA's BSSID is a WC too, it uses shared key table.
- This function write correct unicast TX key to ASIC WCID.
- And we still make a copy in our MacTab.Content[BSSID_WCID].PairwiseKey.
- Caller guarantee TKIP/AES always has keyidx = 0. (pairwise key)
- Caller guarantee WEP calls this function when set Txkey, default key index=0~3.
-
- Arguments:
- pAd Pointer to our adapter
- pKey Pointer to the where the key stored
-
- Return Value:
- NDIS_SUCCESS Add key successfully
-
- IRQL = DISPATCH_LEVEL
-
- Note:
-
- ========================================================================
-*/
-/*
- ========================================================================
- Routine Description:
- Change NIC PHY mode. Re-association may be necessary. possible settings
- include - PHY_11B, PHY_11BG_MIXED, PHY_11A, and PHY_11ABG_MIXED
-
- Arguments:
- pAd - Pointer to our adapter
- phymode -
-
- IRQL = PASSIVE_LEVEL
- IRQL = DISPATCH_LEVEL
-
- ========================================================================
-*/
-VOID RTMPSetPhyMode(
- IN PRTMP_ADAPTER pAd,
- IN ULONG phymode)
-{
- INT i;
- // the selected phymode must be supported by the RF IC encoded in E2PROM
-
- // if no change, do nothing
- /* bug fix
- if (pAd->CommonCfg.PhyMode == phymode)
- return;
- */
- pAd->CommonCfg.PhyMode = (UCHAR)phymode;
-
- DBGPRINT(RT_DEBUG_TRACE,("RTMPSetPhyMode : PhyMode=%d, channel=%d \n", pAd->CommonCfg.PhyMode, pAd->CommonCfg.Channel));
-
- BuildChannelList(pAd);
-
- // sanity check user setting
- for (i = 0; i < pAd->ChannelListNum; i++)
- {
- if (pAd->CommonCfg.Channel == pAd->ChannelList[i].Channel)
- break;
- }
-
- if (i == pAd->ChannelListNum)
- {
- pAd->CommonCfg.Channel = FirstChannel(pAd);
- DBGPRINT(RT_DEBUG_ERROR, ("RTMPSetPhyMode: channel is out of range, use first channel=%d \n", pAd->CommonCfg.Channel));
- }
-
- NdisZeroMemory(pAd->CommonCfg.SupRate, MAX_LEN_OF_SUPPORTED_RATES);
- NdisZeroMemory(pAd->CommonCfg.ExtRate, MAX_LEN_OF_SUPPORTED_RATES);
- NdisZeroMemory(pAd->CommonCfg.DesireRate, MAX_LEN_OF_SUPPORTED_RATES);
- switch (phymode) {
- case PHY_11B:
- pAd->CommonCfg.SupRate[0] = 0x82; // 1 mbps, in units of 0.5 Mbps, basic rate
- pAd->CommonCfg.SupRate[1] = 0x84; // 2 mbps, in units of 0.5 Mbps, basic rate
- pAd->CommonCfg.SupRate[2] = 0x8B; // 5.5 mbps, in units of 0.5 Mbps, basic rate
- pAd->CommonCfg.SupRate[3] = 0x96; // 11 mbps, in units of 0.5 Mbps, basic rate
- pAd->CommonCfg.SupRateLen = 4;
- pAd->CommonCfg.ExtRateLen = 0;
- pAd->CommonCfg.DesireRate[0] = 2; // 1 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.DesireRate[1] = 4; // 2 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.DesireRate[2] = 11; // 5.5 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.DesireRate[3] = 22; // 11 mbps, in units of 0.5 Mbps
- //pAd->CommonCfg.HTPhyMode.field.MODE = MODE_CCK; // This MODE is only FYI. not use
- break;
-
- case PHY_11G:
- case PHY_11BG_MIXED:
- case PHY_11ABG_MIXED:
- case PHY_11N_2_4G:
- case PHY_11ABGN_MIXED:
- case PHY_11BGN_MIXED:
- case PHY_11GN_MIXED:
- pAd->CommonCfg.SupRate[0] = 0x82; // 1 mbps, in units of 0.5 Mbps, basic rate
- pAd->CommonCfg.SupRate[1] = 0x84; // 2 mbps, in units of 0.5 Mbps, basic rate
- pAd->CommonCfg.SupRate[2] = 0x8B; // 5.5 mbps, in units of 0.5 Mbps, basic rate
- pAd->CommonCfg.SupRate[3] = 0x96; // 11 mbps, in units of 0.5 Mbps, basic rate
- pAd->CommonCfg.SupRate[4] = 0x12; // 9 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.SupRate[5] = 0x24; // 18 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.SupRate[6] = 0x48; // 36 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.SupRate[7] = 0x6c; // 54 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.SupRateLen = 8;
- pAd->CommonCfg.ExtRate[0] = 0x0C; // 6 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.ExtRate[1] = 0x18; // 12 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.ExtRate[2] = 0x30; // 24 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.ExtRate[3] = 0x60; // 48 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.ExtRateLen = 4;
- pAd->CommonCfg.DesireRate[0] = 2; // 1 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.DesireRate[1] = 4; // 2 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.DesireRate[2] = 11; // 5.5 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.DesireRate[3] = 22; // 11 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.DesireRate[4] = 12; // 6 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.DesireRate[5] = 18; // 9 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.DesireRate[6] = 24; // 12 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.DesireRate[7] = 36; // 18 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.DesireRate[8] = 48; // 24 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.DesireRate[9] = 72; // 36 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.DesireRate[10] = 96; // 48 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.DesireRate[11] = 108; // 54 mbps, in units of 0.5 Mbps
- break;
-
- case PHY_11A:
- case PHY_11AN_MIXED:
- case PHY_11AGN_MIXED:
- case PHY_11N_5G:
- pAd->CommonCfg.SupRate[0] = 0x8C; // 6 mbps, in units of 0.5 Mbps, basic rate
- pAd->CommonCfg.SupRate[1] = 0x12; // 9 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.SupRate[2] = 0x98; // 12 mbps, in units of 0.5 Mbps, basic rate
- pAd->CommonCfg.SupRate[3] = 0x24; // 18 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.SupRate[4] = 0xb0; // 24 mbps, in units of 0.5 Mbps, basic rate
- pAd->CommonCfg.SupRate[5] = 0x48; // 36 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.SupRate[6] = 0x60; // 48 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.SupRate[7] = 0x6c; // 54 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.SupRateLen = 8;
- pAd->CommonCfg.ExtRateLen = 0;
- pAd->CommonCfg.DesireRate[0] = 12; // 6 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.DesireRate[1] = 18; // 9 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.DesireRate[2] = 24; // 12 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.DesireRate[3] = 36; // 18 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.DesireRate[4] = 48; // 24 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.DesireRate[5] = 72; // 36 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.DesireRate[6] = 96; // 48 mbps, in units of 0.5 Mbps
- pAd->CommonCfg.DesireRate[7] = 108; // 54 mbps, in units of 0.5 Mbps
- //pAd->CommonCfg.HTPhyMode.field.MODE = MODE_OFDM; // This MODE is only FYI. not use
- break;
-
- default:
- break;
- }
-
-
- pAd->CommonCfg.BandState = UNKNOWN_BAND;
-}
-
-/*
- ========================================================================
- Routine Description:
- Caller ensures we has 802.11n support.
- Calls at setting HT from AP/STASetinformation
-
- Arguments:
- pAd - Pointer to our adapter
- phymode -
-
- ========================================================================
-*/
-VOID RTMPSetHT(
- IN PRTMP_ADAPTER pAd,
- IN OID_SET_HT_PHYMODE *pHTPhyMode)
-{
- //ULONG *pmcs;
- UINT32 Value = 0;
- UCHAR BBPValue = 0;
- UCHAR BBP3Value = 0;
- UCHAR RxStream = pAd->CommonCfg.RxStream;
-
- DBGPRINT(RT_DEBUG_TRACE, ("RTMPSetHT : HT_mode(%d), ExtOffset(%d), MCS(%d), BW(%d), STBC(%d), SHORTGI(%d)\n",
- pHTPhyMode->HtMode, pHTPhyMode->ExtOffset,
- pHTPhyMode->MCS, pHTPhyMode->BW,
- pHTPhyMode->STBC, pHTPhyMode->SHORTGI));
-
- // Don't zero supportedHyPhy structure.
- RTMPZeroMemory(&pAd->CommonCfg.HtCapability, sizeof(pAd->CommonCfg.HtCapability));
- RTMPZeroMemory(&pAd->CommonCfg.AddHTInfo, sizeof(pAd->CommonCfg.AddHTInfo));
- RTMPZeroMemory(&pAd->CommonCfg.NewExtChanOffset, sizeof(pAd->CommonCfg.NewExtChanOffset));
- RTMPZeroMemory(&pAd->CommonCfg.DesiredHtPhy, sizeof(pAd->CommonCfg.DesiredHtPhy));
-
- if (pAd->CommonCfg.bRdg)
- {
- pAd->CommonCfg.HtCapability.ExtHtCapInfo.PlusHTC = 1;
- pAd->CommonCfg.HtCapability.ExtHtCapInfo.RDGSupport = 1;
- }
- else
- {
- pAd->CommonCfg.HtCapability.ExtHtCapInfo.PlusHTC = 0;
- pAd->CommonCfg.HtCapability.ExtHtCapInfo.RDGSupport = 0;
- }
-
- pAd->CommonCfg.HtCapability.HtCapParm.MaxRAmpduFactor = 3;
- pAd->CommonCfg.DesiredHtPhy.MaxRAmpduFactor = 3;
-
- DBGPRINT(RT_DEBUG_TRACE, ("RTMPSetHT : RxBAWinLimit = %d\n", pAd->CommonCfg.BACapability.field.RxBAWinLimit));
-
- // Mimo power save, A-MSDU size,
- pAd->CommonCfg.DesiredHtPhy.AmsduEnable = (USHORT)pAd->CommonCfg.BACapability.field.AmsduEnable;
- pAd->CommonCfg.DesiredHtPhy.AmsduSize = (UCHAR)pAd->CommonCfg.BACapability.field.AmsduSize;
- pAd->CommonCfg.DesiredHtPhy.MimoPs = (UCHAR)pAd->CommonCfg.BACapability.field.MMPSmode;
- pAd->CommonCfg.DesiredHtPhy.MpduDensity = (UCHAR)pAd->CommonCfg.BACapability.field.MpduDensity;
-
- pAd->CommonCfg.HtCapability.HtCapInfo.AMsduSize = (USHORT)pAd->CommonCfg.BACapability.field.AmsduSize;
- pAd->CommonCfg.HtCapability.HtCapInfo.MimoPs = (USHORT)pAd->CommonCfg.BACapability.field.MMPSmode;
- pAd->CommonCfg.HtCapability.HtCapParm.MpduDensity = (UCHAR)pAd->CommonCfg.BACapability.field.MpduDensity;
-
- DBGPRINT(RT_DEBUG_TRACE, ("RTMPSetHT : AMsduSize = %d, MimoPs = %d, MpduDensity = %d, MaxRAmpduFactor = %d\n",
- pAd->CommonCfg.DesiredHtPhy.AmsduSize,
- pAd->CommonCfg.DesiredHtPhy.MimoPs,
- pAd->CommonCfg.DesiredHtPhy.MpduDensity,
- pAd->CommonCfg.DesiredHtPhy.MaxRAmpduFactor));
-
- if(pHTPhyMode->HtMode == HTMODE_GF)
- {
- pAd->CommonCfg.HtCapability.HtCapInfo.GF = 1;
- pAd->CommonCfg.DesiredHtPhy.GF = 1;
- }
- else
- pAd->CommonCfg.DesiredHtPhy.GF = 0;
-
- // Decide Rx MCSSet
- switch (RxStream)
- {
- case 1:
- pAd->CommonCfg.HtCapability.MCSSet[0] = 0xff;
- pAd->CommonCfg.HtCapability.MCSSet[1] = 0x00;
- break;
-
- case 2:
- pAd->CommonCfg.HtCapability.MCSSet[0] = 0xff;
- pAd->CommonCfg.HtCapability.MCSSet[1] = 0xff;
- break;
-
- case 3: // 3*3
- pAd->CommonCfg.HtCapability.MCSSet[0] = 0xff;
- pAd->CommonCfg.HtCapability.MCSSet[1] = 0xff;
- pAd->CommonCfg.HtCapability.MCSSet[2] = 0xff;
- break;
- }
-
- if (pAd->CommonCfg.bForty_Mhz_Intolerant && (pAd->CommonCfg.Channel <= 14) && (pHTPhyMode->BW == BW_40) )
- {
- pHTPhyMode->BW = BW_20;
- pAd->CommonCfg.HtCapability.HtCapInfo.Forty_Mhz_Intolerant = 1;
- }
-
- if(pHTPhyMode->BW == BW_40)
- {
- pAd->CommonCfg.HtCapability.MCSSet[4] = 0x1; // MCS 32
- pAd->CommonCfg.HtCapability.HtCapInfo.ChannelWidth = 1;
- if (pAd->CommonCfg.Channel <= 14)
- pAd->CommonCfg.HtCapability.HtCapInfo.CCKmodein40 = 1;
-
- pAd->CommonCfg.DesiredHtPhy.ChannelWidth = 1;
- pAd->CommonCfg.AddHTInfo.AddHtInfo.RecomWidth = 1;
- pAd->CommonCfg.AddHTInfo.AddHtInfo.ExtChanOffset = (pHTPhyMode->ExtOffset == EXTCHA_BELOW)? (EXTCHA_BELOW): EXTCHA_ABOVE;
- // Set Regsiter for extension channel position.
- RTMP_IO_READ32(pAd, TX_BAND_CFG, &Value);
- RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R3, &BBP3Value);
- if ((pHTPhyMode->ExtOffset == EXTCHA_BELOW))
- {
- Value |= 0x1;
- BBP3Value |= (0x20);
- RTMP_IO_WRITE32(pAd, TX_BAND_CFG, Value);
- }
- else if ((pHTPhyMode->ExtOffset == EXTCHA_ABOVE))
- {
- Value &= 0xfe;
- BBP3Value &= (~0x20);
- RTMP_IO_WRITE32(pAd, TX_BAND_CFG, Value);
- }
-
- // Turn on BBP 40MHz mode now only as AP .
- // Sta can turn on BBP 40MHz after connection with 40MHz AP. Sta only broadcast 40MHz capability before connection.
- if ((pAd->OpMode == OPMODE_AP) || INFRA_ON(pAd) || ADHOC_ON(pAd)
- )
- {
- RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R4, &BBPValue);
- BBPValue &= (~0x18);
- BBPValue |= 0x10;
- RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R4, BBPValue);
-
- RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R3, BBP3Value);
- pAd->CommonCfg.BBPCurrentBW = BW_40;
- }
- }
- else
- {
- pAd->CommonCfg.HtCapability.HtCapInfo.ChannelWidth = 0;
- pAd->CommonCfg.DesiredHtPhy.ChannelWidth = 0;
- pAd->CommonCfg.AddHTInfo.AddHtInfo.RecomWidth = 0;
- pAd->CommonCfg.AddHTInfo.AddHtInfo.ExtChanOffset = EXTCHA_NONE;
- pAd->CommonCfg.CentralChannel = pAd->CommonCfg.Channel;
- // Turn on BBP 20MHz mode by request here.
- {
- RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R4, &BBPValue);
- BBPValue &= (~0x18);
- RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R4, BBPValue);
- pAd->CommonCfg.BBPCurrentBW = BW_20;
- }
- }
-
- if(pHTPhyMode->STBC == STBC_USE)
- {
- pAd->CommonCfg.HtCapability.HtCapInfo.TxSTBC = 1;
- pAd->CommonCfg.DesiredHtPhy.TxSTBC = 1;
- pAd->CommonCfg.HtCapability.HtCapInfo.RxSTBC = 1;
- pAd->CommonCfg.DesiredHtPhy.RxSTBC = 1;
- }
- else
- {
- pAd->CommonCfg.DesiredHtPhy.TxSTBC = 0;
- pAd->CommonCfg.DesiredHtPhy.RxSTBC = 0;
- }
-
- if(pHTPhyMode->SHORTGI == GI_400)
- {
- pAd->CommonCfg.HtCapability.HtCapInfo.ShortGIfor20 = 1;
- pAd->CommonCfg.HtCapability.HtCapInfo.ShortGIfor40 = 1;
- pAd->CommonCfg.DesiredHtPhy.ShortGIfor20 = 1;
- pAd->CommonCfg.DesiredHtPhy.ShortGIfor40 = 1;
- }
- else
- {
- pAd->CommonCfg.HtCapability.HtCapInfo.ShortGIfor20 = 0;
- pAd->CommonCfg.HtCapability.HtCapInfo.ShortGIfor40 = 0;
- pAd->CommonCfg.DesiredHtPhy.ShortGIfor20 = 0;
- pAd->CommonCfg.DesiredHtPhy.ShortGIfor40 = 0;
- }
-
- // We support link adaptation for unsolicit MCS feedback, set to 2.
- pAd->CommonCfg.HtCapability.ExtHtCapInfo.MCSFeedback = MCSFBK_NONE; //MCSFBK_UNSOLICIT;
- pAd->CommonCfg.AddHTInfo.ControlChan = pAd->CommonCfg.Channel;
- // 1, the extension channel above the control channel.
-
- // EDCA parameters used for AP's own transmission
- if (pAd->CommonCfg.APEdcaParm.bValid == FALSE)
- {
- pAd->CommonCfg.APEdcaParm.bValid = TRUE;
- pAd->CommonCfg.APEdcaParm.Aifsn[0] = 3;
- pAd->CommonCfg.APEdcaParm.Aifsn[1] = 7;
- pAd->CommonCfg.APEdcaParm.Aifsn[2] = 1;
- pAd->CommonCfg.APEdcaParm.Aifsn[3] = 1;
-
- pAd->CommonCfg.APEdcaParm.Cwmin[0] = 4;
- pAd->CommonCfg.APEdcaParm.Cwmin[1] = 4;
- pAd->CommonCfg.APEdcaParm.Cwmin[2] = 3;
- pAd->CommonCfg.APEdcaParm.Cwmin[3] = 2;
-
- pAd->CommonCfg.APEdcaParm.Cwmax[0] = 6;
- pAd->CommonCfg.APEdcaParm.Cwmax[1] = 10;
- pAd->CommonCfg.APEdcaParm.Cwmax[2] = 4;
- pAd->CommonCfg.APEdcaParm.Cwmax[3] = 3;
-
- pAd->CommonCfg.APEdcaParm.Txop[0] = 0;
- pAd->CommonCfg.APEdcaParm.Txop[1] = 0;
- pAd->CommonCfg.APEdcaParm.Txop[2] = 94;
- pAd->CommonCfg.APEdcaParm.Txop[3] = 47;
- }
- AsicSetEdcaParm(pAd, &pAd->CommonCfg.APEdcaParm);
-
- {
- RTMPSetIndividualHT(pAd, 0);
- }
-
-}
-
-/*
- ========================================================================
- Routine Description:
- Caller ensures we has 802.11n support.
- Calls at setting HT from AP/STASetinformation
-
- Arguments:
- pAd - Pointer to our adapter
- phymode -
-
- ========================================================================
-*/
-VOID RTMPSetIndividualHT(
- IN PRTMP_ADAPTER pAd,
- IN UCHAR apidx)
-{
- PRT_HT_PHY_INFO pDesired_ht_phy = NULL;
- UCHAR TxStream = pAd->CommonCfg.TxStream;
- UCHAR DesiredMcs = MCS_AUTO;
-
- do
- {
- {
- pDesired_ht_phy = &pAd->StaCfg.DesiredHtPhyInfo;
- DesiredMcs = pAd->StaCfg.DesiredTransmitSetting.field.MCS;
- //pAd->StaCfg.bAutoTxRateSwitch = (DesiredMcs == MCS_AUTO) ? TRUE : FALSE;
- break;
- }
- } while (FALSE);
-
- if (pDesired_ht_phy == NULL)
- {
- DBGPRINT(RT_DEBUG_ERROR, ("RTMPSetIndividualHT: invalid apidx(%d)\n", apidx));
- return;
- }
- RTMPZeroMemory(pDesired_ht_phy, sizeof(RT_HT_PHY_INFO));
-
- DBGPRINT(RT_DEBUG_TRACE, ("RTMPSetIndividualHT : Desired MCS = %d\n", DesiredMcs));
- // Check the validity of MCS
- if ((TxStream == 1) && ((DesiredMcs >= MCS_8) && (DesiredMcs <= MCS_15)))
- {
- DBGPRINT(RT_DEBUG_WARN, ("RTMPSetIndividualHT: MCS(%d) is invalid in 1S, reset it as MCS_7\n", DesiredMcs));
- DesiredMcs = MCS_7;
- }
-
- if ((pAd->CommonCfg.DesiredHtPhy.ChannelWidth == BW_20) && (DesiredMcs == MCS_32))
- {
- DBGPRINT(RT_DEBUG_WARN, ("RTMPSetIndividualHT: MCS_32 is only supported in 40-MHz, reset it as MCS_0\n"));
- DesiredMcs = MCS_0;
- }
-
- pDesired_ht_phy->bHtEnable = TRUE;
-
- // Decide desired Tx MCS
- switch (TxStream)
- {
- case 1:
- if (DesiredMcs == MCS_AUTO)
- {
- pDesired_ht_phy->MCSSet[0]= 0xff;
- pDesired_ht_phy->MCSSet[1]= 0x00;
- }
- else if (DesiredMcs <= MCS_7)
- {
- pDesired_ht_phy->MCSSet[0]= 1<<DesiredMcs;
- pDesired_ht_phy->MCSSet[1]= 0x00;
- }
- break;
-
- case 2:
- if (DesiredMcs == MCS_AUTO)
- {
- pDesired_ht_phy->MCSSet[0]= 0xff;
- pDesired_ht_phy->MCSSet[1]= 0xff;
- }
- else if (DesiredMcs <= MCS_15)
- {
- ULONG mode;
-
- mode = DesiredMcs / 8;
- if (mode < 2)
- pDesired_ht_phy->MCSSet[mode] = (1 << (DesiredMcs - mode * 8));
- }
- break;
-
- case 3: // 3*3
- if (DesiredMcs == MCS_AUTO)
- {
- /* MCS0 ~ MCS23, 3 bytes */
- pDesired_ht_phy->MCSSet[0]= 0xff;
- pDesired_ht_phy->MCSSet[1]= 0xff;
- pDesired_ht_phy->MCSSet[2]= 0xff;
- }
- else if (DesiredMcs <= MCS_23)
- {
- ULONG mode;
-
- mode = DesiredMcs / 8;
- if (mode < 3)
- pDesired_ht_phy->MCSSet[mode] = (1 << (DesiredMcs - mode * 8));
- }
- break;
- }
-
- if(pAd->CommonCfg.DesiredHtPhy.ChannelWidth == BW_40)
- {
- if (DesiredMcs == MCS_AUTO || DesiredMcs == MCS_32)
- pDesired_ht_phy->MCSSet[4] = 0x1;
- }
-
- // update HT Rate setting
- if (pAd->OpMode == OPMODE_STA)
- MlmeUpdateHtTxRates(pAd, BSS0);
- else
- MlmeUpdateHtTxRates(pAd, apidx);
-}
-
-
-/*
- ========================================================================
- Routine Description:
- Update HT IE from our capability.
-
- Arguments:
- Send all HT IE in beacon/probe rsp/assoc rsp/action frame.
-
-
- ========================================================================
-*/
-VOID RTMPUpdateHTIE(
- IN RT_HT_CAPABILITY *pRtHt,
- IN UCHAR *pMcsSet,
- OUT HT_CAPABILITY_IE *pHtCapability,
- OUT ADD_HT_INFO_IE *pAddHtInfo)
-{
- RTMPZeroMemory(pHtCapability, sizeof(HT_CAPABILITY_IE));
- RTMPZeroMemory(pAddHtInfo, sizeof(ADD_HT_INFO_IE));
-
- pHtCapability->HtCapInfo.ChannelWidth = pRtHt->ChannelWidth;
- pHtCapability->HtCapInfo.MimoPs = pRtHt->MimoPs;
- pHtCapability->HtCapInfo.GF = pRtHt->GF;
- pHtCapability->HtCapInfo.ShortGIfor20 = pRtHt->ShortGIfor20;
- pHtCapability->HtCapInfo.ShortGIfor40 = pRtHt->ShortGIfor40;
- pHtCapability->HtCapInfo.TxSTBC = pRtHt->TxSTBC;
- pHtCapability->HtCapInfo.RxSTBC = pRtHt->RxSTBC;
- pHtCapability->HtCapInfo.AMsduSize = pRtHt->AmsduSize;
- pHtCapability->HtCapParm.MaxRAmpduFactor = pRtHt->MaxRAmpduFactor;
- pHtCapability->HtCapParm.MpduDensity = pRtHt->MpduDensity;
-
- pAddHtInfo->AddHtInfo.ExtChanOffset = pRtHt->ExtChanOffset ;
- pAddHtInfo->AddHtInfo.RecomWidth = pRtHt->RecomWidth;
- pAddHtInfo->AddHtInfo2.OperaionMode = pRtHt->OperaionMode;
- pAddHtInfo->AddHtInfo2.NonGfPresent = pRtHt->NonGfPresent;
- RTMPMoveMemory(pAddHtInfo->MCSSet, /*pRtHt->MCSSet*/pMcsSet, 4); // rt2860 only support MCS max=32, no need to copy all 16 uchar.
-
- DBGPRINT(RT_DEBUG_TRACE,("RTMPUpdateHTIE <== \n"));
-}
-
-/*
- ========================================================================
- Description:
- Add Client security information into ASIC WCID table and IVEIV table.
- Return:
- ========================================================================
-*/
-VOID RTMPAddWcidAttributeEntry(
- IN PRTMP_ADAPTER pAd,
- IN UCHAR BssIdx,
- IN UCHAR KeyIdx,
- IN UCHAR CipherAlg,
- IN MAC_TABLE_ENTRY *pEntry)
-{
- UINT32 WCIDAttri = 0;
- USHORT offset;
- UCHAR IVEIV = 0;
- USHORT Wcid = 0;
-
- {
- {
- if (BssIdx > BSS0)
- {
- DBGPRINT(RT_DEBUG_ERROR, ("RTMPAddWcidAttributeEntry: The BSS-index(%d) is out of range for Infra link. \n", BssIdx));
- return;
- }
-
- // 1. In ADHOC mode, the AID is wcid number. And NO mesh link exists.
- // 2. In Infra mode, the AID:1 MUST be wcid of infra STA.
- // the AID:2~ assign to mesh link entry.
- if (pEntry)
- Wcid = pEntry->Aid;
- else
- Wcid = MCAST_WCID;
- }
- }
-
- // Update WCID attribute table
- offset = MAC_WCID_ATTRIBUTE_BASE + (Wcid * HW_WCID_ATTRI_SIZE);
-
- {
- if (pEntry && pEntry->ValidAsMesh)
- WCIDAttri = (CipherAlg<<1) | PAIRWISEKEYTABLE;
- else
- WCIDAttri = (CipherAlg<<1) | SHAREDKEYTABLE;
- }
-
- RTMP_IO_WRITE32(pAd, offset, WCIDAttri);
-
-
- // Update IV/EIV table
- offset = MAC_IVEIV_TABLE_BASE + (Wcid * HW_IVEIV_ENTRY_SIZE);
-
- // WPA mode
- if ((CipherAlg == CIPHER_TKIP) || (CipherAlg == CIPHER_TKIP_NO_MIC) || (CipherAlg == CIPHER_AES))
- {
- // Eiv bit on. keyid always is 0 for pairwise key
- IVEIV = (KeyIdx <<6) | 0x20;
- }
- else
- {
- // WEP KeyIdx is default tx key.
- IVEIV = (KeyIdx << 6);
- }
-
- // For key index and ext IV bit, so only need to update the position(offset+3).
-#ifdef RTMP_MAC_PCI
- RTMP_IO_WRITE8(pAd, offset+3, IVEIV);
-#endif // RTMP_MAC_PCI //
-#ifdef RTMP_MAC_USB
- RTUSBMultiWrite_OneByte(pAd, offset+3, &IVEIV);
-#endif // RTMP_MAC_USB //
-
- DBGPRINT(RT_DEBUG_TRACE,("RTMPAddWcidAttributeEntry: WCID #%d, KeyIndex #%d, Alg=%s\n",Wcid, KeyIdx, CipherName[CipherAlg]));
- DBGPRINT(RT_DEBUG_TRACE,(" WCIDAttri = 0x%x \n", WCIDAttri));
-
-}
-
-/*
- ==========================================================================
- Description:
- Parse encryption type
-Arguments:
- pAdapter Pointer to our adapter
- wrq Pointer to the ioctl argument
-
- Return Value:
- None
-
- Note:
- ==========================================================================
-*/
-PSTRING GetEncryptType(CHAR enc)
-{
- if(enc == Ndis802_11WEPDisabled)
- return "NONE";
- if(enc == Ndis802_11WEPEnabled)
- return "WEP";
- if(enc == Ndis802_11Encryption2Enabled)
- return "TKIP";
- if(enc == Ndis802_11Encryption3Enabled)
- return "AES";
- if(enc == Ndis802_11Encryption4Enabled)
- return "TKIPAES";
- else
- return "UNKNOW";
-}
-
-PSTRING GetAuthMode(CHAR auth)
-{
- if(auth == Ndis802_11AuthModeOpen)
- return "OPEN";
- if(auth == Ndis802_11AuthModeShared)
- return "SHARED";
- if(auth == Ndis802_11AuthModeAutoSwitch)
- return "AUTOWEP";
- if(auth == Ndis802_11AuthModeWPA)
- return "WPA";
- if(auth == Ndis802_11AuthModeWPAPSK)
- return "WPAPSK";
- if(auth == Ndis802_11AuthModeWPANone)
- return "WPANONE";
- if(auth == Ndis802_11AuthModeWPA2)
- return "WPA2";
- if(auth == Ndis802_11AuthModeWPA2PSK)
- return "WPA2PSK";
- if(auth == Ndis802_11AuthModeWPA1WPA2)
- return "WPA1WPA2";
- if(auth == Ndis802_11AuthModeWPA1PSKWPA2PSK)
- return "WPA1PSKWPA2PSK";
-
- return "UNKNOW";
-}
-
-/*
- ==========================================================================
- Description:
- Get site survey results
- Arguments:
- pAdapter Pointer to our adapter
- wrq Pointer to the ioctl argument
-
- Return Value:
- None
-
- Note:
- Usage:
- 1.) UI needs to wait 4 seconds after issue a site survey command
- 2.) iwpriv ra0 get_site_survey
- 3.) UI needs to prepare at least 4096bytes to get the results
- ==========================================================================
-*/
-#define LINE_LEN (4+33+20+23+9+7+7+3) // Channel+SSID+Bssid+Security+Signal+WiressMode+ExtCh+NetworkType
-VOID RTMPCommSiteSurveyData(
- IN PSTRING msg,
- IN PBSS_ENTRY pBss)
-{
- INT Rssi = 0;
- UINT Rssi_Quality = 0;
- NDIS_802_11_NETWORK_TYPE wireless_mode;
- CHAR Ssid[MAX_LEN_OF_SSID +1];
- STRING SecurityStr[32] = {0};
- NDIS_802_11_ENCRYPTION_STATUS ap_cipher = Ndis802_11EncryptionDisabled;
- NDIS_802_11_AUTHENTICATION_MODE ap_auth_mode = Ndis802_11AuthModeOpen;
-
- memset(Ssid, 0 ,(MAX_LEN_OF_SSID +1));
-
- //Channel
- sprintf(msg+strlen(msg),"%-4d", pBss->Channel);
- //SSID
- memcpy(Ssid, pBss->Ssid, pBss->SsidLen);
- Ssid[pBss->SsidLen] = '\0';
- sprintf(msg+strlen(msg),"%-33s", Ssid);
- //BSSID
- sprintf(msg+strlen(msg),"%02x:%02x:%02x:%02x:%02x:%02x ",
- pBss->Bssid[0],
- pBss->Bssid[1],
- pBss->Bssid[2],
- pBss->Bssid[3],
- pBss->Bssid[4],
- pBss->Bssid[5]);
-
- //Security
- if ((Ndis802_11AuthModeWPA <= pBss->AuthMode) &&
- (pBss->AuthMode <= Ndis802_11AuthModeWPA1PSKWPA2PSK))
- {
- if (pBss->AuthModeAux == Ndis802_11AuthModeWPANone)
- {
- ap_auth_mode = pBss->AuthMode;
- if (pBss->WPA.PairCipherAux == Ndis802_11WEPDisabled)
- ap_cipher = pBss->WPA.PairCipher;
- else
- ap_cipher = Ndis802_11Encryption4Enabled;
- }
- else if (pBss->AuthModeAux == Ndis802_11AuthModeOpen)
- {
- ap_auth_mode = pBss->AuthMode;
- if ((ap_auth_mode == Ndis802_11AuthModeWPA) ||
- (ap_auth_mode == Ndis802_11AuthModeWPAPSK))
- {
- if (pBss->WPA.PairCipherAux == Ndis802_11WEPDisabled)
- ap_cipher = pBss->WPA.PairCipher;
- else
- ap_cipher = Ndis802_11Encryption4Enabled;
- }
- else if ((ap_auth_mode == Ndis802_11AuthModeWPA2) ||
- (ap_auth_mode == Ndis802_11AuthModeWPA2PSK))
- {
- if (pBss->WPA2.PairCipherAux == Ndis802_11WEPDisabled)
- ap_cipher = pBss->WPA2.PairCipher;
- else
- ap_cipher = Ndis802_11Encryption4Enabled;
- }
- }
- else if ((pBss->AuthMode == Ndis802_11AuthModeWPAPSK) ||
- (pBss->AuthMode == Ndis802_11AuthModeWPA2PSK))
- {
- if ((pBss->AuthModeAux == Ndis802_11AuthModeWPAPSK) ||
- (pBss->AuthModeAux == Ndis802_11AuthModeWPA2PSK))
- ap_auth_mode = Ndis802_11AuthModeWPA1PSKWPA2PSK;
- else
- ap_auth_mode = pBss->AuthMode;
-
- if (pBss->WPA.PairCipher != pBss->WPA2.PairCipher)
- ap_cipher = Ndis802_11Encryption4Enabled;
- else if ((pBss->WPA.PairCipher == pBss->WPA2.PairCipher) &&
- (pBss->WPA.PairCipherAux != pBss->WPA2.PairCipherAux))
- ap_cipher = Ndis802_11Encryption4Enabled;
- else if ((pBss->WPA.PairCipher == pBss->WPA2.PairCipher) &&
- (pBss->WPA.PairCipherAux == pBss->WPA2.PairCipherAux) &&
- (pBss->WPA.PairCipherAux != Ndis802_11WEPDisabled))
- ap_cipher = Ndis802_11Encryption4Enabled;
- else if ((pBss->WPA.PairCipher == pBss->WPA2.PairCipher) &&
- (pBss->WPA.PairCipherAux == pBss->WPA2.PairCipherAux) &&
- (pBss->WPA.PairCipherAux == Ndis802_11WEPDisabled))
- ap_cipher = pBss->WPA.PairCipher;
- }
- else if ((pBss->AuthMode == Ndis802_11AuthModeWPA) ||
- (pBss->AuthMode == Ndis802_11AuthModeWPA2))
- {
- if ((pBss->AuthModeAux == Ndis802_11AuthModeWPA) ||
- (pBss->AuthMode == Ndis802_11AuthModeWPA2))
- ap_auth_mode = Ndis802_11AuthModeWPA1WPA2;
- else
- ap_auth_mode = pBss->AuthMode;
-
- if (pBss->WPA.PairCipher != pBss->WPA2.PairCipher)
- ap_cipher = Ndis802_11Encryption4Enabled;
- else if ((pBss->WPA.PairCipher == pBss->WPA2.PairCipher) &&
- (pBss->WPA.PairCipherAux != pBss->WPA2.PairCipherAux))
- ap_cipher = Ndis802_11Encryption4Enabled;
- else if ((pBss->WPA.PairCipher == pBss->WPA2.PairCipher) &&
- (pBss->WPA.PairCipherAux == pBss->WPA2.PairCipherAux) &&
- (pBss->WPA.PairCipherAux != Ndis802_11WEPDisabled))
- ap_cipher = Ndis802_11Encryption4Enabled;
- else if ((pBss->WPA.PairCipher == pBss->WPA2.PairCipher) &&
- (pBss->WPA.PairCipherAux == pBss->WPA2.PairCipherAux) &&
- (pBss->WPA.PairCipherAux == Ndis802_11WEPDisabled))
- ap_cipher = pBss->WPA.PairCipher;
- }
-
- sprintf(SecurityStr, "%s/%s", GetAuthMode((CHAR)ap_auth_mode), GetEncryptType((CHAR)ap_cipher));
- }
- else
- {
- ap_auth_mode = pBss->AuthMode;
- ap_cipher = pBss->WepStatus;
- if (ap_cipher == Ndis802_11WEPDisabled)
- sprintf(SecurityStr, "NONE");
- else if (ap_cipher == Ndis802_11WEPEnabled)
- sprintf(SecurityStr, "WEP");
- else
- sprintf(SecurityStr, "%s/%s", GetAuthMode((CHAR)ap_auth_mode), GetEncryptType((CHAR)ap_cipher));
- }
-
- sprintf(msg+strlen(msg), "%-23s", SecurityStr);
-
- // Rssi
- Rssi = (INT)pBss->Rssi;
- if (Rssi >= -50)
- Rssi_Quality = 100;
- else if (Rssi >= -80) // between -50 ~ -80dbm
- Rssi_Quality = (UINT)(24 + ((Rssi + 80) * 26)/10);
- else if (Rssi >= -90) // between -80 ~ -90dbm
- Rssi_Quality = (UINT)(((Rssi + 90) * 26)/10);
- else // < -84 dbm
- Rssi_Quality = 0;
- sprintf(msg+strlen(msg),"%-9d", Rssi_Quality);
- // Wireless Mode
- wireless_mode = NetworkTypeInUseSanity(pBss);
- if (wireless_mode == Ndis802_11FH ||
- wireless_mode == Ndis802_11DS)
- sprintf(msg+strlen(msg),"%-7s", "11b");
- else if (wireless_mode == Ndis802_11OFDM5)
- sprintf(msg+strlen(msg),"%-7s", "11a");
- else if (wireless_mode == Ndis802_11OFDM5_N)
- sprintf(msg+strlen(msg),"%-7s", "11a/n");
- else if (wireless_mode == Ndis802_11OFDM24)
- sprintf(msg+strlen(msg),"%-7s", "11b/g");
- else if (wireless_mode == Ndis802_11OFDM24_N)
- sprintf(msg+strlen(msg),"%-7s", "11b/g/n");
- else
- sprintf(msg+strlen(msg),"%-7s", "unknow");
-
- // Ext Channel
- if (pBss->AddHtInfoLen > 0)
- {
- if (pBss->AddHtInfo.AddHtInfo.ExtChanOffset == EXTCHA_ABOVE)
- sprintf(msg+strlen(msg),"%-7s", " ABOVE");
- else if (pBss->AddHtInfo.AddHtInfo.ExtChanOffset == EXTCHA_BELOW)
- sprintf(msg+strlen(msg),"%-7s", " BELOW");
- else
- sprintf(msg+strlen(msg),"%-7s", " NONE");
- }
- else
- {
- sprintf(msg+strlen(msg),"%-7s", " NONE");
- }
-
- //Network Type
- if (pBss->BssType == BSS_ADHOC)
- sprintf(msg+strlen(msg),"%-3s", " Ad");
- else
- sprintf(msg+strlen(msg),"%-3s", " In");
-
- sprintf(msg+strlen(msg),"\n");
-
- return;
-}
-
-#define MAC_LINE_LEN (14+4+4+10+10+10+6+6) // Addr+aid+psm+datatime+rxbyte+txbyte+current tx rate+last tx rate
-VOID RTMPIoctlGetMacTable(
- IN PRTMP_ADAPTER pAd,
- IN struct iwreq *wrq)
-{
- INT i;
- RT_802_11_MAC_TABLE MacTab;
- char *msg;
-
- MacTab.Num = 0;
- for (i=0; i<MAX_LEN_OF_MAC_TABLE; i++)
- {
- if (pAd->MacTab.Content[i].ValidAsCLI && (pAd->MacTab.Content[i].Sst == SST_ASSOC))
- {
- COPY_MAC_ADDR(MacTab.Entry[MacTab.Num].Addr, &pAd->MacTab.Content[i].Addr);
- MacTab.Entry[MacTab.Num].Aid = (UCHAR)pAd->MacTab.Content[i].Aid;
- MacTab.Entry[MacTab.Num].Psm = pAd->MacTab.Content[i].PsMode;
- MacTab.Entry[MacTab.Num].MimoPs = pAd->MacTab.Content[i].MmpsMode;
-
- // Fill in RSSI per entry
- MacTab.Entry[MacTab.Num].AvgRssi0 = pAd->MacTab.Content[i].RssiSample.AvgRssi0;
- MacTab.Entry[MacTab.Num].AvgRssi1 = pAd->MacTab.Content[i].RssiSample.AvgRssi1;
- MacTab.Entry[MacTab.Num].AvgRssi2 = pAd->MacTab.Content[i].RssiSample.AvgRssi2;
-
- // the connected time per entry
- MacTab.Entry[MacTab.Num].ConnectedTime = pAd->MacTab.Content[i].StaConnectTime;
- MacTab.Entry[MacTab.Num].TxRate.field.MCS = pAd->MacTab.Content[i].HTPhyMode.field.MCS;
- MacTab.Entry[MacTab.Num].TxRate.field.BW = pAd->MacTab.Content[i].HTPhyMode.field.BW;
- MacTab.Entry[MacTab.Num].TxRate.field.ShortGI = pAd->MacTab.Content[i].HTPhyMode.field.ShortGI;
- MacTab.Entry[MacTab.Num].TxRate.field.STBC = pAd->MacTab.Content[i].HTPhyMode.field.STBC;
- MacTab.Entry[MacTab.Num].TxRate.field.rsv = pAd->MacTab.Content[i].HTPhyMode.field.rsv;
- MacTab.Entry[MacTab.Num].TxRate.field.MODE = pAd->MacTab.Content[i].HTPhyMode.field.MODE;
- MacTab.Entry[MacTab.Num].TxRate.word = pAd->MacTab.Content[i].HTPhyMode.word;
-
- MacTab.Num += 1;
- }
- }
- wrq->u.data.length = sizeof(RT_802_11_MAC_TABLE);
- if (copy_to_user(wrq->u.data.pointer, &MacTab, wrq->u.data.length))
- {
- DBGPRINT(RT_DEBUG_TRACE, ("%s: copy_to_user() fail\n", __func__));
- }
-
- msg = kmalloc(sizeof(CHAR)*(MAX_LEN_OF_MAC_TABLE*MAC_LINE_LEN), MEM_ALLOC_FLAG);
- if (msg == NULL)
- {
- DBGPRINT(RT_DEBUG_ERROR, ("%s():Alloc memory failed\n", __func__));
- return;
- }
- memset(msg, 0 ,MAX_LEN_OF_MAC_TABLE*MAC_LINE_LEN );
- sprintf(msg,"%s","\n");
- sprintf(msg+strlen(msg),"%-14s%-4s%-4s%-10s%-10s%-10s%-6s%-6s\n",
- "MAC", "AID", "PSM", "LDT", "RxB", "TxB","CTxR", "LTxR");
-
- for (i=0; i<MAX_LEN_OF_MAC_TABLE; i++)
- {
- PMAC_TABLE_ENTRY pEntry = &pAd->MacTab.Content[i];
- if (pEntry->ValidAsCLI && (pEntry->Sst == SST_ASSOC))
- {
- if((strlen(msg)+MAC_LINE_LEN ) >= (MAX_LEN_OF_MAC_TABLE*MAC_LINE_LEN) )
- break;
- sprintf(msg+strlen(msg),"%02x%02x%02x%02x%02x%02x ",
- pEntry->Addr[0], pEntry->Addr[1], pEntry->Addr[2],
- pEntry->Addr[3], pEntry->Addr[4], pEntry->Addr[5]);
- sprintf(msg+strlen(msg),"%-4d", (int)pEntry->Aid);
- sprintf(msg+strlen(msg),"%-4d", (int)pEntry->PsMode);
- sprintf(msg+strlen(msg),"%-10d",0/*pAd->MacTab.Content[i].HSCounter.LastDataPacketTime*/); // ToDo
- sprintf(msg+strlen(msg),"%-10d",0/*pAd->MacTab.Content[i].HSCounter.TotalRxByteCount*/); // ToDo
- sprintf(msg+strlen(msg),"%-10d",0/*pAd->MacTab.Content[i].HSCounter.TotalTxByteCount*/); // ToDo
- sprintf(msg+strlen(msg),"%-6d",RateIdToMbps[pAd->MacTab.Content[i].CurrTxRate]);
- sprintf(msg+strlen(msg),"%-6d\n",0/*RateIdToMbps[pAd->MacTab.Content[i].LastTxRate]*/); // ToDo
- }
- }
- // for compatible with old API just do the printk to console
- //wrq->u.data.length = strlen(msg);
- //if (copy_to_user(wrq->u.data.pointer, msg, wrq->u.data.length))
- {
- DBGPRINT(RT_DEBUG_TRACE, ("%s", msg));
- }
-
- kfree(msg);
-}
-
-
-INT Set_BASetup_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- UCHAR mac[6], tid;
- PSTRING token;
- STRING sepValue[] = ":", DASH = '-';
- INT i;
- MAC_TABLE_ENTRY *pEntry;
-
-/*
- The BASetup inupt string format should be xx:xx:xx:xx:xx:xx-d,
- =>The six 2 digit hex-decimal number previous are the Mac address,
- =>The seventh decimal number is the tid value.
-*/
- //DBGPRINT(RT_DEBUG_TRACE,("\n%s\n", arg));
-
- if(strlen(arg) < 19) //Mac address acceptable format 01:02:03:04:05:06 length 17 plus the "-" and tid value in decimal format.
- return FALSE;
-
- token = strchr(arg, DASH);
- if ((token != NULL) && (strlen(token)>1))
- {
- tid = (UCHAR) simple_strtol((token+1), 0, 10);
- if (tid > 15)
- return FALSE;
-
- *token = '\0';
- for (i = 0, token = rstrtok(arg, &sepValue[0]); token; token = rstrtok(NULL, &sepValue[0]), i++)
- {
- if((strlen(token) != 2) || (!isxdigit(*token)) || (!isxdigit(*(token+1))))
- return FALSE;
- AtoH(token, (&mac[i]), 1);
- }
- if(i != 6)
- return FALSE;
-
- DBGPRINT(RT_DEBUG_OFF, ("\n%02x:%02x:%02x:%02x:%02x:%02x-%02x\n",
- mac[0], mac[1], mac[2], mac[3], mac[4], mac[5], tid));
-
- pEntry = MacTableLookup(pAd, (PUCHAR) mac);
-
- if (pEntry) {
- DBGPRINT(RT_DEBUG_OFF, ("\nSetup BA Session: Tid = %d\n", tid));
- BAOriSessionSetUp(pAd, pEntry, tid, 0, 100, TRUE);
- }
-
- return TRUE;
- }
-
- return FALSE;
-
-}
-
-INT Set_BADecline_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- ULONG bBADecline;
-
- bBADecline = simple_strtol(arg, 0, 10);
-
- if (bBADecline == 0)
- {
- pAd->CommonCfg.bBADecline = FALSE;
- }
- else if (bBADecline == 1)
- {
- pAd->CommonCfg.bBADecline = TRUE;
- }
- else
- {
- return FALSE; //Invalid argument
- }
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_BADecline_Proc::(BADecline=%d)\n", pAd->CommonCfg.bBADecline));
-
- return TRUE;
-}
-
-INT Set_BAOriTearDown_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- UCHAR mac[6], tid;
- PSTRING token;
- STRING sepValue[] = ":", DASH = '-';
- INT i;
- MAC_TABLE_ENTRY *pEntry;
-
- //DBGPRINT(RT_DEBUG_TRACE,("\n%s\n", arg));
-/*
- The BAOriTearDown inupt string format should be xx:xx:xx:xx:xx:xx-d,
- =>The six 2 digit hex-decimal number previous are the Mac address,
- =>The seventh decimal number is the tid value.
-*/
- if(strlen(arg) < 19) //Mac address acceptable format 01:02:03:04:05:06 length 17 plus the "-" and tid value in decimal format.
- return FALSE;
-
- token = strchr(arg, DASH);
- if ((token != NULL) && (strlen(token)>1))
- {
- tid = simple_strtol((token+1), 0, 10);
- if (tid > NUM_OF_TID)
- return FALSE;
-
- *token = '\0';
- for (i = 0, token = rstrtok(arg, &sepValue[0]); token; token = rstrtok(NULL, &sepValue[0]), i++)
- {
- if((strlen(token) != 2) || (!isxdigit(*token)) || (!isxdigit(*(token+1))))
- return FALSE;
- AtoH(token, (&mac[i]), 1);
- }
- if(i != 6)
- return FALSE;
-
- DBGPRINT(RT_DEBUG_OFF, ("\n%02x:%02x:%02x:%02x:%02x:%02x-%02x",
- mac[0], mac[1], mac[2], mac[3], mac[4], mac[5], tid));
-
- pEntry = MacTableLookup(pAd, (PUCHAR) mac);
-
- if (pEntry) {
- DBGPRINT(RT_DEBUG_OFF, ("\nTear down Ori BA Session: Tid = %d\n", tid));
- BAOriSessionTearDown(pAd, pEntry->Aid, tid, FALSE, TRUE);
- }
-
- return TRUE;
- }
-
- return FALSE;
-
-}
-
-INT Set_BARecTearDown_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- UCHAR mac[6], tid;
- PSTRING token;
- STRING sepValue[] = ":", DASH = '-';
- INT i;
- MAC_TABLE_ENTRY *pEntry;
-
- //DBGPRINT(RT_DEBUG_TRACE,("\n%s\n", arg));
-/*
- The BARecTearDown inupt string format should be xx:xx:xx:xx:xx:xx-d,
- =>The six 2 digit hex-decimal number previous are the Mac address,
- =>The seventh decimal number is the tid value.
-*/
- if(strlen(arg) < 19) //Mac address acceptable format 01:02:03:04:05:06 length 17 plus the "-" and tid value in decimal format.
- return FALSE;
-
- token = strchr(arg, DASH);
- if ((token != NULL) && (strlen(token)>1))
- {
- tid = simple_strtol((token+1), 0, 10);
- if (tid > NUM_OF_TID)
- return FALSE;
-
- *token = '\0';
- for (i = 0, token = rstrtok(arg, &sepValue[0]); token; token = rstrtok(NULL, &sepValue[0]), i++)
- {
- if((strlen(token) != 2) || (!isxdigit(*token)) || (!isxdigit(*(token+1))))
- return FALSE;
- AtoH(token, (&mac[i]), 1);
- }
- if(i != 6)
- return FALSE;
-
- DBGPRINT(RT_DEBUG_OFF, ("\n%02x:%02x:%02x:%02x:%02x:%02x-%02x",
- mac[0], mac[1], mac[2], mac[3], mac[4], mac[5], tid));
-
- pEntry = MacTableLookup(pAd, (PUCHAR) mac);
-
- if (pEntry) {
- DBGPRINT(RT_DEBUG_OFF, ("\nTear down Rec BA Session: Tid = %d\n", tid));
- BARecSessionTearDown(pAd, pEntry->Aid, tid, FALSE);
- }
-
- return TRUE;
- }
-
- return FALSE;
-
-}
-
-INT Set_HtBw_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- ULONG HtBw;
-
- HtBw = simple_strtol(arg, 0, 10);
- if (HtBw == BW_40)
- pAd->CommonCfg.RegTransmitSetting.field.BW = BW_40;
- else if (HtBw == BW_20)
- pAd->CommonCfg.RegTransmitSetting.field.BW = BW_20;
- else
- return FALSE; //Invalid argument
-
- SetCommonHT(pAd);
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_HtBw_Proc::(HtBw=%d)\n", pAd->CommonCfg.RegTransmitSetting.field.BW));
-
- return TRUE;
-}
-
-INT Set_HtMcs_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- ULONG HtMcs, Mcs_tmp;
- BOOLEAN bAutoRate = FALSE;
-
- Mcs_tmp = simple_strtol(arg, 0, 10);
-
- if (Mcs_tmp <= 15 || Mcs_tmp == 32)
- HtMcs = Mcs_tmp;
- else
- HtMcs = MCS_AUTO;
-
- {
- pAd->StaCfg.DesiredTransmitSetting.field.MCS = HtMcs;
- pAd->StaCfg.bAutoTxRateSwitch = (HtMcs == MCS_AUTO) ? TRUE:FALSE;
- DBGPRINT(RT_DEBUG_TRACE, ("Set_HtMcs_Proc::(HtMcs=%d, bAutoTxRateSwitch = %d)\n",
- pAd->StaCfg.DesiredTransmitSetting.field.MCS, pAd->StaCfg.bAutoTxRateSwitch));
-
- if ((pAd->CommonCfg.PhyMode < PHY_11ABGN_MIXED) ||
- (pAd->MacTab.Content[BSSID_WCID].HTPhyMode.field.MODE < MODE_HTMIX))
- {
- if ((pAd->StaCfg.DesiredTransmitSetting.field.MCS != MCS_AUTO) &&
- (HtMcs >= 0 && HtMcs <= 3) &&
- (pAd->StaCfg.DesiredTransmitSetting.field.FixedTxMode == FIXED_TXMODE_CCK))
- {
- RTMPSetDesiredRates(pAd, (LONG) (RateIdToMbps[HtMcs] * 1000000));
- }
- else if ((pAd->StaCfg.DesiredTransmitSetting.field.MCS != MCS_AUTO) &&
- (HtMcs >= 0 && HtMcs <= 7) &&
- (pAd->StaCfg.DesiredTransmitSetting.field.FixedTxMode == FIXED_TXMODE_OFDM))
- {
- RTMPSetDesiredRates(pAd, (LONG) (RateIdToMbps[HtMcs+4] * 1000000));
- }
- else
- bAutoRate = TRUE;
-
- if (bAutoRate)
- {
- pAd->StaCfg.DesiredTransmitSetting.field.MCS = MCS_AUTO;
- RTMPSetDesiredRates(pAd, -1);
- }
- DBGPRINT(RT_DEBUG_TRACE, ("Set_HtMcs_Proc::(FixedTxMode=%d)\n",pAd->StaCfg.DesiredTransmitSetting.field.FixedTxMode));
- }
- if (ADHOC_ON(pAd))
- return TRUE;
- }
-
- SetCommonHT(pAd);
-
- return TRUE;
-}
-
-INT Set_HtGi_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- ULONG HtGi;
-
- HtGi = simple_strtol(arg, 0, 10);
-
- if ( HtGi == GI_400)
- pAd->CommonCfg.RegTransmitSetting.field.ShortGI = GI_400;
- else if ( HtGi == GI_800 )
- pAd->CommonCfg.RegTransmitSetting.field.ShortGI = GI_800;
- else
- return FALSE; //Invalid argument
-
- SetCommonHT(pAd);
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_HtGi_Proc::(ShortGI=%d)\n",pAd->CommonCfg.RegTransmitSetting.field.ShortGI));
-
- return TRUE;
-}
-
-
-INT Set_HtTxBASize_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- UCHAR Size;
-
- Size = simple_strtol(arg, 0, 10);
-
- if (Size <=0 || Size >=64)
- {
- Size = 8;
- }
- pAd->CommonCfg.TxBASize = Size-1;
- DBGPRINT(RT_DEBUG_ERROR, ("Set_HtTxBASize ::(TxBASize= %d)\n", Size));
-
- return TRUE;
-}
-
-INT Set_HtDisallowTKIP_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- ULONG Value;
-
- Value = simple_strtol(arg, 0, 10);
-
- if (Value == 1)
- {
- pAd->CommonCfg.HT_DisallowTKIP = TRUE;
- }
- else
- {
- pAd->CommonCfg.HT_DisallowTKIP = FALSE;
- }
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_HtDisallowTKIP_Proc ::%s\n",
- (pAd->CommonCfg.HT_DisallowTKIP == TRUE) ? "enabled" : "disabled"));
-
- return TRUE;
-}
-
-INT Set_HtOpMode_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
-
- ULONG Value;
-
- Value = simple_strtol(arg, 0, 10);
-
- if (Value == HTMODE_GF)
- pAd->CommonCfg.RegTransmitSetting.field.HTMODE = HTMODE_GF;
- else if ( Value == HTMODE_MM )
- pAd->CommonCfg.RegTransmitSetting.field.HTMODE = HTMODE_MM;
- else
- return FALSE; //Invalid argument
-
- SetCommonHT(pAd);
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_HtOpMode_Proc::(HtOpMode=%d)\n",pAd->CommonCfg.RegTransmitSetting.field.HTMODE));
-
- return TRUE;
-
-}
-
-INT Set_HtStbc_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
-
- ULONG Value;
-
- Value = simple_strtol(arg, 0, 10);
-
- if (Value == STBC_USE)
- pAd->CommonCfg.RegTransmitSetting.field.STBC = STBC_USE;
- else if ( Value == STBC_NONE )
- pAd->CommonCfg.RegTransmitSetting.field.STBC = STBC_NONE;
- else
- return FALSE; //Invalid argument
-
- SetCommonHT(pAd);
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_Stbc_Proc::(HtStbc=%d)\n",pAd->CommonCfg.RegTransmitSetting.field.STBC));
-
- return TRUE;
-}
-
-INT Set_HtHtc_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
-
- ULONG Value;
-
- Value = simple_strtol(arg, 0, 10);
- if (Value == 0)
- pAd->HTCEnable = FALSE;
- else if ( Value ==1 )
- pAd->HTCEnable = TRUE;
- else
- return FALSE; //Invalid argument
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_HtHtc_Proc::(HtHtc=%d)\n",pAd->HTCEnable));
-
- return TRUE;
-}
-
-INT Set_HtExtcha_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
-
- ULONG Value;
-
- Value = simple_strtol(arg, 0, 10);
-
- if (Value == 0)
- pAd->CommonCfg.RegTransmitSetting.field.EXTCHA = EXTCHA_BELOW;
- else if ( Value ==1 )
- pAd->CommonCfg.RegTransmitSetting.field.EXTCHA = EXTCHA_ABOVE;
- else
- return FALSE; //Invalid argument
-
- SetCommonHT(pAd);
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_HtExtcha_Proc::(HtExtcha=%d)\n",pAd->CommonCfg.RegTransmitSetting.field.EXTCHA));
-
- return TRUE;
-}
-
-INT Set_HtMpduDensity_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- ULONG Value;
-
- Value = simple_strtol(arg, 0, 10);
-
- if (Value <=7 && Value >= 0)
- pAd->CommonCfg.BACapability.field.MpduDensity = Value;
- else
- pAd->CommonCfg.BACapability.field.MpduDensity = 4;
-
- SetCommonHT(pAd);
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_HtMpduDensity_Proc::(HtMpduDensity=%d)\n",pAd->CommonCfg.BACapability.field.MpduDensity));
-
- return TRUE;
-}
-
-INT Set_HtBaWinSize_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- ULONG Value;
-
- Value = simple_strtol(arg, 0, 10);
-
-
- if (Value >=1 && Value <= 64)
- {
- pAd->CommonCfg.REGBACapability.field.RxBAWinLimit = Value;
- pAd->CommonCfg.BACapability.field.RxBAWinLimit = Value;
- }
- else
- {
- pAd->CommonCfg.REGBACapability.field.RxBAWinLimit = 64;
- pAd->CommonCfg.BACapability.field.RxBAWinLimit = 64;
- }
-
- SetCommonHT(pAd);
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_HtBaWinSize_Proc::(HtBaWinSize=%d)\n",pAd->CommonCfg.BACapability.field.RxBAWinLimit));
-
- return TRUE;
-}
-
-INT Set_HtRdg_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- ULONG Value;
-
- Value = simple_strtol(arg, 0, 10);
-
- if (Value == 0)
- pAd->CommonCfg.bRdg = FALSE;
- else if ( Value ==1 )
- {
- pAd->HTCEnable = TRUE;
- pAd->CommonCfg.bRdg = TRUE;
- }
- else
- return FALSE; //Invalid argument
-
- SetCommonHT(pAd);
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_HtRdg_Proc::(HtRdg=%d)\n",pAd->CommonCfg.bRdg));
-
- return TRUE;
-}
-
-INT Set_HtLinkAdapt_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- ULONG Value;
-
- Value = simple_strtol(arg, 0, 10);
- if (Value == 0)
- pAd->bLinkAdapt = FALSE;
- else if ( Value ==1 )
- {
- pAd->HTCEnable = TRUE;
- pAd->bLinkAdapt = TRUE;
- }
- else
- return FALSE; //Invalid argument
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_HtLinkAdapt_Proc::(HtLinkAdapt=%d)\n",pAd->bLinkAdapt));
-
- return TRUE;
-}
-
-INT Set_HtAmsdu_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- ULONG Value;
-
- Value = simple_strtol(arg, 0, 10);
- if (Value == 0)
- pAd->CommonCfg.BACapability.field.AmsduEnable = FALSE;
- else if ( Value == 1 )
- pAd->CommonCfg.BACapability.field.AmsduEnable = TRUE;
- else
- return FALSE; //Invalid argument
-
- SetCommonHT(pAd);
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_HtAmsdu_Proc::(HtAmsdu=%d)\n",pAd->CommonCfg.BACapability.field.AmsduEnable));
-
- return TRUE;
-}
-
-INT Set_HtAutoBa_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- ULONG Value;
-
- Value = simple_strtol(arg, 0, 10);
- if (Value == 0)
- {
- pAd->CommonCfg.BACapability.field.AutoBA = FALSE;
- pAd->CommonCfg.BACapability.field.Policy = BA_NOTUSE;
- }
- else if (Value == 1)
- {
- pAd->CommonCfg.BACapability.field.AutoBA = TRUE;
- pAd->CommonCfg.BACapability.field.Policy = IMMED_BA;
- }
- else
- return FALSE; //Invalid argument
-
- pAd->CommonCfg.REGBACapability.field.AutoBA = pAd->CommonCfg.BACapability.field.AutoBA;
- pAd->CommonCfg.REGBACapability.field.Policy = pAd->CommonCfg.BACapability.field.Policy;
+ Routine Description:
+ Remove WPA Key process
- SetCommonHT(pAd);
+ Arguments:
+ pAd Pointer to our adapter
+ pBuf Pointer to the where the key stored
- DBGPRINT(RT_DEBUG_TRACE, ("Set_HtAutoBa_Proc::(HtAutoBa=%d)\n",pAd->CommonCfg.BACapability.field.AutoBA));
+ Return Value:
+ NDIS_SUCCESS Add key successfully
- return TRUE;
+ IRQL = DISPATCH_LEVEL
-}
+ Note:
-INT Set_HtProtect_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
+ ========================================================================
+*/
+VOID RTMPSetDesiredRates(
+ IN PRTMP_ADAPTER pAdapter,
+ IN LONG Rates)
{
- ULONG Value;
-
- Value = simple_strtol(arg, 0, 10);
- if (Value == 0)
- pAd->CommonCfg.bHTProtect = FALSE;
- else if (Value == 1)
- pAd->CommonCfg.bHTProtect = TRUE;
- else
- return FALSE; //Invalid argument
+ NDIS_802_11_RATES aryRates;
- DBGPRINT(RT_DEBUG_TRACE, ("Set_HtProtect_Proc::(HtProtect=%d)\n",pAd->CommonCfg.bHTProtect));
+ memset(&aryRates, 0x00, sizeof(NDIS_802_11_RATES));
+ switch (pAdapter->CommonCfg.PhyMode)
+ {
+ case PHY_11A: // A only
+ switch (Rates)
+ {
+ case 6000000: //6M
+ aryRates[0] = 0x0c; // 6M
+ pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_0;
+ break;
+ case 9000000: //9M
+ aryRates[0] = 0x12; // 9M
+ pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_1;
+ break;
+ case 12000000: //12M
+ aryRates[0] = 0x18; // 12M
+ pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_2;
+ break;
+ case 18000000: //18M
+ aryRates[0] = 0x24; // 18M
+ pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_3;
+ break;
+ case 24000000: //24M
+ aryRates[0] = 0x30; // 24M
+ pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_4;
+ break;
+ case 36000000: //36M
+ aryRates[0] = 0x48; // 36M
+ pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_5;
+ break;
+ case 48000000: //48M
+ aryRates[0] = 0x60; // 48M
+ pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_6;
+ break;
+ case 54000000: //54M
+ aryRates[0] = 0x6c; // 54M
+ pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_7;
+ break;
+ case -1: //Auto
+ default:
+ aryRates[0] = 0x6c; // 54Mbps
+ aryRates[1] = 0x60; // 48Mbps
+ aryRates[2] = 0x48; // 36Mbps
+ aryRates[3] = 0x30; // 24Mbps
+ aryRates[4] = 0x24; // 18M
+ aryRates[5] = 0x18; // 12M
+ aryRates[6] = 0x12; // 9M
+ aryRates[7] = 0x0c; // 6M
+ pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_AUTO;
+ break;
+ }
+ break;
+ case PHY_11BG_MIXED: // B/G Mixed
+ case PHY_11B: // B only
+ case PHY_11ABG_MIXED: // A/B/G Mixed
+ default:
+ switch (Rates)
+ {
+ case 1000000: //1M
+ aryRates[0] = 0x02;
+ pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_0;
+ break;
+ case 2000000: //2M
+ aryRates[0] = 0x04;
+ pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_1;
+ break;
+ case 5000000: //5.5M
+ aryRates[0] = 0x0b; // 5.5M
+ pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_2;
+ break;
+ case 11000000: //11M
+ aryRates[0] = 0x16; // 11M
+ pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_3;
+ break;
+ case 6000000: //6M
+ aryRates[0] = 0x0c; // 6M
+ pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_0;
+ break;
+ case 9000000: //9M
+ aryRates[0] = 0x12; // 9M
+ pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_1;
+ break;
+ case 12000000: //12M
+ aryRates[0] = 0x18; // 12M
+ pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_2;
+ break;
+ case 18000000: //18M
+ aryRates[0] = 0x24; // 18M
+ pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_3;
+ break;
+ case 24000000: //24M
+ aryRates[0] = 0x30; // 24M
+ pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_4;
+ break;
+ case 36000000: //36M
+ aryRates[0] = 0x48; // 36M
+ pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_5;
+ break;
+ case 48000000: //48M
+ aryRates[0] = 0x60; // 48M
+ pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_6;
+ break;
+ case 54000000: //54M
+ aryRates[0] = 0x6c; // 54M
+ pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_7;
+ break;
+ case -1: //Auto
+ default:
+ if (pAdapter->CommonCfg.PhyMode == PHY_11B)
+ { //B Only
+ aryRates[0] = 0x16; // 11Mbps
+ aryRates[1] = 0x0b; // 5.5Mbps
+ aryRates[2] = 0x04; // 2Mbps
+ aryRates[3] = 0x02; // 1Mbps
+ }
+ else
+ { //(B/G) Mixed or (A/B/G) Mixed
+ aryRates[0] = 0x6c; // 54Mbps
+ aryRates[1] = 0x60; // 48Mbps
+ aryRates[2] = 0x48; // 36Mbps
+ aryRates[3] = 0x30; // 24Mbps
+ aryRates[4] = 0x16; // 11Mbps
+ aryRates[5] = 0x0b; // 5.5Mbps
+ aryRates[6] = 0x04; // 2Mbps
+ aryRates[7] = 0x02; // 1Mbps
+ }
+ pAdapter->StaCfg.DesiredTransmitSetting.field.MCS = MCS_AUTO;
+ break;
+ }
+ break;
+ }
- return TRUE;
+ NdisZeroMemory(pAdapter->CommonCfg.DesireRate, MAX_LEN_OF_SUPPORTED_RATES);
+ NdisMoveMemory(pAdapter->CommonCfg.DesireRate, &aryRates, sizeof(NDIS_802_11_RATES));
+ DBGPRINT(RT_DEBUG_TRACE, (" RTMPSetDesiredRates (%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x)\n",
+ pAdapter->CommonCfg.DesireRate[0],pAdapter->CommonCfg.DesireRate[1],
+ pAdapter->CommonCfg.DesireRate[2],pAdapter->CommonCfg.DesireRate[3],
+ pAdapter->CommonCfg.DesireRate[4],pAdapter->CommonCfg.DesireRate[5],
+ pAdapter->CommonCfg.DesireRate[6],pAdapter->CommonCfg.DesireRate[7] ));
+ // Changing DesiredRate may affect the MAX TX rate we used to TX frames out
+ MlmeUpdateTxRates(pAdapter, FALSE, 0);
}
-INT Set_SendPSMPAction_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- UCHAR mac[6], mode;
- PSTRING token;
- STRING sepValue[] = ":", DASH = '-';
- INT i;
- MAC_TABLE_ENTRY *pEntry;
-
- //DBGPRINT(RT_DEBUG_TRACE,("\n%s\n", arg));
/*
- The BARecTearDown inupt string format should be xx:xx:xx:xx:xx:xx-d,
- =>The six 2 digit hex-decimal number previous are the Mac address,
- =>The seventh decimal number is the mode value.
-*/
- if(strlen(arg) < 19) //Mac address acceptable format 01:02:03:04:05:06 length 17 plus the "-" and mode value in decimal format.
- return FALSE;
-
- token = strchr(arg, DASH);
- if ((token != NULL) && (strlen(token)>1))
- {
- mode = simple_strtol((token+1), 0, 10);
- if (mode > MMPS_ENABLE)
- return FALSE;
+ ========================================================================
- *token = '\0';
- for (i = 0, token = rstrtok(arg, &sepValue[0]); token; token = rstrtok(NULL, &sepValue[0]), i++)
- {
- if((strlen(token) != 2) || (!isxdigit(*token)) || (!isxdigit(*(token+1))))
- return FALSE;
- AtoH(token, (&mac[i]), 1);
- }
- if(i != 6)
- return FALSE;
+ Routine Description:
+ Remove All WPA Keys
- DBGPRINT(RT_DEBUG_OFF, ("\n%02x:%02x:%02x:%02x:%02x:%02x-%02x",
- mac[0], mac[1], mac[2], mac[3], mac[4], mac[5], mode));
+ Arguments:
+ pAd Pointer to our adapter
- pEntry = MacTableLookup(pAd, mac);
+ Return Value:
+ None
- if (pEntry) {
- DBGPRINT(RT_DEBUG_OFF, ("\nSendPSMPAction MIPS mode = %d\n", mode));
- SendPSMPAction(pAd, pEntry->Aid, mode);
- }
+ IRQL = DISPATCH_LEVEL
- return TRUE;
- }
+ Note:
- return FALSE;
+ ========================================================================
+*/
+VOID RTMPWPARemoveAllKeys(
+ IN PRTMP_ADAPTER pAd)
+{
+ UCHAR i;
-}
+ DBGPRINT(RT_DEBUG_TRACE,("RTMPWPARemoveAllKeys(AuthMode=%d, WepStatus=%d)\n", pAd->StaCfg.AuthMode, pAd->StaCfg.WepStatus));
+ RTMP_CLEAR_PSFLAG(pAd, fRTMP_PS_CAN_GO_SLEEP);
+ // For WEP/CKIP, there is no need to remove it, since WinXP won't set it again after
+ // Link up. And it will be replaced if user changed it.
+ if (pAd->StaCfg.AuthMode < Ndis802_11AuthModeWPA)
+ return;
-INT Set_HtMIMOPSmode_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- ULONG Value;
+ // For WPA-None, there is no need to remove it, since WinXP won't set it again after
+ // Link up. And it will be replaced if user changed it.
+ if (pAd->StaCfg.AuthMode == Ndis802_11AuthModeWPANone)
+ return;
- Value = simple_strtol(arg, 0, 10);
+ // set BSSID wcid entry of the Pair-wise Key table as no-security mode
+ AsicRemovePairwiseKeyEntry(pAd, BSS0, BSSID_WCID);
- if (Value <=3 && Value >= 0)
- pAd->CommonCfg.BACapability.field.MMPSmode = Value;
- else
- pAd->CommonCfg.BACapability.field.MMPSmode = 3;
+ // set all shared key mode as no-security.
+ for (i = 0; i < SHARE_KEY_NUM; i++)
+ {
+ DBGPRINT(RT_DEBUG_TRACE,("remove %s key #%d\n", CipherName[pAd->SharedKey[BSS0][i].CipherAlg], i));
+ NdisZeroMemory(&pAd->SharedKey[BSS0][i], sizeof(CIPHER_KEY));
- SetCommonHT(pAd);
+ AsicRemoveSharedKeyEntry(pAd, BSS0, i);
+ }
+ RTMP_SET_PSFLAG(pAd, fRTMP_PS_CAN_GO_SLEEP);
+}
- DBGPRINT(RT_DEBUG_TRACE, ("Set_HtMIMOPSmode_Proc::(MIMOPS mode=%d)\n",pAd->CommonCfg.BACapability.field.MMPSmode));
- return TRUE;
-}
+/*
+ ========================================================================
+ Routine Description:
+ As STA's BSSID is a WC too, it uses shared key table.
+ This function write correct unicast TX key to ASIC WCID.
+ And we still make a copy in our MacTab.Content[BSSID_WCID].PairwiseKey.
+ Caller guarantee TKIP/AES always has keyidx = 0. (pairwise key)
+ Caller guarantee WEP calls this function when set Txkey, default key index=0~3.
-INT Set_ForceShortGI_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- ULONG Value;
+ Arguments:
+ pAd Pointer to our adapter
+ pKey Pointer to the where the key stored
- Value = simple_strtol(arg, 0, 10);
- if (Value == 0)
- pAd->WIFItestbed.bShortGI = FALSE;
- else if (Value == 1)
- pAd->WIFItestbed.bShortGI = TRUE;
- else
- return FALSE; //Invalid argument
+ Return Value:
+ NDIS_SUCCESS Add key successfully
- SetCommonHT(pAd);
+ IRQL = DISPATCH_LEVEL
- DBGPRINT(RT_DEBUG_TRACE, ("Set_ForceShortGI_Proc::(ForceShortGI=%d)\n", pAd->WIFItestbed.bShortGI));
+ Note:
- return TRUE;
-}
+ ========================================================================
+*/
+/*
+ ========================================================================
+ Routine Description:
+ Change NIC PHY mode. Re-association may be necessary. possible settings
+ include - PHY_11B, PHY_11BG_MIXED, PHY_11A, and PHY_11ABG_MIXED
+ Arguments:
+ pAd - Pointer to our adapter
+ phymode -
+ IRQL = PASSIVE_LEVEL
+ IRQL = DISPATCH_LEVEL
-INT Set_ForceGF_Proc(
+ ========================================================================
+*/
+VOID RTMPSetPhyMode(
IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
+ IN ULONG phymode)
{
- ULONG Value;
+ INT i;
+ // the selected phymode must be supported by the RF IC encoded in E2PROM
- Value = simple_strtol(arg, 0, 10);
- if (Value == 0)
- pAd->WIFItestbed.bGreenField = FALSE;
- else if (Value == 1)
- pAd->WIFItestbed.bGreenField = TRUE;
- else
- return FALSE; //Invalid argument
+ // if no change, do nothing
+ /* bug fix
+ if (pAd->CommonCfg.PhyMode == phymode)
+ return;
+ */
+ pAd->CommonCfg.PhyMode = (UCHAR)phymode;
- SetCommonHT(pAd);
+ DBGPRINT(RT_DEBUG_TRACE,("RTMPSetPhyMode : PhyMode=%d, channel=%d \n", pAd->CommonCfg.PhyMode, pAd->CommonCfg.Channel));
- DBGPRINT(RT_DEBUG_TRACE, ("Set_ForceGF_Proc::(ForceGF=%d)\n", pAd->WIFItestbed.bGreenField));
+ BuildChannelList(pAd);
- return TRUE;
-}
+ // sanity check user setting
+ for (i = 0; i < pAd->ChannelListNum; i++)
+ {
+ if (pAd->CommonCfg.Channel == pAd->ChannelList[i].Channel)
+ break;
+ }
-INT Set_HtMimoPs_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- ULONG Value;
+ if (i == pAd->ChannelListNum)
+ {
+ pAd->CommonCfg.Channel = FirstChannel(pAd);
+ DBGPRINT(RT_DEBUG_ERROR, ("RTMPSetPhyMode: channel is out of range, use first channel=%d \n", pAd->CommonCfg.Channel));
+ }
- Value = simple_strtol(arg, 0, 10);
- if (Value == 0)
- pAd->CommonCfg.bMIMOPSEnable = FALSE;
- else if (Value == 1)
- pAd->CommonCfg.bMIMOPSEnable = TRUE;
- else
- return FALSE; //Invalid argument
+ NdisZeroMemory(pAd->CommonCfg.SupRate, MAX_LEN_OF_SUPPORTED_RATES);
+ NdisZeroMemory(pAd->CommonCfg.ExtRate, MAX_LEN_OF_SUPPORTED_RATES);
+ NdisZeroMemory(pAd->CommonCfg.DesireRate, MAX_LEN_OF_SUPPORTED_RATES);
+ switch (phymode) {
+ case PHY_11B:
+ pAd->CommonCfg.SupRate[0] = 0x82; // 1 mbps, in units of 0.5 Mbps, basic rate
+ pAd->CommonCfg.SupRate[1] = 0x84; // 2 mbps, in units of 0.5 Mbps, basic rate
+ pAd->CommonCfg.SupRate[2] = 0x8B; // 5.5 mbps, in units of 0.5 Mbps, basic rate
+ pAd->CommonCfg.SupRate[3] = 0x96; // 11 mbps, in units of 0.5 Mbps, basic rate
+ pAd->CommonCfg.SupRateLen = 4;
+ pAd->CommonCfg.ExtRateLen = 0;
+ pAd->CommonCfg.DesireRate[0] = 2; // 1 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.DesireRate[1] = 4; // 2 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.DesireRate[2] = 11; // 5.5 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.DesireRate[3] = 22; // 11 mbps, in units of 0.5 Mbps
+ //pAd->CommonCfg.HTPhyMode.field.MODE = MODE_CCK; // This MODE is only FYI. not use
+ break;
- DBGPRINT(RT_DEBUG_TRACE, ("Set_HtMimoPs_Proc::(HtMimoPs=%d)\n",pAd->CommonCfg.bMIMOPSEnable));
+ case PHY_11G:
+ case PHY_11BG_MIXED:
+ case PHY_11ABG_MIXED:
+ case PHY_11N_2_4G:
+ case PHY_11ABGN_MIXED:
+ case PHY_11BGN_MIXED:
+ case PHY_11GN_MIXED:
+ pAd->CommonCfg.SupRate[0] = 0x82; // 1 mbps, in units of 0.5 Mbps, basic rate
+ pAd->CommonCfg.SupRate[1] = 0x84; // 2 mbps, in units of 0.5 Mbps, basic rate
+ pAd->CommonCfg.SupRate[2] = 0x8B; // 5.5 mbps, in units of 0.5 Mbps, basic rate
+ pAd->CommonCfg.SupRate[3] = 0x96; // 11 mbps, in units of 0.5 Mbps, basic rate
+ pAd->CommonCfg.SupRate[4] = 0x12; // 9 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.SupRate[5] = 0x24; // 18 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.SupRate[6] = 0x48; // 36 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.SupRate[7] = 0x6c; // 54 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.SupRateLen = 8;
+ pAd->CommonCfg.ExtRate[0] = 0x0C; // 6 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.ExtRate[1] = 0x18; // 12 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.ExtRate[2] = 0x30; // 24 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.ExtRate[3] = 0x60; // 48 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.ExtRateLen = 4;
+ pAd->CommonCfg.DesireRate[0] = 2; // 1 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.DesireRate[1] = 4; // 2 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.DesireRate[2] = 11; // 5.5 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.DesireRate[3] = 22; // 11 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.DesireRate[4] = 12; // 6 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.DesireRate[5] = 18; // 9 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.DesireRate[6] = 24; // 12 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.DesireRate[7] = 36; // 18 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.DesireRate[8] = 48; // 24 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.DesireRate[9] = 72; // 36 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.DesireRate[10] = 96; // 48 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.DesireRate[11] = 108; // 54 mbps, in units of 0.5 Mbps
+ break;
- return TRUE;
-}
+ case PHY_11A:
+ case PHY_11AN_MIXED:
+ case PHY_11AGN_MIXED:
+ case PHY_11N_5G:
+ pAd->CommonCfg.SupRate[0] = 0x8C; // 6 mbps, in units of 0.5 Mbps, basic rate
+ pAd->CommonCfg.SupRate[1] = 0x12; // 9 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.SupRate[2] = 0x98; // 12 mbps, in units of 0.5 Mbps, basic rate
+ pAd->CommonCfg.SupRate[3] = 0x24; // 18 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.SupRate[4] = 0xb0; // 24 mbps, in units of 0.5 Mbps, basic rate
+ pAd->CommonCfg.SupRate[5] = 0x48; // 36 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.SupRate[6] = 0x60; // 48 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.SupRate[7] = 0x6c; // 54 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.SupRateLen = 8;
+ pAd->CommonCfg.ExtRateLen = 0;
+ pAd->CommonCfg.DesireRate[0] = 12; // 6 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.DesireRate[1] = 18; // 9 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.DesireRate[2] = 24; // 12 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.DesireRate[3] = 36; // 18 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.DesireRate[4] = 48; // 24 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.DesireRate[5] = 72; // 36 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.DesireRate[6] = 96; // 48 mbps, in units of 0.5 Mbps
+ pAd->CommonCfg.DesireRate[7] = 108; // 54 mbps, in units of 0.5 Mbps
+ //pAd->CommonCfg.HTPhyMode.field.MODE = MODE_OFDM; // This MODE is only FYI. not use
+ break;
-INT SetCommonHT(
- IN PRTMP_ADAPTER pAd)
-{
- OID_SET_HT_PHYMODE SetHT;
+ default:
+ break;
+ }
- if (pAd->CommonCfg.PhyMode < PHY_11ABGN_MIXED)
- return FALSE;
- SetHT.PhyMode = pAd->CommonCfg.PhyMode;
- SetHT.TransmitNo = ((UCHAR)pAd->Antenna.field.TxPath);
- SetHT.HtMode = (UCHAR)pAd->CommonCfg.RegTransmitSetting.field.HTMODE;
- SetHT.ExtOffset = (UCHAR)pAd->CommonCfg.RegTransmitSetting.field.EXTCHA;
- SetHT.MCS = MCS_AUTO;
- SetHT.BW = (UCHAR)pAd->CommonCfg.RegTransmitSetting.field.BW;
- SetHT.STBC = (UCHAR)pAd->CommonCfg.RegTransmitSetting.field.STBC;
- SetHT.SHORTGI = (UCHAR)pAd->CommonCfg.RegTransmitSetting.field.ShortGI;
+ pAd->CommonCfg.BandState = UNKNOWN_BAND;
+}
- RTMPSetHT(pAd, &SetHT);
+/*
+ ========================================================================
+ Routine Description:
+ Caller ensures we has 802.11n support.
+ Calls at setting HT from AP/STASetinformation
- return TRUE;
-}
+ Arguments:
+ pAd - Pointer to our adapter
+ phymode -
-INT Set_FixedTxMode_Proc(
+ ========================================================================
+*/
+VOID RTMPSetHT(
IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
+ IN OID_SET_HT_PHYMODE *pHTPhyMode)
{
- UCHAR fix_tx_mode = FIXED_TXMODE_HT;
+ //ULONG *pmcs;
+ UINT32 Value = 0;
+ UCHAR BBPValue = 0;
+ UCHAR BBP3Value = 0;
+ UCHAR RxStream = pAd->CommonCfg.RxStream;
- if (strcmp(arg, "OFDM") == 0 || strcmp(arg, "ofdm") == 0)
+ DBGPRINT(RT_DEBUG_TRACE, ("RTMPSetHT : HT_mode(%d), ExtOffset(%d), MCS(%d), BW(%d), STBC(%d), SHORTGI(%d)\n",
+ pHTPhyMode->HtMode, pHTPhyMode->ExtOffset,
+ pHTPhyMode->MCS, pHTPhyMode->BW,
+ pHTPhyMode->STBC, pHTPhyMode->SHORTGI));
+
+ // Don't zero supportedHyPhy structure.
+ RTMPZeroMemory(&pAd->CommonCfg.HtCapability, sizeof(pAd->CommonCfg.HtCapability));
+ RTMPZeroMemory(&pAd->CommonCfg.AddHTInfo, sizeof(pAd->CommonCfg.AddHTInfo));
+ RTMPZeroMemory(&pAd->CommonCfg.NewExtChanOffset, sizeof(pAd->CommonCfg.NewExtChanOffset));
+ RTMPZeroMemory(&pAd->CommonCfg.DesiredHtPhy, sizeof(pAd->CommonCfg.DesiredHtPhy));
+
+ if (pAd->CommonCfg.bRdg)
{
- fix_tx_mode = FIXED_TXMODE_OFDM;
+ pAd->CommonCfg.HtCapability.ExtHtCapInfo.PlusHTC = 1;
+ pAd->CommonCfg.HtCapability.ExtHtCapInfo.RDGSupport = 1;
}
- else if (strcmp(arg, "CCK") == 0 || strcmp(arg, "cck") == 0)
+ else
{
- fix_tx_mode = FIXED_TXMODE_CCK;
+ pAd->CommonCfg.HtCapability.ExtHtCapInfo.PlusHTC = 0;
+ pAd->CommonCfg.HtCapability.ExtHtCapInfo.RDGSupport = 0;
}
- pAd->StaCfg.DesiredTransmitSetting.field.FixedTxMode = fix_tx_mode;
+ pAd->CommonCfg.HtCapability.HtCapParm.MaxRAmpduFactor = 3;
+ pAd->CommonCfg.DesiredHtPhy.MaxRAmpduFactor = 3;
- DBGPRINT(RT_DEBUG_TRACE, ("Set_FixedTxMode_Proc::(FixedTxMode=%d)\n", fix_tx_mode));
+ DBGPRINT(RT_DEBUG_TRACE, ("RTMPSetHT : RxBAWinLimit = %d\n", pAd->CommonCfg.BACapability.field.RxBAWinLimit));
- return TRUE;
-}
+ // Mimo power save, A-MSDU size,
+ pAd->CommonCfg.DesiredHtPhy.AmsduEnable = (USHORT)pAd->CommonCfg.BACapability.field.AmsduEnable;
+ pAd->CommonCfg.DesiredHtPhy.AmsduSize = (UCHAR)pAd->CommonCfg.BACapability.field.AmsduSize;
+ pAd->CommonCfg.DesiredHtPhy.MimoPs = (UCHAR)pAd->CommonCfg.BACapability.field.MMPSmode;
+ pAd->CommonCfg.DesiredHtPhy.MpduDensity = (UCHAR)pAd->CommonCfg.BACapability.field.MpduDensity;
-#if defined(RT305x)||defined(RT3070)
-INT Set_HiPower_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg)
-{
- pAdapter->CommonCfg.HighPowerPatchDisabled = !(simple_strtol(arg, 0, 10));
+ pAd->CommonCfg.HtCapability.HtCapInfo.AMsduSize = (USHORT)pAd->CommonCfg.BACapability.field.AmsduSize;
+ pAd->CommonCfg.HtCapability.HtCapInfo.MimoPs = (USHORT)pAd->CommonCfg.BACapability.field.MMPSmode;
+ pAd->CommonCfg.HtCapability.HtCapParm.MpduDensity = (UCHAR)pAd->CommonCfg.BACapability.field.MpduDensity;
- if (pAdapter->CommonCfg.HighPowerPatchDisabled != 0)
+ DBGPRINT(RT_DEBUG_TRACE, ("RTMPSetHT : AMsduSize = %d, MimoPs = %d, MpduDensity = %d, MaxRAmpduFactor = %d\n",
+ pAd->CommonCfg.DesiredHtPhy.AmsduSize,
+ pAd->CommonCfg.DesiredHtPhy.MimoPs,
+ pAd->CommonCfg.DesiredHtPhy.MpduDensity,
+ pAd->CommonCfg.DesiredHtPhy.MaxRAmpduFactor));
+
+ if(pHTPhyMode->HtMode == HTMODE_GF)
{
- RTMP_BBP_IO_WRITE8_BY_REG_ID(pAdapter, BBP_R82, 0x62);
- RTMP_BBP_IO_WRITE8_BY_REG_ID(pAdapter, BBP_R67, 0x20);
-#ifdef RT3070
- if ((IS_RT3070(pAdapter) && ((pAdapter->MACVersion & 0xffff) < 0x0201)))
-#endif // RT3070 //
- RT30xxWriteRFRegister(pAdapter, RF_R27, 0x23);
+ pAd->CommonCfg.HtCapability.HtCapInfo.GF = 1;
+ pAd->CommonCfg.DesiredHtPhy.GF = 1;
}
- return TRUE;
-}
-#endif
-
-INT Set_LongRetryLimit_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg)
-{
- TX_RTY_CFG_STRUC tx_rty_cfg;
- UCHAR LongRetryLimit = (UCHAR)simple_strtol(arg, 0, 10);
-
- RTMP_IO_READ32(pAdapter, TX_RTY_CFG, &tx_rty_cfg.word);
- tx_rty_cfg.field.LongRtyLimit = LongRetryLimit;
- RTMP_IO_WRITE32(pAdapter, TX_RTY_CFG, tx_rty_cfg.word);
- DBGPRINT(RT_DEBUG_TRACE, ("IF Set_LongRetryLimit_Proc::(tx_rty_cfg=0x%x)\n", tx_rty_cfg.word));
- return TRUE;
-}
+ else
+ pAd->CommonCfg.DesiredHtPhy.GF = 0;
-INT Set_ShortRetryLimit_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg)
-{
- TX_RTY_CFG_STRUC tx_rty_cfg;
- UCHAR ShortRetryLimit = (UCHAR)simple_strtol(arg, 0, 10);
+ // Decide Rx MCSSet
+ switch (RxStream)
+ {
+ case 1:
+ pAd->CommonCfg.HtCapability.MCSSet[0] = 0xff;
+ pAd->CommonCfg.HtCapability.MCSSet[1] = 0x00;
+ break;
- RTMP_IO_READ32(pAdapter, TX_RTY_CFG, &tx_rty_cfg.word);
- tx_rty_cfg.field.ShortRtyLimit = ShortRetryLimit;
- RTMP_IO_WRITE32(pAdapter, TX_RTY_CFG, tx_rty_cfg.word);
- DBGPRINT(RT_DEBUG_TRACE, ("IF Set_ShortRetryLimit_Proc::(tx_rty_cfg=0x%x)\n", tx_rty_cfg.word));
- return TRUE;
-}
+ case 2:
+ pAd->CommonCfg.HtCapability.MCSSet[0] = 0xff;
+ pAd->CommonCfg.HtCapability.MCSSet[1] = 0xff;
+ break;
+ case 3: // 3*3
+ pAd->CommonCfg.HtCapability.MCSSet[0] = 0xff;
+ pAd->CommonCfg.HtCapability.MCSSet[1] = 0xff;
+ pAd->CommonCfg.HtCapability.MCSSet[2] = 0xff;
+ break;
+ }
-/////////////////////////////////////////////////////////////////////////
-PSTRING RTMPGetRalinkAuthModeStr(
- IN NDIS_802_11_AUTHENTICATION_MODE authMode)
-{
- switch(authMode)
+ if (pAd->CommonCfg.bForty_Mhz_Intolerant && (pAd->CommonCfg.Channel <= 14) && (pHTPhyMode->BW == BW_40) )
{
- case Ndis802_11AuthModeOpen:
- return "OPEN";
- case Ndis802_11AuthModeWPAPSK:
- return "WPAPSK";
- case Ndis802_11AuthModeShared:
- return "SHARED";
- case Ndis802_11AuthModeWPA:
- return "WPA";
- case Ndis802_11AuthModeWPA2:
- return "WPA2";
- case Ndis802_11AuthModeWPA2PSK:
- return "WPA2PSK";
- case Ndis802_11AuthModeWPA1PSKWPA2PSK:
- return "WPAPSKWPA2PSK";
- case Ndis802_11AuthModeWPA1WPA2:
- return "WPA1WPA2";
- case Ndis802_11AuthModeWPANone:
- return "WPANONE";
- default:
- return "UNKNOW";
+ pHTPhyMode->BW = BW_20;
+ pAd->CommonCfg.HtCapability.HtCapInfo.Forty_Mhz_Intolerant = 1;
}
-}
-PSTRING RTMPGetRalinkEncryModeStr(
- IN USHORT encryMode)
-{
- switch(encryMode)
+ if(pHTPhyMode->BW == BW_40)
{
- case Ndis802_11WEPDisabled:
- return "NONE";
- case Ndis802_11WEPEnabled:
- return "WEP";
- case Ndis802_11Encryption2Enabled:
- return "TKIP";
- case Ndis802_11Encryption3Enabled:
- return "AES";
- case Ndis802_11Encryption4Enabled:
- return "TKIPAES";
- default:
- return "UNKNOW";
- }
-}
+ pAd->CommonCfg.HtCapability.MCSSet[4] = 0x1; // MCS 32
+ pAd->CommonCfg.HtCapability.HtCapInfo.ChannelWidth = 1;
+ if (pAd->CommonCfg.Channel <= 14)
+ pAd->CommonCfg.HtCapability.HtCapInfo.CCKmodein40 = 1;
+
+ pAd->CommonCfg.DesiredHtPhy.ChannelWidth = 1;
+ pAd->CommonCfg.AddHTInfo.AddHtInfo.RecomWidth = 1;
+ pAd->CommonCfg.AddHTInfo.AddHtInfo.ExtChanOffset = (pHTPhyMode->ExtOffset == EXTCHA_BELOW)? (EXTCHA_BELOW): EXTCHA_ABOVE;
+ // Set Regsiter for extension channel position.
+ RTMP_IO_READ32(pAd, TX_BAND_CFG, &Value);
+ RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R3, &BBP3Value);
+ if ((pHTPhyMode->ExtOffset == EXTCHA_BELOW))
+ {
+ Value |= 0x1;
+ BBP3Value |= (0x20);
+ RTMP_IO_WRITE32(pAd, TX_BAND_CFG, Value);
+ }
+ else if ((pHTPhyMode->ExtOffset == EXTCHA_ABOVE))
+ {
+ Value &= 0xfe;
+ BBP3Value &= (~0x20);
+ RTMP_IO_WRITE32(pAd, TX_BAND_CFG, Value);
+ }
-INT RTMPShowCfgValue(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING pName,
- IN PSTRING pBuf)
-{
- INT Status = 0;
+ // Turn on BBP 40MHz mode now only as AP .
+ // Sta can turn on BBP 40MHz after connection with 40MHz AP. Sta only broadcast 40MHz capability before connection.
+ if ((pAd->OpMode == OPMODE_AP) || INFRA_ON(pAd) || ADHOC_ON(pAd)
+ )
+ {
+ RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R4, &BBPValue);
+ BBPValue &= (~0x18);
+ BBPValue |= 0x10;
+ RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R4, BBPValue);
- for (PRTMP_PRIVATE_STA_SHOW_CFG_VALUE_PROC = RTMP_PRIVATE_STA_SHOW_CFG_VALUE_PROC; PRTMP_PRIVATE_STA_SHOW_CFG_VALUE_PROC->name; PRTMP_PRIVATE_STA_SHOW_CFG_VALUE_PROC++)
+ RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R3, BBP3Value);
+ pAd->CommonCfg.BBPCurrentBW = BW_40;
+ }
+ }
+ else
{
- if (!strcmp(pName, PRTMP_PRIVATE_STA_SHOW_CFG_VALUE_PROC->name))
+ pAd->CommonCfg.HtCapability.HtCapInfo.ChannelWidth = 0;
+ pAd->CommonCfg.DesiredHtPhy.ChannelWidth = 0;
+ pAd->CommonCfg.AddHTInfo.AddHtInfo.RecomWidth = 0;
+ pAd->CommonCfg.AddHTInfo.AddHtInfo.ExtChanOffset = EXTCHA_NONE;
+ pAd->CommonCfg.CentralChannel = pAd->CommonCfg.Channel;
+ // Turn on BBP 20MHz mode by request here.
{
- if(PRTMP_PRIVATE_STA_SHOW_CFG_VALUE_PROC->show_proc(pAd, pBuf))
- Status = -EINVAL;
- break; //Exit for loop.
+ RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R4, &BBPValue);
+ BBPValue &= (~0x18);
+ RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R4, BBPValue);
+ pAd->CommonCfg.BBPCurrentBW = BW_20;
}
}
- if(PRTMP_PRIVATE_STA_SHOW_CFG_VALUE_PROC->name == NULL)
+ if(pHTPhyMode->STBC == STBC_USE)
+ {
+ pAd->CommonCfg.HtCapability.HtCapInfo.TxSTBC = 1;
+ pAd->CommonCfg.DesiredHtPhy.TxSTBC = 1;
+ pAd->CommonCfg.HtCapability.HtCapInfo.RxSTBC = 1;
+ pAd->CommonCfg.DesiredHtPhy.RxSTBC = 1;
+ }
+ else
{
- sprintf(pBuf, "\n");
- for (PRTMP_PRIVATE_STA_SHOW_CFG_VALUE_PROC = RTMP_PRIVATE_STA_SHOW_CFG_VALUE_PROC; PRTMP_PRIVATE_STA_SHOW_CFG_VALUE_PROC->name; PRTMP_PRIVATE_STA_SHOW_CFG_VALUE_PROC++)
- sprintf(pBuf + strlen(pBuf), "%s\n", PRTMP_PRIVATE_STA_SHOW_CFG_VALUE_PROC->name);
+ pAd->CommonCfg.DesiredHtPhy.TxSTBC = 0;
+ pAd->CommonCfg.DesiredHtPhy.RxSTBC = 0;
}
- return Status;
-}
+ if(pHTPhyMode->SHORTGI == GI_400)
+ {
+ pAd->CommonCfg.HtCapability.HtCapInfo.ShortGIfor20 = 1;
+ pAd->CommonCfg.HtCapability.HtCapInfo.ShortGIfor40 = 1;
+ pAd->CommonCfg.DesiredHtPhy.ShortGIfor20 = 1;
+ pAd->CommonCfg.DesiredHtPhy.ShortGIfor40 = 1;
+ }
+ else
+ {
+ pAd->CommonCfg.HtCapability.HtCapInfo.ShortGIfor20 = 0;
+ pAd->CommonCfg.HtCapability.HtCapInfo.ShortGIfor40 = 0;
+ pAd->CommonCfg.DesiredHtPhy.ShortGIfor20 = 0;
+ pAd->CommonCfg.DesiredHtPhy.ShortGIfor40 = 0;
+ }
-INT Show_SSID_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- sprintf(pBuf, "\t%s", pAd->CommonCfg.Ssid);
- return 0;
-}
+ // We support link adaptation for unsolicit MCS feedback, set to 2.
+ pAd->CommonCfg.HtCapability.ExtHtCapInfo.MCSFeedback = MCSFBK_NONE; //MCSFBK_UNSOLICIT;
+ pAd->CommonCfg.AddHTInfo.ControlChan = pAd->CommonCfg.Channel;
+ // 1, the extension channel above the control channel.
-INT Show_WirelessMode_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- switch(pAd->CommonCfg.PhyMode)
+ // EDCA parameters used for AP's own transmission
+ if (pAd->CommonCfg.APEdcaParm.bValid == FALSE)
{
- case PHY_11BG_MIXED:
- sprintf(pBuf, "\t11B/G");
- break;
- case PHY_11B:
- sprintf(pBuf, "\t11B");
- break;
- case PHY_11A:
- sprintf(pBuf, "\t11A");
- break;
- case PHY_11ABG_MIXED:
- sprintf(pBuf, "\t11A/B/G");
- break;
- case PHY_11G:
- sprintf(pBuf, "\t11G");
- break;
- case PHY_11ABGN_MIXED:
- sprintf(pBuf, "\t11A/B/G/N");
- break;
- case PHY_11N_2_4G:
- sprintf(pBuf, "\t11N only with 2.4G");
- break;
- case PHY_11GN_MIXED:
- sprintf(pBuf, "\t11G/N");
- break;
- case PHY_11AN_MIXED:
- sprintf(pBuf, "\t11A/N");
- break;
- case PHY_11BGN_MIXED:
- sprintf(pBuf, "\t11B/G/N");
- break;
- case PHY_11AGN_MIXED:
- sprintf(pBuf, "\t11A/G/N");
- break;
- case PHY_11N_5G:
- sprintf(pBuf, "\t11N only with 5G");
- break;
- default:
- sprintf(pBuf, "\tUnknow Value(%d)", pAd->CommonCfg.PhyMode);
- break;
- }
- return 0;
-}
+ pAd->CommonCfg.APEdcaParm.bValid = TRUE;
+ pAd->CommonCfg.APEdcaParm.Aifsn[0] = 3;
+ pAd->CommonCfg.APEdcaParm.Aifsn[1] = 7;
+ pAd->CommonCfg.APEdcaParm.Aifsn[2] = 1;
+ pAd->CommonCfg.APEdcaParm.Aifsn[3] = 1;
+ pAd->CommonCfg.APEdcaParm.Cwmin[0] = 4;
+ pAd->CommonCfg.APEdcaParm.Cwmin[1] = 4;
+ pAd->CommonCfg.APEdcaParm.Cwmin[2] = 3;
+ pAd->CommonCfg.APEdcaParm.Cwmin[3] = 2;
-INT Show_TxBurst_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- sprintf(pBuf, "\t%s", pAd->CommonCfg.bEnableTxBurst ? "TRUE":"FALSE");
- return 0;
-}
+ pAd->CommonCfg.APEdcaParm.Cwmax[0] = 6;
+ pAd->CommonCfg.APEdcaParm.Cwmax[1] = 10;
+ pAd->CommonCfg.APEdcaParm.Cwmax[2] = 4;
+ pAd->CommonCfg.APEdcaParm.Cwmax[3] = 3;
-INT Show_TxPreamble_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- switch(pAd->CommonCfg.TxPreamble)
- {
- case Rt802_11PreambleShort:
- sprintf(pBuf, "\tShort");
- break;
- case Rt802_11PreambleLong:
- sprintf(pBuf, "\tLong");
- break;
- case Rt802_11PreambleAuto:
- sprintf(pBuf, "\tAuto");
- break;
- default:
- sprintf(pBuf, "\tUnknow Value(%lu)", pAd->CommonCfg.TxPreamble);
- break;
+ pAd->CommonCfg.APEdcaParm.Txop[0] = 0;
+ pAd->CommonCfg.APEdcaParm.Txop[1] = 0;
+ pAd->CommonCfg.APEdcaParm.Txop[2] = 94;
+ pAd->CommonCfg.APEdcaParm.Txop[3] = 47;
}
+ AsicSetEdcaParm(pAd, &pAd->CommonCfg.APEdcaParm);
- return 0;
-}
-
-INT Show_TxPower_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- sprintf(pBuf, "\t%lu", pAd->CommonCfg.TxPowerPercentage);
- return 0;
-}
+ {
+ RTMPSetIndividualHT(pAd, 0);
+ }
-INT Show_Channel_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- sprintf(pBuf, "\t%d", pAd->CommonCfg.Channel);
- return 0;
}
-INT Show_BGProtection_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- switch(pAd->CommonCfg.UseBGProtection)
- {
- case 1: //Always On
- sprintf(pBuf, "\tON");
- break;
- case 2: //Always OFF
- sprintf(pBuf, "\tOFF");
- break;
- case 0: //AUTO
- sprintf(pBuf, "\tAuto");
- break;
- default:
- sprintf(pBuf, "\tUnknow Value(%lu)", pAd->CommonCfg.UseBGProtection);
- break;
- }
- return 0;
-}
+/*
+ ========================================================================
+ Routine Description:
+ Caller ensures we has 802.11n support.
+ Calls at setting HT from AP/STASetinformation
-INT Show_RTSThreshold_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- sprintf(pBuf, "\t%u", pAd->CommonCfg.RtsThreshold);
- return 0;
-}
+ Arguments:
+ pAd - Pointer to our adapter
+ phymode -
-INT Show_FragThreshold_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
+ ========================================================================
+*/
+VOID RTMPSetIndividualHT(
+ IN PRTMP_ADAPTER pAd,
+ IN UCHAR apidx)
{
- sprintf(pBuf, "\t%u", pAd->CommonCfg.FragmentThreshold);
- return 0;
-}
+ PRT_HT_PHY_INFO pDesired_ht_phy = NULL;
+ UCHAR TxStream = pAd->CommonCfg.TxStream;
+ UCHAR DesiredMcs = MCS_AUTO;
-INT Show_HtBw_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- if (pAd->CommonCfg.RegTransmitSetting.field.BW == BW_40)
+ do
{
- sprintf(pBuf, "\t40 MHz");
- }
- else
+ {
+ pDesired_ht_phy = &pAd->StaCfg.DesiredHtPhyInfo;
+ DesiredMcs = pAd->StaCfg.DesiredTransmitSetting.field.MCS;
+ //pAd->StaCfg.bAutoTxRateSwitch = (DesiredMcs == MCS_AUTO) ? TRUE : FALSE;
+ break;
+ }
+ } while (FALSE);
+
+ if (pDesired_ht_phy == NULL)
{
- sprintf(pBuf, "\t20 MHz");
+ DBGPRINT(RT_DEBUG_ERROR, ("RTMPSetIndividualHT: invalid apidx(%d)\n", apidx));
+ return;
}
- return 0;
-}
-
-INT Show_HtMcs_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- sprintf(pBuf, "\t%u", pAd->StaCfg.DesiredTransmitSetting.field.MCS);
- return 0;
-}
+ RTMPZeroMemory(pDesired_ht_phy, sizeof(RT_HT_PHY_INFO));
-INT Show_HtGi_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- switch(pAd->CommonCfg.RegTransmitSetting.field.ShortGI)
+ DBGPRINT(RT_DEBUG_TRACE, ("RTMPSetIndividualHT : Desired MCS = %d\n", DesiredMcs));
+ // Check the validity of MCS
+ if ((TxStream == 1) && ((DesiredMcs >= MCS_8) && (DesiredMcs <= MCS_15)))
{
- case GI_400:
- sprintf(pBuf, "\tGI_400");
- break;
- case GI_800:
- sprintf(pBuf, "\tGI_800");
- break;
- default:
- sprintf(pBuf, "\tUnknow Value(%u)", pAd->CommonCfg.RegTransmitSetting.field.ShortGI);
- break;
+ DBGPRINT(RT_DEBUG_WARN, ("RTMPSetIndividualHT: MCS(%d) is invalid in 1S, reset it as MCS_7\n", DesiredMcs));
+ DesiredMcs = MCS_7;
}
- return 0;
-}
-INT Show_HtOpMode_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- switch(pAd->CommonCfg.RegTransmitSetting.field.HTMODE)
+ if ((pAd->CommonCfg.DesiredHtPhy.ChannelWidth == BW_20) && (DesiredMcs == MCS_32))
{
- case HTMODE_GF:
- sprintf(pBuf, "\tGF");
- break;
- case HTMODE_MM:
- sprintf(pBuf, "\tMM");
- break;
- default:
- sprintf(pBuf, "\tUnknow Value(%u)", pAd->CommonCfg.RegTransmitSetting.field.HTMODE);
- break;
+ DBGPRINT(RT_DEBUG_WARN, ("RTMPSetIndividualHT: MCS_32 is only supported in 40-MHz, reset it as MCS_0\n"));
+ DesiredMcs = MCS_0;
}
- return 0;
-}
-INT Show_HtExtcha_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- switch(pAd->CommonCfg.RegTransmitSetting.field.EXTCHA)
+ pDesired_ht_phy->bHtEnable = TRUE;
+
+ // Decide desired Tx MCS
+ switch (TxStream)
{
- case EXTCHA_BELOW:
- sprintf(pBuf, "\tBelow");
+ case 1:
+ if (DesiredMcs == MCS_AUTO)
+ {
+ pDesired_ht_phy->MCSSet[0]= 0xff;
+ pDesired_ht_phy->MCSSet[1]= 0x00;
+ }
+ else if (DesiredMcs <= MCS_7)
+ {
+ pDesired_ht_phy->MCSSet[0]= 1<<DesiredMcs;
+ pDesired_ht_phy->MCSSet[1]= 0x00;
+ }
break;
- case EXTCHA_ABOVE:
- sprintf(pBuf, "\tAbove");
+
+ case 2:
+ if (DesiredMcs == MCS_AUTO)
+ {
+ pDesired_ht_phy->MCSSet[0]= 0xff;
+ pDesired_ht_phy->MCSSet[1]= 0xff;
+ }
+ else if (DesiredMcs <= MCS_15)
+ {
+ ULONG mode;
+
+ mode = DesiredMcs / 8;
+ if (mode < 2)
+ pDesired_ht_phy->MCSSet[mode] = (1 << (DesiredMcs - mode * 8));
+ }
break;
- default:
- sprintf(pBuf, "\tUnknow Value(%u)", pAd->CommonCfg.RegTransmitSetting.field.EXTCHA);
+
+ case 3: // 3*3
+ if (DesiredMcs == MCS_AUTO)
+ {
+ /* MCS0 ~ MCS23, 3 bytes */
+ pDesired_ht_phy->MCSSet[0]= 0xff;
+ pDesired_ht_phy->MCSSet[1]= 0xff;
+ pDesired_ht_phy->MCSSet[2]= 0xff;
+ }
+ else if (DesiredMcs <= MCS_23)
+ {
+ ULONG mode;
+
+ mode = DesiredMcs / 8;
+ if (mode < 3)
+ pDesired_ht_phy->MCSSet[mode] = (1 << (DesiredMcs - mode * 8));
+ }
break;
}
- return 0;
-}
+ if(pAd->CommonCfg.DesiredHtPhy.ChannelWidth == BW_40)
+ {
+ if (DesiredMcs == MCS_AUTO || DesiredMcs == MCS_32)
+ pDesired_ht_phy->MCSSet[4] = 0x1;
+ }
-INT Show_HtMpduDensity_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- sprintf(pBuf, "\t%u", pAd->CommonCfg.BACapability.field.MpduDensity);
- return 0;
+ // update HT Rate setting
+ if (pAd->OpMode == OPMODE_STA)
+ MlmeUpdateHtTxRates(pAd, BSS0);
+ else
+ MlmeUpdateHtTxRates(pAd, apidx);
}
-INT Show_HtBaWinSize_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- sprintf(pBuf, "\t%u", pAd->CommonCfg.BACapability.field.RxBAWinLimit);
- return 0;
-}
-INT Show_HtRdg_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- sprintf(pBuf, "\t%s", pAd->CommonCfg.bRdg ? "TRUE":"FALSE");
- return 0;
-}
+/*
+ ========================================================================
+ Routine Description:
+ Update HT IE from our capability.
-INT Show_HtAmsdu_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- sprintf(pBuf, "\t%s", pAd->CommonCfg.BACapability.field.AmsduEnable ? "TRUE":"FALSE");
- return 0;
-}
+ Arguments:
+ Send all HT IE in beacon/probe rsp/assoc rsp/action frame.
-INT Show_HtAutoBa_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- sprintf(pBuf, "\t%s", pAd->CommonCfg.BACapability.field.AutoBA ? "TRUE":"FALSE");
- return 0;
-}
-INT Show_CountryRegion_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
+ ========================================================================
+*/
+VOID RTMPUpdateHTIE(
+ IN RT_HT_CAPABILITY *pRtHt,
+ IN UCHAR *pMcsSet,
+ OUT HT_CAPABILITY_IE *pHtCapability,
+ OUT ADD_HT_INFO_IE *pAddHtInfo)
{
- sprintf(pBuf, "\t%d", pAd->CommonCfg.CountryRegion);
- return 0;
-}
+ RTMPZeroMemory(pHtCapability, sizeof(HT_CAPABILITY_IE));
+ RTMPZeroMemory(pAddHtInfo, sizeof(ADD_HT_INFO_IE));
-INT Show_CountryRegionABand_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- sprintf(pBuf, "\t%d", pAd->CommonCfg.CountryRegionForABand);
- return 0;
-}
+ pHtCapability->HtCapInfo.ChannelWidth = pRtHt->ChannelWidth;
+ pHtCapability->HtCapInfo.MimoPs = pRtHt->MimoPs;
+ pHtCapability->HtCapInfo.GF = pRtHt->GF;
+ pHtCapability->HtCapInfo.ShortGIfor20 = pRtHt->ShortGIfor20;
+ pHtCapability->HtCapInfo.ShortGIfor40 = pRtHt->ShortGIfor40;
+ pHtCapability->HtCapInfo.TxSTBC = pRtHt->TxSTBC;
+ pHtCapability->HtCapInfo.RxSTBC = pRtHt->RxSTBC;
+ pHtCapability->HtCapInfo.AMsduSize = pRtHt->AmsduSize;
+ pHtCapability->HtCapParm.MaxRAmpduFactor = pRtHt->MaxRAmpduFactor;
+ pHtCapability->HtCapParm.MpduDensity = pRtHt->MpduDensity;
-INT Show_CountryCode_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- sprintf(pBuf, "\t%s", pAd->CommonCfg.CountryCode);
- return 0;
-}
+ pAddHtInfo->AddHtInfo.ExtChanOffset = pRtHt->ExtChanOffset ;
+ pAddHtInfo->AddHtInfo.RecomWidth = pRtHt->RecomWidth;
+ pAddHtInfo->AddHtInfo2.OperaionMode = pRtHt->OperaionMode;
+ pAddHtInfo->AddHtInfo2.NonGfPresent = pRtHt->NonGfPresent;
+ RTMPMoveMemory(pAddHtInfo->MCSSet, /*pRtHt->MCSSet*/pMcsSet, 4); // rt2860 only support MCS max=32, no need to copy all 16 uchar.
-#ifdef AGGREGATION_SUPPORT
-INT Show_PktAggregate_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- sprintf(pBuf, "\t%s", pAd->CommonCfg.bAggregationCapable ? "TRUE":"FALSE");
- return 0;
+ DBGPRINT(RT_DEBUG_TRACE,("RTMPUpdateHTIE <== \n"));
}
-#endif // AGGREGATION_SUPPORT //
-#ifdef WMM_SUPPORT
-INT Show_WmmCapable_Proc(
+/*
+ ========================================================================
+ Description:
+ Add Client security information into ASIC WCID table and IVEIV table.
+ Return:
+ ========================================================================
+*/
+VOID RTMPAddWcidAttributeEntry(
IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
+ IN UCHAR BssIdx,
+ IN UCHAR KeyIdx,
+ IN UCHAR CipherAlg,
+ IN MAC_TABLE_ENTRY *pEntry)
{
- sprintf(pBuf, "\t%s", pAd->CommonCfg.bWmmCapable ? "TRUE":"FALSE");
+ UINT32 WCIDAttri = 0;
+ USHORT offset;
+ UCHAR IVEIV = 0;
+ USHORT Wcid = 0;
- return 0;
-}
-#endif // WMM_SUPPORT //
+ {
+ {
+ if (BssIdx > BSS0)
+ {
+ DBGPRINT(RT_DEBUG_ERROR, ("RTMPAddWcidAttributeEntry: The BSS-index(%d) is out of range for Infra link. \n", BssIdx));
+ return;
+ }
-INT Show_IEEE80211H_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- sprintf(pBuf, "\t%s", pAd->CommonCfg.bIEEE80211H ? "TRUE":"FALSE");
- return 0;
-}
+ // 1. In ADHOC mode, the AID is wcid number. And NO mesh link exists.
+ // 2. In Infra mode, the AID:1 MUST be wcid of infra STA.
+ // the AID:2~ assign to mesh link entry.
+ if (pEntry)
+ Wcid = pEntry->Aid;
+ else
+ Wcid = MCAST_WCID;
+ }
+ }
+
+ // Update WCID attribute table
+ offset = MAC_WCID_ATTRIBUTE_BASE + (Wcid * HW_WCID_ATTRI_SIZE);
-INT Show_NetworkType_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- switch(pAd->StaCfg.BssType)
{
- case BSS_ADHOC:
- sprintf(pBuf, "\tAdhoc");
- break;
- case BSS_INFRA:
- sprintf(pBuf, "\tInfra");
- break;
- case BSS_ANY:
- sprintf(pBuf, "\tAny");
- break;
- case BSS_MONITOR:
- sprintf(pBuf, "\tMonitor");
- break;
- default:
- sprintf(pBuf, "\tUnknow Value(%d)", pAd->StaCfg.BssType);
- break;
+ if (pEntry && pEntry->ValidAsMesh)
+ WCIDAttri = (CipherAlg<<1) | PAIRWISEKEYTABLE;
+ else
+ WCIDAttri = (CipherAlg<<1) | SHAREDKEYTABLE;
}
- return 0;
-}
-
+ RTMP_IO_WRITE32(pAd, offset, WCIDAttri);
-INT Show_AuthMode_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- NDIS_802_11_AUTHENTICATION_MODE AuthMode = Ndis802_11AuthModeOpen;
- AuthMode = pAd->StaCfg.AuthMode;
+ // Update IV/EIV table
+ offset = MAC_IVEIV_TABLE_BASE + (Wcid * HW_IVEIV_ENTRY_SIZE);
- if ((AuthMode >= Ndis802_11AuthModeOpen) &&
- (AuthMode <= Ndis802_11AuthModeWPA1PSKWPA2PSK))
- sprintf(pBuf, "\t%s", RTMPGetRalinkAuthModeStr(AuthMode));
+ // WPA mode
+ if ((CipherAlg == CIPHER_TKIP) || (CipherAlg == CIPHER_TKIP_NO_MIC) || (CipherAlg == CIPHER_AES))
+ {
+ // Eiv bit on. keyid always is 0 for pairwise key
+ IVEIV = (KeyIdx <<6) | 0x20;
+ }
else
- sprintf(pBuf, "\tUnknow Value(%d)", AuthMode);
-
- return 0;
-}
-
-INT Show_EncrypType_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- NDIS_802_11_WEP_STATUS WepStatus = Ndis802_11WEPDisabled;
+ {
+ // WEP KeyIdx is default tx key.
+ IVEIV = (KeyIdx << 6);
+ }
- WepStatus = pAd->StaCfg.WepStatus;
+ // For key index and ext IV bit, so only need to update the position(offset+3).
+#ifdef RTMP_MAC_PCI
+ RTMP_IO_WRITE8(pAd, offset+3, IVEIV);
+#endif // RTMP_MAC_PCI //
+#ifdef RTMP_MAC_USB
+ RTUSBMultiWrite_OneByte(pAd, offset+3, &IVEIV);
+#endif // RTMP_MAC_USB //
- if ((WepStatus >= Ndis802_11WEPEnabled) &&
- (WepStatus <= Ndis802_11Encryption4KeyAbsent))
- sprintf(pBuf, "\t%s", RTMPGetRalinkEncryModeStr(WepStatus));
- else
- sprintf(pBuf, "\tUnknow Value(%d)", WepStatus);
+ DBGPRINT(RT_DEBUG_TRACE,("RTMPAddWcidAttributeEntry: WCID #%d, KeyIndex #%d, Alg=%s\n",Wcid, KeyIdx, CipherName[CipherAlg]));
+ DBGPRINT(RT_DEBUG_TRACE,(" WCIDAttri = 0x%x \n", WCIDAttri));
- return 0;
}
-INT Show_DefaultKeyID_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- UCHAR DefaultKeyId = 0;
-
- DefaultKeyId = pAd->StaCfg.DefaultKeyId;
-
- sprintf(pBuf, "\t%d", DefaultKeyId);
+/*
+ ==========================================================================
+ Description:
+ Parse encryption type
+Arguments:
+ pAdapter Pointer to our adapter
+ wrq Pointer to the ioctl argument
- return 0;
-}
+ Return Value:
+ None
-INT Show_WepKey_Proc(
- IN PRTMP_ADAPTER pAd,
- IN INT KeyIdx,
- OUT PSTRING pBuf)
+ Note:
+ ==========================================================================
+*/
+PSTRING GetEncryptType(CHAR enc)
{
- UCHAR Key[16] = {0}, KeyLength = 0;
- INT index = BSS0;
-
- KeyLength = pAd->SharedKey[index][KeyIdx].KeyLen;
- NdisMoveMemory(Key, pAd->SharedKey[index][KeyIdx].Key, KeyLength);
-
- //check key string is ASCII or not
- if (RTMPCheckStrPrintAble((PCHAR)Key, KeyLength))
- sprintf(pBuf, "\t%s", Key);
+ if(enc == Ndis802_11WEPDisabled)
+ return "NONE";
+ if(enc == Ndis802_11WEPEnabled)
+ return "WEP";
+ if(enc == Ndis802_11Encryption2Enabled)
+ return "TKIP";
+ if(enc == Ndis802_11Encryption3Enabled)
+ return "AES";
+ if(enc == Ndis802_11Encryption4Enabled)
+ return "TKIPAES";
else
- {
- int idx;
- sprintf(pBuf, "\t");
- for (idx = 0; idx < KeyLength; idx++)
- sprintf(pBuf+strlen(pBuf), "%02X", Key[idx]);
- }
- return 0;
-}
-
-INT Show_Key1_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- Show_WepKey_Proc(pAd, 0, pBuf);
- return 0;
+ return "UNKNOW";
}
-INT Show_Key2_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
+PSTRING GetAuthMode(CHAR auth)
{
- Show_WepKey_Proc(pAd, 1, pBuf);
- return 0;
-}
+ if(auth == Ndis802_11AuthModeOpen)
+ return "OPEN";
+ if(auth == Ndis802_11AuthModeShared)
+ return "SHARED";
+ if(auth == Ndis802_11AuthModeAutoSwitch)
+ return "AUTOWEP";
+ if(auth == Ndis802_11AuthModeWPA)
+ return "WPA";
+ if(auth == Ndis802_11AuthModeWPAPSK)
+ return "WPAPSK";
+ if(auth == Ndis802_11AuthModeWPANone)
+ return "WPANONE";
+ if(auth == Ndis802_11AuthModeWPA2)
+ return "WPA2";
+ if(auth == Ndis802_11AuthModeWPA2PSK)
+ return "WPA2PSK";
+ if(auth == Ndis802_11AuthModeWPA1WPA2)
+ return "WPA1WPA2";
+ if(auth == Ndis802_11AuthModeWPA1PSKWPA2PSK)
+ return "WPA1PSKWPA2PSK";
-INT Show_Key3_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- Show_WepKey_Proc(pAd, 2, pBuf);
- return 0;
+ return "UNKNOW";
}
-INT Show_Key4_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
+INT SetCommonHT(
+ IN PRTMP_ADAPTER pAd)
{
- Show_WepKey_Proc(pAd, 3, pBuf);
- return 0;
-}
+ OID_SET_HT_PHYMODE SetHT;
-INT Show_WPAPSK_Proc(
- IN PRTMP_ADAPTER pAd,
- OUT PSTRING pBuf)
-{
- INT idx;
- UCHAR PMK[32] = {0};
+ if (pAd->CommonCfg.PhyMode < PHY_11ABGN_MIXED)
+ return FALSE;
- NdisMoveMemory(PMK, pAd->StaCfg.PMK, 32);
+ SetHT.PhyMode = pAd->CommonCfg.PhyMode;
+ SetHT.TransmitNo = ((UCHAR)pAd->Antenna.field.TxPath);
+ SetHT.HtMode = (UCHAR)pAd->CommonCfg.RegTransmitSetting.field.HTMODE;
+ SetHT.ExtOffset = (UCHAR)pAd->CommonCfg.RegTransmitSetting.field.EXTCHA;
+ SetHT.MCS = MCS_AUTO;
+ SetHT.BW = (UCHAR)pAd->CommonCfg.RegTransmitSetting.field.BW;
+ SetHT.STBC = (UCHAR)pAd->CommonCfg.RegTransmitSetting.field.STBC;
+ SetHT.SHORTGI = (UCHAR)pAd->CommonCfg.RegTransmitSetting.field.ShortGI;
- sprintf(pBuf, "\tPMK = ");
- for (idx = 0; idx < 32; idx++)
- sprintf(pBuf+strlen(pBuf), "%02X", PMK[idx]);
+ RTMPSetHT(pAd, &SetHT);
- return 0;
+ return TRUE;
}
+PSTRING RTMPGetRalinkEncryModeStr(
+ IN USHORT encryMode)
+{
+ switch(encryMode)
+ {
+ case Ndis802_11WEPDisabled:
+ return "NONE";
+ case Ndis802_11WEPEnabled:
+ return "WEP";
+ case Ndis802_11Encryption2Enabled:
+ return "TKIP";
+ case Ndis802_11Encryption3Enabled:
+ return "AES";
+ case Ndis802_11Encryption4Enabled:
+ return "TKIPAES";
+ default:
+ return "UNKNOW";
+ }
+}
Index: b/drivers/staging/rt2860/rtmp.h
===================================================================
--- a/drivers/staging/rt2860/rtmp.h
+++ b/drivers/staging/rt2860/rtmp.h
@@ -4237,17 +4237,9 @@ INT RT_CfgSetWPAPSKKey(
//
// Prototypes of function definition in cmm_info.c
//
-NDIS_STATUS RTMPWPARemoveKeyProc(
- IN PRTMP_ADAPTER pAd,
- IN PVOID pBuf);
-
VOID RTMPWPARemoveAllKeys(
IN PRTMP_ADAPTER pAd);
-BOOLEAN RTMPCheckStrPrintAble(
- IN CHAR *pInPutStr,
- IN UCHAR strLen);
-
VOID RTMPSetPhyMode(
IN PRTMP_ADAPTER pAd,
IN ULONG phymode);
@@ -4683,183 +4675,9 @@ int rtinet_aton(
unsigned int *addr);
////////// common ioctl functions //////////
-INT Set_DriverVersion_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_CountryRegion_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_CountryRegionABand_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_WirelessMode_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_Channel_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_ShortSlot_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_TxPower_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_BGProtection_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_TxPreamble_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_RTSThreshold_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_FragThreshold_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_TxBurst_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-#ifdef AGGREGATION_SUPPORT
-INT Set_PktAggregate_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-#endif // AGGREGATION_SUPPORT //
-
-INT Set_IEEE80211H_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-#ifdef DBG
-INT Set_Debug_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-#endif
-
-INT Show_DescInfo_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_ResetStatCounter_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_BASetup_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_BADecline_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_BAOriTearDown_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_BARecTearDown_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_HtBw_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_HtMcs_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_HtGi_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_HtOpMode_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_HtStbc_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_HtHtc_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_HtExtcha_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_HtMpduDensity_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_HtBaWinSize_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_HtRdg_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_HtLinkAdapt_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_HtAmsdu_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_HtAutoBa_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_HtProtect_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_HtMimoPs_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-
-INT Set_ForceShortGI_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_ForceGF_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
INT SetCommonHT(
IN PRTMP_ADAPTER pAd);
-INT Set_SendPSMPAction_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_HtMIMOPSmode_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-
-INT Set_HtTxBASize_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_HtDisallowTKIP_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
INT WpaCheckEapCode(
IN PRTMP_ADAPTER pAd,
IN PUCHAR pFrame,
@@ -5103,15 +4921,6 @@ INT Set_FixedTxMode_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
-
-INT Set_LongRetryLimit_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg);
-
-INT Set_ShortRetryLimit_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg);
-
BOOLEAN RT28XXChipsetCheck(
IN void *_dev_p);
@@ -5661,19 +5470,6 @@ void RtmpTimerQInit(
IN RTMP_ADAPTER *pAd);
#endif // RTMP_TIMER_TASK_SUPPORT //
-///////////////////////////////////////
-INT RTMPShowCfgValue(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING pName,
- IN PSTRING pBuf);
-
-PSTRING RTMPGetRalinkAuthModeStr(
- IN NDIS_802_11_AUTHENTICATION_MODE authMode);
-
-PSTRING RTMPGetRalinkEncryModeStr(
- IN USHORT encryMode);
-//////////////////////////////////////
-
VOID AsicStaBbpTuning(
IN PRTMP_ADAPTER pAd);
Index: b/drivers/staging/rt2860/sta_ioctl.c
===================================================================
--- a/drivers/staging/rt2860/sta_ioctl.c
+++ b/drivers/staging/rt2860/sta_ioctl.c
@@ -61,42 +61,6 @@ typedef struct PACKED _RT_VERSION_INFO{
UINT DriverBuildDay;
} RT_VERSION_INFO, *PRT_VERSION_INFO;
-struct iw_priv_args privtab[] = {
-{ RTPRIV_IOCTL_SET,
- IW_PRIV_TYPE_CHAR | 1024, 0,
- "set"},
-
-{ RTPRIV_IOCTL_SHOW, IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK,
- ""},
-/* --- sub-ioctls definitions --- */
- { SHOW_CONN_STATUS,
- IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "connStatus" },
- { SHOW_DRVIER_VERION,
- IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "driverVer" },
- { SHOW_BA_INFO,
- IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "bainfo" },
- { SHOW_DESC_INFO,
- IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "descinfo" },
- { RAIO_OFF,
- IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "radio_off" },
- { RAIO_ON,
- IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "radio_on" },
- { SHOW_CFG_VALUE,
- IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "show" },
- { SHOW_ADHOC_ENTRY_INFO,
- IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "adhocEntry" },
-/* --- sub-ioctls relations --- */
-
-{ RTPRIV_IOCTL_STATISTICS,
- 0, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK,
- "stat"},
-{ RTPRIV_IOCTL_GSITESURVEY,
- 0, IW_PRIV_TYPE_CHAR | 1024,
- "get_site_survey"},
-
-
-};
-
static __s32 ralinkrate[] =
{2, 4, 11, 22, // CCK
12, 18, 24, 36, 48, 72, 96, 108, // OFDM
@@ -113,190 +77,10 @@ INT Set_SSID_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg);
-#ifdef WMM_SUPPORT
-INT Set_WmmCapable_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-#endif
-
INT Set_NetworkType_Proc(
IN PRTMP_ADAPTER pAdapter,
IN PSTRING arg);
-INT Set_AuthMode_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg);
-
-INT Set_EncrypType_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg);
-
-INT Set_DefaultKeyID_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg);
-
-INT Set_Key1_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg);
-
-INT Set_Key2_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg);
-
-INT Set_Key3_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg);
-
-INT Set_Key4_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg);
-
-INT Set_WPAPSK_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg);
-
-
-INT Set_PSMode_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg);
-
-#ifdef RT3090
-INT Set_PCIePSLevel_Proc(
-IN PRTMP_ADAPTER pAdapter,
-IN PUCHAR arg);
-#endif // RT3090 //
-
-INT Set_Wpa_Support(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-NDIS_STATUS RTMPWPANoneAddKeyProc(
- IN PRTMP_ADAPTER pAd,
- IN PVOID pBuf);
-
-INT Set_FragTest_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg);
-
-INT Set_TGnWifiTest_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_LongRetryLimit_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg);
-
-INT Set_ShortRetryLimit_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg);
-
-
-
-INT Show_Adhoc_MacTable_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING extra);
-
-INT Set_BeaconLostTime_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_AutoRoaming_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_SiteSurvey_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT Set_ForceTxBurst_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-static struct {
- PSTRING name;
- INT (*set_proc)(PRTMP_ADAPTER pAdapter, PSTRING arg);
-} *PRTMP_PRIVATE_SET_PROC, RTMP_PRIVATE_SUPPORT_PROC[] = {
- {"DriverVersion", Set_DriverVersion_Proc},
- {"CountryRegion", Set_CountryRegion_Proc},
- {"CountryRegionABand", Set_CountryRegionABand_Proc},
- {"SSID", Set_SSID_Proc},
- {"WirelessMode", Set_WirelessMode_Proc},
- {"TxBurst", Set_TxBurst_Proc},
- {"TxPreamble", Set_TxPreamble_Proc},
- {"TxPower", Set_TxPower_Proc},
- {"Channel", Set_Channel_Proc},
- {"BGProtection", Set_BGProtection_Proc},
- {"RTSThreshold", Set_RTSThreshold_Proc},
- {"FragThreshold", Set_FragThreshold_Proc},
- {"HtBw", Set_HtBw_Proc},
- {"HtMcs", Set_HtMcs_Proc},
- {"HtGi", Set_HtGi_Proc},
- {"HtOpMode", Set_HtOpMode_Proc},
- {"HtExtcha", Set_HtExtcha_Proc},
- {"HtMpduDensity", Set_HtMpduDensity_Proc},
- {"HtBaWinSize", Set_HtBaWinSize_Proc},
- {"HtRdg", Set_HtRdg_Proc},
- {"HtAmsdu", Set_HtAmsdu_Proc},
- {"HtAutoBa", Set_HtAutoBa_Proc},
- {"HtBaDecline", Set_BADecline_Proc},
- {"HtProtect", Set_HtProtect_Proc},
- {"HtMimoPs", Set_HtMimoPs_Proc},
- {"HtDisallowTKIP", Set_HtDisallowTKIP_Proc},
-#ifdef AGGREGATION_SUPPORT
- {"PktAggregate", Set_PktAggregate_Proc},
-#endif // AGGREGATION_SUPPORT //
-
-#ifdef WMM_SUPPORT
- {"WmmCapable", Set_WmmCapable_Proc},
-#endif
- {"IEEE80211H", Set_IEEE80211H_Proc},
- {"NetworkType", Set_NetworkType_Proc},
- {"AuthMode", Set_AuthMode_Proc},
- {"EncrypType", Set_EncrypType_Proc},
- {"DefaultKeyID", Set_DefaultKeyID_Proc},
- {"Key1", Set_Key1_Proc},
- {"Key2", Set_Key2_Proc},
- {"Key3", Set_Key3_Proc},
- {"Key4", Set_Key4_Proc},
- {"WPAPSK", Set_WPAPSK_Proc},
- {"ResetCounter", Set_ResetStatCounter_Proc},
- {"PSMode", Set_PSMode_Proc},
-#ifdef DBG
- {"Debug", Set_Debug_Proc},
-#endif // DBG //
-
-
- {"WpaSupport", Set_Wpa_Support},
-
-
-
-
-
- {"FixedTxMode", Set_FixedTxMode_Proc},
- {"TGnWifiTest", Set_TGnWifiTest_Proc},
- {"ForceGF", Set_ForceGF_Proc},
- {"LongRetry", Set_LongRetryLimit_Proc},
- {"ShortRetry", Set_ShortRetryLimit_Proc},
-
-//2008/09/11:KH add to support efuse<--
-#ifdef RT30xx
-#ifdef RTMP_EFUSE_SUPPORT
- {"efuseFreeNumber", set_eFuseGetFreeBlockCount_Proc},
- {"efuseDump", set_eFusedump_Proc},
- {"efuseLoadFromBin", set_eFuseLoadFromBin_Proc},
- {"efuseBufferModeWriteBack", set_eFuseBufferModeWriteBack_Proc},
-#endif // RTMP_EFUSE_SUPPORT //
-#endif // RT30xx //
-//2008/09/11:KH add to support efuse-->
- {"BeaconLostTime", Set_BeaconLostTime_Proc},
- {"AutoRoaming", Set_AutoRoaming_Proc},
- {"SiteSurvey", Set_SiteSurvey_Proc},
- {"ForceTxBurst", Set_ForceTxBurst_Proc},
-
- {NULL,}
-};
-
-
VOID RTMPAddKey(
IN PRTMP_ADAPTER pAd,
IN PNDIS_802_11_KEY pKey)
@@ -1656,117 +1440,6 @@ rt_ioctl_giwencode(struct net_device *de
}
-static int
-rt_ioctl_setparam(struct net_device *dev, struct iw_request_info *info,
- void *w, char *extra)
-{
- PRTMP_ADAPTER pAdapter;
- POS_COOKIE pObj;
- PSTRING this_char = extra;
- PSTRING value;
- int Status=0;
-
- GET_PAD_FROM_NET_DEV(pAdapter, dev);
-
- pObj = (POS_COOKIE) pAdapter->OS_Cookie;
- {
- pObj->ioctl_if_type = INT_MAIN;
- pObj->ioctl_if = MAIN_MBSSID;
- }
-
- //check if the interface is down
- if(!RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_INTERRUPT_IN_USE))
- {
- DBGPRINT(RT_DEBUG_TRACE, ("INFO::Network is down!\n"));
- return -ENETDOWN;
- }
-
- if (!*this_char)
- return -EINVAL;
-
- if ((value = rtstrchr(this_char, '=')) != NULL)
- *value++ = 0;
-
- if (!value && (strcmp(this_char, "SiteSurvey") != 0))
- return -EINVAL;
- else
- goto SET_PROC;
-
- // reject setting nothing besides ANY ssid(ssidLen=0)
- if (!*value && (strcmp(this_char, "SSID") != 0))
- return -EINVAL;
-
-SET_PROC:
- for (PRTMP_PRIVATE_SET_PROC = RTMP_PRIVATE_SUPPORT_PROC; PRTMP_PRIVATE_SET_PROC->name; PRTMP_PRIVATE_SET_PROC++)
- {
- if (strcmp(this_char, PRTMP_PRIVATE_SET_PROC->name) == 0)
- {
- if(!PRTMP_PRIVATE_SET_PROC->set_proc(pAdapter, value))
- { //FALSE:Set private failed then return Invalid argument
- Status = -EINVAL;
- }
- break; //Exit for loop.
- }
- }
-
- if(PRTMP_PRIVATE_SET_PROC->name == NULL)
- { //Not found argument
- Status = -EINVAL;
- DBGPRINT(RT_DEBUG_TRACE, ("===>rt_ioctl_setparam:: (iwpriv) Not Support Set Command [%s=%s]\n", this_char, value));
- }
-
- return Status;
-}
-
-
-static int
-rt_private_get_statistics(struct net_device *dev, struct iw_request_info *info,
- struct iw_point *wrq, char *extra)
-{
- INT Status = 0;
- PRTMP_ADAPTER pAd = NULL;
-
- GET_PAD_FROM_NET_DEV(pAd, dev);
-
- if (extra == NULL)
- {
- wrq->length = 0;
- return -EIO;
- }
-
- memset(extra, 0x00, IW_PRIV_SIZE_MASK);
- sprintf(extra, "\n\n");
-
- {
- sprintf(extra+strlen(extra), "Tx success = %ld\n", (ULONG)pAd->WlanCounters.TransmittedFragmentCount.QuadPart);
- sprintf(extra+strlen(extra), "Tx success without retry = %ld\n", (ULONG)pAd->WlanCounters.TransmittedFragmentCount.QuadPart - (ULONG)pAd->WlanCounters.RetryCount.QuadPart);
- }
- sprintf(extra+strlen(extra), "Tx success after retry = %ld\n", (ULONG)pAd->WlanCounters.RetryCount.QuadPart);
- sprintf(extra+strlen(extra), "Tx fail to Rcv ACK after retry = %ld\n", (ULONG)pAd->WlanCounters.FailedCount.QuadPart);
- sprintf(extra+strlen(extra), "RTS Success Rcv CTS = %ld\n", (ULONG)pAd->WlanCounters.RTSSuccessCount.QuadPart);
- sprintf(extra+strlen(extra), "RTS Fail Rcv CTS = %ld\n", (ULONG)pAd->WlanCounters.RTSFailureCount.QuadPart);
-
- sprintf(extra+strlen(extra), "Rx success = %ld\n", (ULONG)pAd->WlanCounters.ReceivedFragmentCount.QuadPart);
- sprintf(extra+strlen(extra), "Rx with CRC = %ld\n", (ULONG)pAd->WlanCounters.FCSErrorCount.QuadPart);
- sprintf(extra+strlen(extra), "Rx drop due to out of resource = %ld\n", (ULONG)pAd->Counters8023.RxNoBuffer);
- sprintf(extra+strlen(extra), "Rx duplicate frame = %ld\n", (ULONG)pAd->WlanCounters.FrameDuplicateCount.QuadPart);
-
- sprintf(extra+strlen(extra), "False CCA (one second) = %ld\n", (ULONG)pAd->RalinkCounters.OneSecFalseCCACnt);
- {
- sprintf(extra+strlen(extra), "RSSI-A = %ld\n", (LONG)(pAd->StaCfg.RssiSample.LastRssi0 - pAd->BbpRssiToDbmDelta));
- sprintf(extra+strlen(extra), "RSSI-B (if available) = %ld\n", (LONG)(pAd->StaCfg.RssiSample.LastRssi1 - pAd->BbpRssiToDbmDelta));
- sprintf(extra+strlen(extra), "RSSI-C (if available) = %ld\n\n", (LONG)(pAd->StaCfg.RssiSample.LastRssi2 - pAd->BbpRssiToDbmDelta));
- }
- sprintf(extra+strlen(extra), "WpaSupplicantUP = %d\n\n", pAd->StaCfg.WpaSupplicantUP);
-
-
-
- wrq->length = strlen(extra) + 1; // 1: size of '\0'
- DBGPRINT(RT_DEBUG_TRACE, ("<== rt_private_get_statistics, wrq->length = %d\n", wrq->length));
-
- return Status;
-}
-
void getBaInfo(
IN PRTMP_ADAPTER pAd,
IN PSTRING pOutBuf)
@@ -1814,143 +1487,6 @@ void getBaInfo(
return;
}
-static int
-rt_private_show(struct net_device *dev, struct iw_request_info *info,
- struct iw_point *wrq, PSTRING extra)
-{
- INT Status = 0;
- PRTMP_ADAPTER pAd;
- POS_COOKIE pObj;
- u32 subcmd = wrq->flags;
-
- GET_PAD_FROM_NET_DEV(pAd, dev);
-
- pObj = (POS_COOKIE) pAd->OS_Cookie;
- if (extra == NULL)
- {
- wrq->length = 0;
- return -EIO;
- }
- memset(extra, 0x00, IW_PRIV_SIZE_MASK);
-
- {
- pObj->ioctl_if_type = INT_MAIN;
- pObj->ioctl_if = MAIN_MBSSID;
- }
-
- switch(subcmd)
- {
-
- case SHOW_CONN_STATUS:
- if (MONITOR_ON(pAd))
- {
- if (pAd->CommonCfg.PhyMode >= PHY_11ABGN_MIXED &&
- pAd->CommonCfg.RegTransmitSetting.field.BW)
- sprintf(extra, "Monitor Mode(CentralChannel %d)\n", pAd->CommonCfg.CentralChannel);
- else
- sprintf(extra, "Monitor Mode(Channel %d)\n", pAd->CommonCfg.Channel);
- }
- else
- {
- if (pAd->IndicateMediaState == NdisMediaStateConnected)
- {
- if (INFRA_ON(pAd))
- {
- sprintf(extra, "Connected(AP: %s[%02X:%02X:%02X:%02X:%02X:%02X])\n",
- pAd->CommonCfg.Ssid,
- pAd->CommonCfg.Bssid[0],
- pAd->CommonCfg.Bssid[1],
- pAd->CommonCfg.Bssid[2],
- pAd->CommonCfg.Bssid[3],
- pAd->CommonCfg.Bssid[4],
- pAd->CommonCfg.Bssid[5]);
- DBGPRINT(RT_DEBUG_TRACE ,("Ssid=%s ,Ssidlen = %d\n",pAd->CommonCfg.Ssid, pAd->CommonCfg.SsidLen));
- }
- else if (ADHOC_ON(pAd))
- sprintf(extra, "Connected\n");
- }
- else
- {
- sprintf(extra, "Disconnected\n");
- DBGPRINT(RT_DEBUG_TRACE ,("ConnStatus is not connected\n"));
- }
- }
- wrq->length = strlen(extra) + 1; // 1: size of '\0'
- break;
- case SHOW_DRVIER_VERION:
- sprintf(extra, "Driver version-%s, %s %s\n", STA_DRIVER_VERSION, __DATE__, __TIME__ );
- wrq->length = strlen(extra) + 1; // 1: size of '\0'
- break;
- case SHOW_BA_INFO:
- getBaInfo(pAd, extra);
- wrq->length = strlen(extra) + 1; // 1: size of '\0'
- break;
- case SHOW_DESC_INFO:
- {
- Show_DescInfo_Proc(pAd, NULL);
- wrq->length = 0; // 1: size of '\0'
- }
- break;
- case RAIO_OFF:
- if (RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_BSS_SCAN_IN_PROGRESS))
- {
- if (pAd->Mlme.CntlMachine.CurrState != CNTL_IDLE)
- {
- RTMP_MLME_RESET_STATE_MACHINE(pAd);
- DBGPRINT(RT_DEBUG_TRACE, ("!!! MLME busy, reset MLME state machine !!!\n"));
- }
- }
- pAd->StaCfg.bSwRadio = FALSE;
- if (pAd->StaCfg.bRadio != (pAd->StaCfg.bHwRadio && pAd->StaCfg.bSwRadio))
- {
- pAd->StaCfg.bRadio = (pAd->StaCfg.bHwRadio && pAd->StaCfg.bSwRadio);
- if (pAd->StaCfg.bRadio == FALSE)
- {
- MlmeRadioOff(pAd);
- // Update extra information
- pAd->ExtraInfo = SW_RADIO_OFF;
- }
- }
- sprintf(extra, "Radio Off\n");
- wrq->length = strlen(extra) + 1; // 1: size of '\0'
- break;
- case RAIO_ON:
- pAd->StaCfg.bSwRadio = TRUE;
- //if (pAd->StaCfg.bRadio != (pAd->StaCfg.bHwRadio && pAd->StaCfg.bSwRadio))
- {
- pAd->StaCfg.bRadio = (pAd->StaCfg.bHwRadio && pAd->StaCfg.bSwRadio);
- if (pAd->StaCfg.bRadio == TRUE)
- {
- MlmeRadioOn(pAd);
- // Update extra information
- pAd->ExtraInfo = EXTRA_INFO_CLEAR;
- }
- }
- sprintf(extra, "Radio On\n");
- wrq->length = strlen(extra) + 1; // 1: size of '\0'
- break;
-
-
-
- case SHOW_CFG_VALUE:
- {
- Status = RTMPShowCfgValue(pAd, (PSTRING) wrq->pointer, extra);
- if (Status == 0)
- wrq->length = strlen(extra) + 1; // 1: size of '\0'
- }
- break;
- case SHOW_ADHOC_ENTRY_INFO:
- Show_Adhoc_MacTable_Proc(pAd, extra);
- wrq->length = strlen(extra) + 1; // 1: size of '\0'
- break;
- default:
- DBGPRINT(RT_DEBUG_TRACE, ("%s - unknow subcmd = %d\n", __func__, subcmd));
- break;
- }
-
- return Status;
-}
-
int rt_ioctl_siwmlme(struct net_device *dev,
struct iw_request_info *info,
union iwreq_data *wrqu,
@@ -2774,43 +2310,10 @@ static const iw_handler rt_handler[] =
(iw_handler) rt_ioctl_siwpmksa, /* SIOCSIWPMKSA */
};
-static const iw_handler rt_priv_handlers[] = {
- (iw_handler) NULL, /* + 0x00 */
- (iw_handler) NULL, /* + 0x01 */
- (iw_handler) rt_ioctl_setparam, /* + 0x02 */
- (iw_handler) NULL, /* + 0x03 */
- (iw_handler) NULL, /* + 0x04 */
- (iw_handler) NULL, /* + 0x05 */
- (iw_handler) NULL, /* + 0x06 */
- (iw_handler) NULL, /* + 0x07 */
- (iw_handler) NULL, /* + 0x08 */
- (iw_handler) rt_private_get_statistics, /* + 0x09 */
- (iw_handler) NULL, /* + 0x0A */
- (iw_handler) NULL, /* + 0x0B */
- (iw_handler) NULL, /* + 0x0C */
- (iw_handler) NULL, /* + 0x0D */
- (iw_handler) NULL, /* + 0x0E */
- (iw_handler) NULL, /* + 0x0F */
- (iw_handler) NULL, /* + 0x10 */
- (iw_handler) rt_private_show, /* + 0x11 */
- (iw_handler) NULL, /* + 0x12 */
- (iw_handler) NULL, /* + 0x13 */
- (iw_handler) NULL, /* + 0x14 */
- (iw_handler) NULL, /* + 0x15 */
- (iw_handler) NULL, /* + 0x16 */
- (iw_handler) NULL, /* + 0x17 */
- (iw_handler) NULL, /* + 0x18 */
-};
-
const struct iw_handler_def rt28xx_iw_handler_def =
{
-#define N(a) (sizeof (a) / sizeof (a[0]))
.standard = (iw_handler *) rt_handler,
.num_standard = sizeof(rt_handler) / sizeof(iw_handler),
- .private = (iw_handler *) rt_priv_handlers,
- .num_private = N(rt_priv_handlers),
- .private_args = (struct iw_priv_args *) privtab,
- .num_private_args = N(privtab),
#if IW_HANDLER_VERSION >= 7
.get_wireless_stats = rt28xx_get_wireless_stats,
#endif
@@ -2980,17 +2483,8 @@ INT rt28xx_sta_ioctl(
case RT_PRIV_IOCTL_EXT:
case RTPRIV_IOCTL_SET:
case RTPRIV_IOCTL_GSITESURVEY:
- Status = -EOPNOTSUPP;
- break;
case SIOCGIWPRIV:
- if (wrq->u.data.pointer)
- {
- if ( access_ok(VERIFY_WRITE, wrq->u.data.pointer, sizeof(privtab)) != TRUE)
- break;
- wrq->u.data.length = sizeof(privtab) / sizeof(privtab[0]);
- if (copy_to_user(wrq->u.data.pointer, privtab, sizeof(privtab)))
- Status = -EFAULT;
- }
+ Status = -EOPNOTSUPP;
break;
case SIOCETHTOOL:
break;
@@ -3087,41 +2581,6 @@ INT Set_SSID_Proc(
return success;
}
-#ifdef WMM_SUPPORT
-/*
- ==========================================================================
- Description:
- Set WmmCapable Enable or Disable
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_WmmCapable_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- BOOLEAN bWmmCapable;
-
- bWmmCapable = simple_strtol(arg, 0, 10);
-
- if ((bWmmCapable == 1)
-#ifdef RTMP_MAC_USB
- && (pAd->NumberOfPipes >= 5)
-#endif // RTMP_MAC_USB //
- )
- pAd->CommonCfg.bWmmCapable = TRUE;
- else if (bWmmCapable == 0)
- pAd->CommonCfg.bWmmCapable = FALSE;
- else
- return FALSE; //Invalid argument
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_WmmCapable_Proc::(bWmmCapable=%d)\n",
- pAd->CommonCfg.bWmmCapable));
-
- return TRUE;
-}
-#endif // WMM_SUPPORT //
-
/*
==========================================================================
Description:
@@ -3306,765 +2765,3 @@ INT Set_NetworkType_Proc(
return TRUE;
}
-
-/*
- ==========================================================================
- Description:
- Set Authentication mode
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_AuthMode_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg)
-{
- if ((strcmp(arg, "WEPAUTO") == 0) || (strcmp(arg, "wepauto") == 0))
- pAdapter->StaCfg.AuthMode = Ndis802_11AuthModeAutoSwitch;
- else if ((strcmp(arg, "OPEN") == 0) || (strcmp(arg, "open") == 0))
- pAdapter->StaCfg.AuthMode = Ndis802_11AuthModeOpen;
- else if ((strcmp(arg, "SHARED") == 0) || (strcmp(arg, "shared") == 0))
- pAdapter->StaCfg.AuthMode = Ndis802_11AuthModeShared;
- else if ((strcmp(arg, "WPAPSK") == 0) || (strcmp(arg, "wpapsk") == 0))
- pAdapter->StaCfg.AuthMode = Ndis802_11AuthModeWPAPSK;
- else if ((strcmp(arg, "WPANONE") == 0) || (strcmp(arg, "wpanone") == 0))
- pAdapter->StaCfg.AuthMode = Ndis802_11AuthModeWPANone;
- else if ((strcmp(arg, "WPA2PSK") == 0) || (strcmp(arg, "wpa2psk") == 0))
- pAdapter->StaCfg.AuthMode = Ndis802_11AuthModeWPA2PSK;
- else if ((strcmp(arg, "WPA") == 0) || (strcmp(arg, "wpa") == 0))
- pAdapter->StaCfg.AuthMode = Ndis802_11AuthModeWPA;
- else if ((strcmp(arg, "WPA2") == 0) || (strcmp(arg, "wpa2") == 0))
- pAdapter->StaCfg.AuthMode = Ndis802_11AuthModeWPA2;
- else
- return FALSE;
-
- pAdapter->StaCfg.PortSecured = WPA_802_1X_PORT_NOT_SECURED;
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_AuthMode_Proc::(AuthMode=%d)\n", pAdapter->StaCfg.AuthMode));
-
- return TRUE;
-}
-
-/*
- ==========================================================================
- Description:
- Set Encryption Type
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_EncrypType_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg)
-{
- if ((strcmp(arg, "NONE") == 0) || (strcmp(arg, "none") == 0))
- {
- if (pAdapter->StaCfg.AuthMode >= Ndis802_11AuthModeWPA)
- return TRUE; // do nothing
-
- pAdapter->StaCfg.WepStatus = Ndis802_11WEPDisabled;
- pAdapter->StaCfg.PairCipher = Ndis802_11WEPDisabled;
- pAdapter->StaCfg.GroupCipher = Ndis802_11WEPDisabled;
- }
- else if ((strcmp(arg, "WEP") == 0) || (strcmp(arg, "wep") == 0))
- {
- if (pAdapter->StaCfg.AuthMode >= Ndis802_11AuthModeWPA)
- return TRUE; // do nothing
-
- pAdapter->StaCfg.WepStatus = Ndis802_11WEPEnabled;
- pAdapter->StaCfg.PairCipher = Ndis802_11WEPEnabled;
- pAdapter->StaCfg.GroupCipher = Ndis802_11WEPEnabled;
- }
- else if ((strcmp(arg, "TKIP") == 0) || (strcmp(arg, "tkip") == 0))
- {
- if (pAdapter->StaCfg.AuthMode < Ndis802_11AuthModeWPA)
- return TRUE; // do nothing
-
- pAdapter->StaCfg.WepStatus = Ndis802_11Encryption2Enabled;
- pAdapter->StaCfg.PairCipher = Ndis802_11Encryption2Enabled;
- pAdapter->StaCfg.GroupCipher = Ndis802_11Encryption2Enabled;
- }
- else if ((strcmp(arg, "AES") == 0) || (strcmp(arg, "aes") == 0))
- {
- if (pAdapter->StaCfg.AuthMode < Ndis802_11AuthModeWPA)
- return TRUE; // do nothing
-
- pAdapter->StaCfg.WepStatus = Ndis802_11Encryption3Enabled;
- pAdapter->StaCfg.PairCipher = Ndis802_11Encryption3Enabled;
- pAdapter->StaCfg.GroupCipher = Ndis802_11Encryption3Enabled;
- }
- else
- return FALSE;
-
- pAdapter->StaCfg.OrigWepStatus = pAdapter->StaCfg.WepStatus;
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_EncrypType_Proc::(EncrypType=%d)\n", pAdapter->StaCfg.WepStatus));
-
- return TRUE;
-}
-
-/*
- ==========================================================================
- Description:
- Set Default Key ID
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_DefaultKeyID_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg)
-{
- ULONG KeyIdx;
-
- KeyIdx = simple_strtol(arg, 0, 10);
- if((KeyIdx >= 1 ) && (KeyIdx <= 4))
- pAdapter->StaCfg.DefaultKeyId = (UCHAR) (KeyIdx - 1 );
- else
- return FALSE; //Invalid argument
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_DefaultKeyID_Proc::(DefaultKeyID=%d)\n", pAdapter->StaCfg.DefaultKeyId));
-
- return TRUE;
-}
-
-/*
- ==========================================================================
- Description:
- Set WEP KEY1
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_Key1_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg)
-{
- int KeyLen;
- int i;
- UCHAR CipherAlg=CIPHER_WEP64;
-
- if (pAdapter->StaCfg.AuthMode >= Ndis802_11AuthModeWPA)
- return TRUE; // do nothing
-
- KeyLen = strlen(arg);
-
- switch (KeyLen)
- {
- case 5: //wep 40 Ascii type
- pAdapter->SharedKey[BSS0][0].KeyLen = KeyLen;
- memcpy(pAdapter->SharedKey[BSS0][0].Key, arg, KeyLen);
- CipherAlg = CIPHER_WEP64;
- DBGPRINT(RT_DEBUG_TRACE, ("Set_Key1_Proc::(Key1=%s and type=%s)\n", arg, "Ascii"));
- break;
- case 10: //wep 40 Hex type
- for(i=0; i < KeyLen; i++)
- {
- if( !isxdigit(*(arg+i)) )
- return FALSE; //Not Hex value;
- }
- pAdapter->SharedKey[BSS0][0].KeyLen = KeyLen / 2 ;
- AtoH(arg, pAdapter->SharedKey[BSS0][0].Key, KeyLen / 2);
- CipherAlg = CIPHER_WEP64;
- DBGPRINT(RT_DEBUG_TRACE, ("Set_Key1_Proc::(Key1=%s and type=%s)\n", arg, "Hex"));
- break;
- case 13: //wep 104 Ascii type
- pAdapter->SharedKey[BSS0][0].KeyLen = KeyLen;
- memcpy(pAdapter->SharedKey[BSS0][0].Key, arg, KeyLen);
- CipherAlg = CIPHER_WEP128;
- DBGPRINT(RT_DEBUG_TRACE, ("Set_Key1_Proc::(Key1=%s and type=%s)\n", arg, "Ascii"));
- break;
- case 26: //wep 104 Hex type
- for(i=0; i < KeyLen; i++)
- {
- if( !isxdigit(*(arg+i)) )
- return FALSE; //Not Hex value;
- }
- pAdapter->SharedKey[BSS0][0].KeyLen = KeyLen / 2 ;
- AtoH(arg, pAdapter->SharedKey[BSS0][0].Key, KeyLen / 2);
- CipherAlg = CIPHER_WEP128;
- DBGPRINT(RT_DEBUG_TRACE, ("Set_Key1_Proc::(Key1=%s and type=%s)\n", arg, "Hex"));
- break;
- default: //Invalid argument
- DBGPRINT(RT_DEBUG_TRACE, ("Set_Key1_Proc::Invalid argument (=%s)\n", arg));
- return FALSE;
- }
-
- pAdapter->SharedKey[BSS0][0].CipherAlg = CipherAlg;
-
- // Set keys (into ASIC)
- if (pAdapter->StaCfg.AuthMode >= Ndis802_11AuthModeWPA)
- ; // not support
- else // Old WEP stuff
- {
- AsicAddSharedKeyEntry(pAdapter,
- 0,
- 0,
- pAdapter->SharedKey[BSS0][0].CipherAlg,
- pAdapter->SharedKey[BSS0][0].Key,
- NULL,
- NULL);
- }
-
- return TRUE;
-}
-/*
- ==========================================================================
-
- Description:
- Set WEP KEY2
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_Key2_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg)
-{
- int KeyLen;
- int i;
- UCHAR CipherAlg=CIPHER_WEP64;
-
- if (pAdapter->StaCfg.AuthMode >= Ndis802_11AuthModeWPA)
- return TRUE; // do nothing
-
- KeyLen = strlen(arg);
-
- switch (KeyLen)
- {
- case 5: //wep 40 Ascii type
- pAdapter->SharedKey[BSS0][1].KeyLen = KeyLen;
- memcpy(pAdapter->SharedKey[BSS0][1].Key, arg, KeyLen);
- CipherAlg = CIPHER_WEP64;
- DBGPRINT(RT_DEBUG_TRACE, ("Set_Key2_Proc::(Key2=%s and type=%s)\n", arg, "Ascii"));
- break;
- case 10: //wep 40 Hex type
- for(i=0; i < KeyLen; i++)
- {
- if( !isxdigit(*(arg+i)) )
- return FALSE; //Not Hex value;
- }
- pAdapter->SharedKey[BSS0][1].KeyLen = KeyLen / 2 ;
- AtoH(arg, pAdapter->SharedKey[BSS0][1].Key, KeyLen / 2);
- CipherAlg = CIPHER_WEP64;
- DBGPRINT(RT_DEBUG_TRACE, ("Set_Key2_Proc::(Key2=%s and type=%s)\n", arg, "Hex"));
- break;
- case 13: //wep 104 Ascii type
- pAdapter->SharedKey[BSS0][1].KeyLen = KeyLen;
- memcpy(pAdapter->SharedKey[BSS0][1].Key, arg, KeyLen);
- CipherAlg = CIPHER_WEP128;
- DBGPRINT(RT_DEBUG_TRACE, ("Set_Key2_Proc::(Key2=%s and type=%s)\n", arg, "Ascii"));
- break;
- case 26: //wep 104 Hex type
- for(i=0; i < KeyLen; i++)
- {
- if( !isxdigit(*(arg+i)) )
- return FALSE; //Not Hex value;
- }
- pAdapter->SharedKey[BSS0][1].KeyLen = KeyLen / 2 ;
- AtoH(arg, pAdapter->SharedKey[BSS0][1].Key, KeyLen / 2);
- CipherAlg = CIPHER_WEP128;
- DBGPRINT(RT_DEBUG_TRACE, ("Set_Key2_Proc::(Key2=%s and type=%s)\n", arg, "Hex"));
- break;
- default: //Invalid argument
- DBGPRINT(RT_DEBUG_TRACE, ("Set_Key2_Proc::Invalid argument (=%s)\n", arg));
- return FALSE;
- }
- pAdapter->SharedKey[BSS0][1].CipherAlg = CipherAlg;
-
- // Set keys (into ASIC)
- if (pAdapter->StaCfg.AuthMode >= Ndis802_11AuthModeWPA)
- ; // not support
- else // Old WEP stuff
- {
- AsicAddSharedKeyEntry(pAdapter,
- 0,
- 1,
- pAdapter->SharedKey[BSS0][1].CipherAlg,
- pAdapter->SharedKey[BSS0][1].Key,
- NULL,
- NULL);
- }
-
- return TRUE;
-}
-/*
- ==========================================================================
- Description:
- Set WEP KEY3
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_Key3_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg)
-{
- int KeyLen;
- int i;
- UCHAR CipherAlg=CIPHER_WEP64;
-
- if (pAdapter->StaCfg.AuthMode >= Ndis802_11AuthModeWPA)
- return TRUE; // do nothing
-
- KeyLen = strlen(arg);
-
- switch (KeyLen)
- {
- case 5: //wep 40 Ascii type
- pAdapter->SharedKey[BSS0][2].KeyLen = KeyLen;
- memcpy(pAdapter->SharedKey[BSS0][2].Key, arg, KeyLen);
- CipherAlg = CIPHER_WEP64;
- DBGPRINT(RT_DEBUG_TRACE, ("Set_Key3_Proc::(Key3=%s and type=Ascii)\n", arg));
- break;
- case 10: //wep 40 Hex type
- for(i=0; i < KeyLen; i++)
- {
- if( !isxdigit(*(arg+i)) )
- return FALSE; //Not Hex value;
- }
- pAdapter->SharedKey[BSS0][2].KeyLen = KeyLen / 2 ;
- AtoH(arg, pAdapter->SharedKey[BSS0][2].Key, KeyLen / 2);
- CipherAlg = CIPHER_WEP64;
- DBGPRINT(RT_DEBUG_TRACE, ("Set_Key3_Proc::(Key3=%s and type=Hex)\n", arg));
- break;
- case 13: //wep 104 Ascii type
- pAdapter->SharedKey[BSS0][2].KeyLen = KeyLen;
- memcpy(pAdapter->SharedKey[BSS0][2].Key, arg, KeyLen);
- CipherAlg = CIPHER_WEP128;
- DBGPRINT(RT_DEBUG_TRACE, ("Set_Key3_Proc::(Key3=%s and type=Ascii)\n", arg));
- break;
- case 26: //wep 104 Hex type
- for(i=0; i < KeyLen; i++)
- {
- if( !isxdigit(*(arg+i)) )
- return FALSE; //Not Hex value;
- }
- pAdapter->SharedKey[BSS0][2].KeyLen = KeyLen / 2 ;
- AtoH(arg, pAdapter->SharedKey[BSS0][2].Key, KeyLen / 2);
- CipherAlg = CIPHER_WEP128;
- DBGPRINT(RT_DEBUG_TRACE, ("Set_Key3_Proc::(Key3=%s and type=Hex)\n", arg));
- break;
- default: //Invalid argument
- DBGPRINT(RT_DEBUG_TRACE, ("Set_Key3_Proc::Invalid argument (=%s)\n", arg));
- return FALSE;
- }
- pAdapter->SharedKey[BSS0][2].CipherAlg = CipherAlg;
-
- // Set keys (into ASIC)
- if (pAdapter->StaCfg.AuthMode >= Ndis802_11AuthModeWPA)
- ; // not support
- else // Old WEP stuff
- {
- AsicAddSharedKeyEntry(pAdapter,
- 0,
- 2,
- pAdapter->SharedKey[BSS0][2].CipherAlg,
- pAdapter->SharedKey[BSS0][2].Key,
- NULL,
- NULL);
- }
-
- return TRUE;
-}
-/*
- ==========================================================================
- Description:
- Set WEP KEY4
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_Key4_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg)
-{
- int KeyLen;
- int i;
- UCHAR CipherAlg=CIPHER_WEP64;
-
- if (pAdapter->StaCfg.AuthMode >= Ndis802_11AuthModeWPA)
- return TRUE; // do nothing
-
- KeyLen = strlen(arg);
-
- switch (KeyLen)
- {
- case 5: //wep 40 Ascii type
- pAdapter->SharedKey[BSS0][3].KeyLen = KeyLen;
- memcpy(pAdapter->SharedKey[BSS0][3].Key, arg, KeyLen);
- CipherAlg = CIPHER_WEP64;
- DBGPRINT(RT_DEBUG_TRACE, ("Set_Key4_Proc::(Key4=%s and type=%s)\n", arg, "Ascii"));
- break;
- case 10: //wep 40 Hex type
- for(i=0; i < KeyLen; i++)
- {
- if( !isxdigit(*(arg+i)) )
- return FALSE; //Not Hex value;
- }
- pAdapter->SharedKey[BSS0][3].KeyLen = KeyLen / 2 ;
- AtoH(arg, pAdapter->SharedKey[BSS0][3].Key, KeyLen / 2);
- CipherAlg = CIPHER_WEP64;
- DBGPRINT(RT_DEBUG_TRACE, ("Set_Key4_Proc::(Key4=%s and type=%s)\n", arg, "Hex"));
- break;
- case 13: //wep 104 Ascii type
- pAdapter->SharedKey[BSS0][3].KeyLen = KeyLen;
- memcpy(pAdapter->SharedKey[BSS0][3].Key, arg, KeyLen);
- CipherAlg = CIPHER_WEP128;
- DBGPRINT(RT_DEBUG_TRACE, ("Set_Key4_Proc::(Key4=%s and type=%s)\n", arg, "Ascii"));
- break;
- case 26: //wep 104 Hex type
- for(i=0; i < KeyLen; i++)
- {
- if( !isxdigit(*(arg+i)) )
- return FALSE; //Not Hex value;
- }
- pAdapter->SharedKey[BSS0][3].KeyLen = KeyLen / 2 ;
- AtoH(arg, pAdapter->SharedKey[BSS0][3].Key, KeyLen / 2);
- CipherAlg = CIPHER_WEP128;
- DBGPRINT(RT_DEBUG_TRACE, ("Set_Key4_Proc::(Key4=%s and type=%s)\n", arg, "Hex"));
- break;
- default: //Invalid argument
- DBGPRINT(RT_DEBUG_TRACE, ("Set_Key4_Proc::Invalid argument (=%s)\n", arg));
- return FALSE;
- }
- pAdapter->SharedKey[BSS0][3].CipherAlg = CipherAlg;
-
- // Set keys (into ASIC)
- if (pAdapter->StaCfg.AuthMode >= Ndis802_11AuthModeWPA)
- ; // not support
- else // Old WEP stuff
- {
- AsicAddSharedKeyEntry(pAdapter,
- 0,
- 3,
- pAdapter->SharedKey[BSS0][3].CipherAlg,
- pAdapter->SharedKey[BSS0][3].Key,
- NULL,
- NULL);
- }
-
- return TRUE;
-}
-
-/*
- ==========================================================================
- Description:
- Set WPA PSK key
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_WPAPSK_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- int status;
-
- if ((pAd->StaCfg.AuthMode != Ndis802_11AuthModeWPAPSK) &&
- (pAd->StaCfg.AuthMode != Ndis802_11AuthModeWPA2PSK) &&
- (pAd->StaCfg.AuthMode != Ndis802_11AuthModeWPANone)
- )
- return TRUE; // do nothing
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_WPAPSK_Proc::(WPAPSK=%s)\n", arg));
-
- status = RT_CfgSetWPAPSKKey(pAd, arg, pAd->MlmeAux.Ssid, pAd->MlmeAux.SsidLen, pAd->StaCfg.PMK);
- if (status == FALSE)
- {
- DBGPRINT(RT_DEBUG_TRACE, ("Set_WPAPSK_Proc(): Set key failed!\n"));
- return FALSE;
- }
- NdisZeroMemory(pAd->StaCfg.WpaPassPhrase, 64);
- NdisMoveMemory(pAd->StaCfg.WpaPassPhrase, arg, strlen(arg));
- pAd->StaCfg.WpaPassPhraseLen = (UINT)strlen(arg);
-
-
-
- if(pAd->StaCfg.BssType == BSS_ADHOC &&
- pAd->StaCfg.AuthMode == Ndis802_11AuthModeWPANone)
- {
- pAd->StaCfg.WpaState = SS_NOTUSE;
- }
- else
- {
- // Start STA supplicant state machine
- pAd->StaCfg.WpaState = SS_START;
- }
-
- return TRUE;
-}
-
-/*
- ==========================================================================
- Description:
- Set Power Saving mode
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_PSMode_Proc(
- IN PRTMP_ADAPTER pAdapter,
- IN PSTRING arg)
-{
- if (pAdapter->StaCfg.BssType == BSS_INFRA)
- {
- if ((strcmp(arg, "Max_PSP") == 0) ||
- (strcmp(arg, "max_psp") == 0) ||
- (strcmp(arg, "MAX_PSP") == 0))
- {
- // do NOT turn on PSM bit here, wait until MlmeCheckPsmChange()
- // to exclude certain situations.
- if (pAdapter->StaCfg.bWindowsACCAMEnable == FALSE)
- pAdapter->StaCfg.WindowsPowerMode = Ndis802_11PowerModeMAX_PSP;
- pAdapter->StaCfg.WindowsBatteryPowerMode = Ndis802_11PowerModeMAX_PSP;
- OPSTATUS_SET_FLAG(pAdapter, fOP_STATUS_RECEIVE_DTIM);
- pAdapter->StaCfg.DefaultListenCount = 5;
-
- }
- else if ((strcmp(arg, "Fast_PSP") == 0) ||
- (strcmp(arg, "fast_psp") == 0) ||
- (strcmp(arg, "FAST_PSP") == 0))
- {
- // do NOT turn on PSM bit here, wait until MlmeCheckPsmChange()
- // to exclude certain situations.
- OPSTATUS_SET_FLAG(pAdapter, fOP_STATUS_RECEIVE_DTIM);
- if (pAdapter->StaCfg.bWindowsACCAMEnable == FALSE)
- pAdapter->StaCfg.WindowsPowerMode = Ndis802_11PowerModeFast_PSP;
- pAdapter->StaCfg.WindowsBatteryPowerMode = Ndis802_11PowerModeFast_PSP;
- pAdapter->StaCfg.DefaultListenCount = 3;
- }
- else if ((strcmp(arg, "Legacy_PSP") == 0) ||
- (strcmp(arg, "legacy_psp") == 0) ||
- (strcmp(arg, "LEGACY_PSP") == 0))
- {
- // do NOT turn on PSM bit here, wait until MlmeCheckPsmChange()
- // to exclude certain situations.
- OPSTATUS_SET_FLAG(pAdapter, fOP_STATUS_RECEIVE_DTIM);
- if (pAdapter->StaCfg.bWindowsACCAMEnable == FALSE)
- pAdapter->StaCfg.WindowsPowerMode = Ndis802_11PowerModeLegacy_PSP;
- pAdapter->StaCfg.WindowsBatteryPowerMode = Ndis802_11PowerModeLegacy_PSP;
- pAdapter->StaCfg.DefaultListenCount = 3;
- }
- else
- {
- //Default Ndis802_11PowerModeCAM
- // clear PSM bit immediately
- RTMP_SET_PSM_BIT(pAdapter, PWR_ACTIVE);
- OPSTATUS_SET_FLAG(pAdapter, fOP_STATUS_RECEIVE_DTIM);
- if (pAdapter->StaCfg.bWindowsACCAMEnable == FALSE)
- pAdapter->StaCfg.WindowsPowerMode = Ndis802_11PowerModeCAM;
- pAdapter->StaCfg.WindowsBatteryPowerMode = Ndis802_11PowerModeCAM;
- }
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_PSMode_Proc::(PSMode=%ld)\n", pAdapter->StaCfg.WindowsPowerMode));
- }
- else
- return FALSE;
-
-
- return TRUE;
-}
-
-/*
- ==========================================================================
- Description:
- Set WpaSupport flag.
- Value:
- 0: Driver ignore wpa_supplicant.
- 1: wpa_supplicant initiates scanning and AP selection.
- 2: driver takes care of scanning, AP selection, and IEEE 802.11 association parameters.
- Return:
- TRUE if all parameters are OK, FALSE otherwise
- ==========================================================================
-*/
-INT Set_Wpa_Support(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
-
- if ( simple_strtol(arg, 0, 10) == 0)
- pAd->StaCfg.WpaSupplicantUP = WPA_SUPPLICANT_DISABLE;
- else if ( simple_strtol(arg, 0, 10) == 1)
- pAd->StaCfg.WpaSupplicantUP = WPA_SUPPLICANT_ENABLE;
- else if ( simple_strtol(arg, 0, 10) == 2)
- pAd->StaCfg.WpaSupplicantUP = WPA_SUPPLICANT_ENABLE_WITH_WEB_UI;
- else
- pAd->StaCfg.WpaSupplicantUP = WPA_SUPPLICANT_DISABLE;
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_Wpa_Support::(WpaSupplicantUP=%d)\n", pAd->StaCfg.WpaSupplicantUP));
-
- return TRUE;
-}
-
-INT Set_TGnWifiTest_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- if (simple_strtol(arg, 0, 10) == 0)
- pAd->StaCfg.bTGnWifiTest = FALSE;
- else
- pAd->StaCfg.bTGnWifiTest = TRUE;
-
- DBGPRINT(RT_DEBUG_TRACE, ("IF Set_TGnWifiTest_Proc::(bTGnWifiTest=%d)\n", pAd->StaCfg.bTGnWifiTest));
- return TRUE;
-}
-
-
-
-
-INT Show_Adhoc_MacTable_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING extra)
-{
- INT i;
-
- sprintf(extra, "\n");
-
- sprintf(extra + strlen(extra), "HT Operating Mode : %d\n", pAd->CommonCfg.AddHTInfo.AddHtInfo2.OperaionMode);
-
- sprintf(extra + strlen(extra), "\n%-19s%-4s%-4s%-7s%-7s%-7s%-10s%-6s%-6s%-6s%-6s\n",
- "MAC", "AID", "BSS", "RSSI0", "RSSI1", "RSSI2", "PhMd", "BW", "MCS", "SGI", "STBC");
-
- for (i=1; i<MAX_LEN_OF_MAC_TABLE; i++)
- {
- PMAC_TABLE_ENTRY pEntry = &pAd->MacTab.Content[i];
-
- if (strlen(extra) > (IW_PRIV_SIZE_MASK - 30))
- break;
- if ((pEntry->ValidAsCLI || pEntry->ValidAsApCli) && (pEntry->Sst == SST_ASSOC))
- {
- sprintf(extra + strlen(extra), "%02X:%02X:%02X:%02X:%02X:%02X ",
- pEntry->Addr[0], pEntry->Addr[1], pEntry->Addr[2],
- pEntry->Addr[3], pEntry->Addr[4], pEntry->Addr[5]);
- sprintf(extra + strlen(extra), "%-4d", (int)pEntry->Aid);
- sprintf(extra + strlen(extra), "%-4d", (int)pEntry->apidx);
- sprintf(extra + strlen(extra), "%-7d", pEntry->RssiSample.AvgRssi0);
- sprintf(extra + strlen(extra), "%-7d", pEntry->RssiSample.AvgRssi1);
- sprintf(extra + strlen(extra), "%-7d", pEntry->RssiSample.AvgRssi2);
- sprintf(extra + strlen(extra), "%-10s", GetPhyMode(pEntry->HTPhyMode.field.MODE));
- sprintf(extra + strlen(extra), "%-6s", GetBW(pEntry->HTPhyMode.field.BW));
- sprintf(extra + strlen(extra), "%-6d", pEntry->HTPhyMode.field.MCS);
- sprintf(extra + strlen(extra), "%-6d", pEntry->HTPhyMode.field.ShortGI);
- sprintf(extra + strlen(extra), "%-6d", pEntry->HTPhyMode.field.STBC);
- sprintf(extra + strlen(extra), "%-10d, %d, %d%%\n", pEntry->DebugFIFOCount, pEntry->DebugTxCount,
- (pEntry->DebugTxCount) ? ((pEntry->DebugTxCount-pEntry->DebugFIFOCount)*100/pEntry->DebugTxCount) : 0);
- sprintf(extra, "%s\n", extra);
- }
- }
-
- return TRUE;
-}
-
-
-INT Set_BeaconLostTime_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- ULONG ltmp = (ULONG)simple_strtol(arg, 0, 10);
-
- if ((ltmp != 0) && (ltmp <= 60))
- pAd->StaCfg.BeaconLostTime = (ltmp * OS_HZ);
-
- DBGPRINT(RT_DEBUG_TRACE, ("IF Set_BeaconLostTime_Proc::(BeaconLostTime=%ld)\n", pAd->StaCfg.BeaconLostTime));
- return TRUE;
-}
-
-INT Set_AutoRoaming_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- if (simple_strtol(arg, 0, 10) == 0)
- pAd->StaCfg.bAutoRoaming = FALSE;
- else
- pAd->StaCfg.bAutoRoaming = TRUE;
-
- DBGPRINT(RT_DEBUG_TRACE, ("IF Set_AutoRoaming_Proc::(bAutoRoaming=%d)\n", pAd->StaCfg.bAutoRoaming));
- return TRUE;
-}
-
-
-/*
- ==========================================================================
- Description:
- Issue a site survey command to driver
- Arguments:
- pAdapter Pointer to our adapter
- wrq Pointer to the ioctl argument
-
- Return Value:
- None
-
- Note:
- Usage:
- 1.) iwpriv ra0 set site_survey
- ==========================================================================
-*/
-INT Set_SiteSurvey_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- NDIS_802_11_SSID Ssid;
-
- //check if the interface is down
- if (!RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_INTERRUPT_IN_USE))
- {
- DBGPRINT(RT_DEBUG_TRACE, ("INFO::Network is down!\n"));
- return -ENETDOWN;
- }
-
- if (MONITOR_ON(pAd))
- {
- DBGPRINT(RT_DEBUG_TRACE, ("!!! Driver is in Monitor Mode now !!!\n"));
- return -EINVAL;
- }
-
- RTMPZeroMemory(&Ssid, sizeof(NDIS_802_11_SSID));
- Ssid.SsidLength = 0;
- if ((arg != NULL) &&
- (strlen(arg) <= MAX_LEN_OF_SSID))
- {
- RTMPMoveMemory(Ssid.Ssid, arg, strlen(arg));
- Ssid.SsidLength = strlen(arg);
- }
-
- pAd->StaCfg.bScanReqIsFromWebUI = TRUE;
-
- if (pAd->Mlme.CntlMachine.CurrState != CNTL_IDLE)
- {
- RTMP_MLME_RESET_STATE_MACHINE(pAd);
- DBGPRINT(RT_DEBUG_TRACE, ("!!! MLME busy, reset MLME state machine !!!\n"));
- }
-
- // tell CNTL state machine to call NdisMSetInformationComplete() after completing
- // this request, because this request is initiated by NDIS.
- pAd->MlmeAux.CurrReqIsFromNdis = FALSE;
- // Reset allowed scan retries
- pAd->StaCfg.ScanCnt = 0;
- NdisGetSystemUpTime(&pAd->StaCfg.LastScanTime);
-
- MlmeEnqueue(pAd,
- MLME_CNTL_STATE_MACHINE,
- OID_802_11_BSSID_LIST_SCAN,
- Ssid.SsidLength,
- Ssid.Ssid);
-
- RTMP_MLME_HANDLER(pAd);
-
- DBGPRINT(RT_DEBUG_TRACE, ("Set_SiteSurvey_Proc\n"));
-
- return TRUE;
-}
-
-INT Set_ForceTxBurst_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- if (simple_strtol(arg, 0, 10) == 0)
- pAd->StaCfg.bForceTxBurst = FALSE;
- else
- pAd->StaCfg.bForceTxBurst = TRUE;
-
- DBGPRINT(RT_DEBUG_TRACE, ("IF Set_ForceTxBurst_Proc::(bForceTxBurst=%d)\n", pAd->StaCfg.bForceTxBurst));
- return TRUE;
-}
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 06/12] Staging: rt28x0: remove support for private driver parameters
2009-10-21 20:43 [PATCH 00/12] Staging: rt28x0 cleanups Bartlomiej Zolnierkiewicz
` (4 preceding siblings ...)
2009-10-21 20:44 ` [PATCH 05/12] Staging: rt28x0: remove private WEXT handlers Bartlomiej Zolnierkiewicz
@ 2009-10-21 20:44 ` Bartlomiej Zolnierkiewicz
2009-10-21 20:44 ` [PATCH 07/12] Staging: rt28x0: remove optional loading of EEPROM from file in eFuse mode Bartlomiej Zolnierkiewicz
` (5 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2009-10-21 20:44 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: devel, Bartlomiej Zolnierkiewicz, linux-kernel
From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Subject: [PATCH] Staging: rt28x0: remove support for private driver parameters
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
drivers/staging/rt2860/Makefile | 1
drivers/staging/rt2860/common/cmm_info.c | 2
drivers/staging/rt2860/common/rtmp_init.c | 9 --
drivers/staging/rt2860/rt_profile.c | 95 ------------------------------
drivers/staging/rt2860/rtmp.h | 3
drivers/staging/rt2870/Makefile | 1
6 files changed, 1 insertion(+), 110 deletions(-)
Index: b/drivers/staging/rt2860/Makefile
===================================================================
--- a/drivers/staging/rt2860/Makefile
+++ b/drivers/staging/rt2860/Makefile
@@ -38,7 +38,6 @@ rt2860sta-objs := \
sta/connect.o \
sta/wpa.o \
rt_linux.o \
- rt_profile.o \
rt_main_dev.o \
sta_ioctl.o \
common/ba_action.o \
Index: b/drivers/staging/rt2860/common/rtmp_init.c
===================================================================
--- a/drivers/staging/rt2860/common/rtmp_init.c
+++ b/drivers/staging/rt2860/common/rtmp_init.c
@@ -3439,16 +3439,7 @@ int rt28xx_init(
goto err3;
}
- // Read parameters from Config File
- Status = RTMPReadParametersHook(pAd);
-
DBGPRINT(RT_DEBUG_OFF, ("1. Phy Mode = %d\n", pAd->CommonCfg.PhyMode));
- if (Status != NDIS_STATUS_SUCCESS)
- {
- DBGPRINT_ERR(("NICReadRegParameters failed, Status[=0x%08x]\n",Status));
-// goto err4;
- Status = 0;
- }
#ifdef RTMP_MAC_USB
pAd->CommonCfg.bMultipleIRP = FALSE;
Index: b/drivers/staging/rt2860/rt_profile.c
===================================================================
--- a/drivers/staging/rt2860/rt_profile.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- *************************************************************************
- * Ralink Tech Inc.
- * 5F., No.36, Taiyuan St., Jhubei City,
- * Hsinchu County 302,
- * Taiwan, R.O.C.
- *
- * (c) Copyright 2002-2007, Ralink Technology, Inc.
- *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
- * *
- *************************************************************************
-
- Module Name:
- rt_profile.c
-
- Abstract:
-
- Revision History:
- Who When What
- --------- ---------- ----------------------------------------------
- */
-
-#include "rt_config.h"
-
-
-NDIS_STATUS RTMPReadParametersHook(
- IN PRTMP_ADAPTER pAd)
-{
- PSTRING src = NULL;
- RTMP_OS_FD srcf;
- RTMP_OS_FS_INFO osFSInfo;
- INT retval = NDIS_STATUS_FAILURE;
- PSTRING buffer;
-
- buffer = kmalloc(MAX_INI_BUFFER_SIZE, MEM_ALLOC_FLAG);
- if(buffer == NULL)
- return NDIS_STATUS_FAILURE;
- memset(buffer, 0x00, MAX_INI_BUFFER_SIZE);
-
- {
- {
- src = STA_PROFILE_PATH;
- }
- }
-
- if (src && *src)
- {
- RtmpOSFSInfoChange(&osFSInfo, TRUE);
- srcf = RtmpOSFileOpen(src, O_RDONLY, 0);
- if (IS_FILE_OPEN_ERR(srcf))
- {
- DBGPRINT(RT_DEBUG_ERROR, ("Open file \"%s\" failed!\n", src));
- }
- else
- {
- retval =RtmpOSFileRead(srcf, buffer, MAX_INI_BUFFER_SIZE);
- if (retval > 0)
- {
- RTMPSetProfileParameters(pAd, buffer);
- retval = NDIS_STATUS_SUCCESS;
- }
- else
- DBGPRINT(RT_DEBUG_ERROR, ("Read file \"%s\" failed(errCode=%d)!\n", src, retval));
-
- retval = RtmpOSFileClose(srcf);
- if ( retval != 0)
- {
- retval = NDIS_STATUS_FAILURE;
- DBGPRINT(RT_DEBUG_ERROR, ("Close file \"%s\" failed(errCode=%d)!\n", src, retval));
- }
- }
-
- RtmpOSFSInfoChange(&osFSInfo, FALSE);
- }
-
- kfree(buffer);
-
- return (retval);
-
-}
-
Index: b/drivers/staging/rt2860/rtmp.h
===================================================================
--- a/drivers/staging/rt2860/rtmp.h
+++ b/drivers/staging/rt2860/rtmp.h
@@ -2453,9 +2453,6 @@ NDIS_STATUS RTMPAllocAdapterBlock(
NDIS_STATUS RTMPAllocTxRxRingMemory(
IN PRTMP_ADAPTER pAd);
-NDIS_STATUS RTMPReadParametersHook(
- IN PRTMP_ADAPTER pAd);
-
NDIS_STATUS RTMPSetProfileParameters(
IN RTMP_ADAPTER *pAd,
IN PSTRING pBuffer);
Index: b/drivers/staging/rt2870/Makefile
===================================================================
--- a/drivers/staging/rt2870/Makefile
+++ b/drivers/staging/rt2870/Makefile
@@ -39,7 +39,6 @@ rt2870sta-objs := \
sta/connect.o \
sta/wpa.o \
rt_linux.o \
- rt_profile.o \
rt_main_dev.o \
sta_ioctl.o \
common/ba_action.o \
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 07/12] Staging: rt28x0: remove optional loading of EEPROM from file in eFuse mode
2009-10-21 20:43 [PATCH 00/12] Staging: rt28x0 cleanups Bartlomiej Zolnierkiewicz
` (5 preceding siblings ...)
2009-10-21 20:44 ` [PATCH 06/12] Staging: rt28x0: remove support for private driver parameters Bartlomiej Zolnierkiewicz
@ 2009-10-21 20:44 ` Bartlomiej Zolnierkiewicz
2009-10-21 20:44 ` [PATCH 08/12] Staging: rt28x0: fix some build warnings Bartlomiej Zolnierkiewicz
` (4 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2009-10-21 20:44 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: devel, Bartlomiej Zolnierkiewicz, linux-kernel
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 25896 bytes --]
From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Subject: [PATCH] Staging: rt28x0: remove optional loading of EEPROM from file in eFuse mode
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
drivers/staging/rt2860/common/cmm_profile.c | 10
drivers/staging/rt2860/common/ee_efuse.c | 788 ----------------------------
drivers/staging/rt2860/common/eeprom.c | 3
drivers/staging/rt2860/common/rtmp_init.c | 9
drivers/staging/rt2860/rt_linux.c | 20
drivers/staging/rt2860/rtmp.h | 21
6 files changed, 1 insertion(+), 850 deletions(-)
Index: b/drivers/staging/rt2860/common/cmm_profile.c
===================================================================
--- a/drivers/staging/rt2860/common/cmm_profile.c
+++ b/drivers/staging/rt2860/common/cmm_profile.c
@@ -1194,16 +1194,6 @@ NDIS_STATUS RTMPSetProfileParameters(
retval = RT_CfgSetCountryRegion(pAd, tmpbuf, BAND_5G);
DBGPRINT(RT_DEBUG_TRACE, ("CountryRegionABand=%d\n", pAd->CommonCfg.CountryRegionForABand));
}
-#ifdef RTMP_EFUSE_SUPPORT
-#ifdef RT30xx
- //EfuseBufferMode
- if(RTMPGetKeyParameter("EfuseBufferMode", tmpbuf, 25, pBuffer, TRUE))
- {
- pAd->bEEPROMFile = (UCHAR) simple_strtol(tmpbuf, 0, 10);
- DBGPRINT(RT_DEBUG_TRACE, ("EfuseBufferMode=%d\n", pAd->bUseEfuse));
- }
-#endif // RT30xx //
-#endif // RTMP_EFUSE_SUPPORT //
//CountryCode
if(RTMPGetKeyParameter("CountryCode", tmpbuf, 25, pBuffer, TRUE))
{
Index: b/drivers/staging/rt2860/common/ee_efuse.c
===================================================================
--- a/drivers/staging/rt2860/common/ee_efuse.c
+++ b/drivers/staging/rt2860/common/ee_efuse.c
@@ -67,21 +67,6 @@ typedef union _EFUSE_CTRL_STRUC {
UINT32 word;
} EFUSE_CTRL_STRUC, *PEFUSE_CTRL_STRUC;
-static VOID eFuseWritePhysical(
- IN PRTMP_ADAPTER pAd,
- PUSHORT lpInBuffer,
- ULONG nInBufferSize,
- PUCHAR lpOutBuffer,
- ULONG nOutBufferSize);
-
-
-static NTSTATUS eFuseWriteRegistersFromBin(
- IN PRTMP_ADAPTER pAd,
- IN USHORT Offset,
- IN USHORT Length,
- IN USHORT* pData);
-
-
/*
========================================================================
@@ -281,164 +266,6 @@ static VOID eFuseReadPhysical(
========================================================================
*/
-static VOID eFusePhysicalWriteRegisters(
- IN PRTMP_ADAPTER pAd,
- IN USHORT Offset,
- IN USHORT Length,
- OUT USHORT* pData)
-{
- EFUSE_CTRL_STRUC eFuseCtrlStruc;
- int i;
- USHORT efuseDataOffset;
- UINT32 data, eFuseDataBuffer[4];
-
- //Step0. Write 16-byte of data to EFUSE_DATA0-3 (0x590-0x59C), where EFUSE_DATA0 is the LSB DW, EFUSE_DATA3 is the MSB DW.
-
- /////////////////////////////////////////////////////////////////
- //read current values of 16-byte block
- RTMP_IO_READ32(pAd, EFUSE_CTRL, &eFuseCtrlStruc.word);
-
- //Step0. Write 10-bit of address to EFSROM_AIN (0x580, bit25:bit16). The address must be 16-byte alignment.
- eFuseCtrlStruc.field.EFSROM_AIN = Offset & 0xfff0;
-
- //Step1. Write EFSROM_MODE (0x580, bit7:bit6) to 1.
- eFuseCtrlStruc.field.EFSROM_MODE = 1;
-
- //Step2. Write EFSROM_KICK (0x580, bit30) to 1 to kick-off physical read procedure.
- eFuseCtrlStruc.field.EFSROM_KICK = 1;
-
- NdisMoveMemory(&data, &eFuseCtrlStruc, 4);
- RTMP_IO_WRITE32(pAd, EFUSE_CTRL, data);
-
- //Step3. Polling EFSROM_KICK(0x580, bit30) until it become 0 again.
- i = 0;
- while(i < 500)
- {
- RTMP_IO_READ32(pAd, EFUSE_CTRL, &eFuseCtrlStruc.word);
-
- if(eFuseCtrlStruc.field.EFSROM_KICK == 0)
- break;
- RTMPusecDelay(2);
- i++;
- }
-
- //Step4. Read 16-byte of data from EFUSE_DATA0-3 (0x59C-0x590)
- efuseDataOffset = EFUSE_DATA3;
- for(i=0; i< 4; i++)
- {
- RTMP_IO_READ32(pAd, efuseDataOffset, (PUINT32) &eFuseDataBuffer[i]);
- efuseDataOffset -= 4;
- }
-
- //Update the value, the offset is multiple of 2, length is 2
- efuseDataOffset = (Offset & 0xc) >> 2;
- data = pData[0] & 0xffff;
- //The offset should be 0x***10 or 0x***00
- if((Offset % 4) != 0)
- {
- eFuseDataBuffer[efuseDataOffset] = (eFuseDataBuffer[efuseDataOffset] & 0xffff) | (data << 16);
- }
- else
- {
- eFuseDataBuffer[efuseDataOffset] = (eFuseDataBuffer[efuseDataOffset] & 0xffff0000) | data;
- }
-
- efuseDataOffset = EFUSE_DATA3;
- for(i=0; i< 4; i++)
- {
- RTMP_IO_WRITE32(pAd, efuseDataOffset, eFuseDataBuffer[i]);
- efuseDataOffset -= 4;
- }
- /////////////////////////////////////////////////////////////////
-
- //Step1. Write 10-bit of address to EFSROM_AIN (0x580, bit25:bit16). The address must be 16-byte alignment.
-
- RTMP_IO_READ32(pAd, EFUSE_CTRL, &eFuseCtrlStruc.word);
-
- eFuseCtrlStruc.field.EFSROM_AIN = Offset & 0xfff0;
-
- //Step2. Write EFSROM_MODE (0x580, bit7:bit6) to 3.
- eFuseCtrlStruc.field.EFSROM_MODE = 3;
-
- //Step3. Write EFSROM_KICK (0x580, bit30) to 1 to kick-off physical write procedure.
- eFuseCtrlStruc.field.EFSROM_KICK = 1;
-
- NdisMoveMemory(&data, &eFuseCtrlStruc, 4);
- RTMP_IO_WRITE32(pAd, EFUSE_CTRL, data);
-
- //Step4. Polling EFSROM_KICK(0x580, bit30) until it become 0 again. It¡¦s done.
- i = 0;
-
- while(i < 500)
- {
- RTMP_IO_READ32(pAd, EFUSE_CTRL, &eFuseCtrlStruc.word);
-
- if(eFuseCtrlStruc.field.EFSROM_KICK == 0)
- break;
-
- RTMPusecDelay(2);
- i++;
- }
-}
-
-/*
-========================================================================
-
- Routine Description:
-
- Arguments:
-
- Return Value:
-
- Note:
-
-========================================================================
-*/
-static VOID eFuseWritePhysical(
- IN PRTMP_ADAPTER pAd,
- PUSHORT lpInBuffer,
- ULONG nInBufferSize,
- PUCHAR lpOutBuffer,
- ULONG nOutBufferSize
-)
-{
- USHORT* pInBuf = (USHORT*)lpInBuffer;
- int i;
- //USHORT* pOutBuf = (USHORT*)ioBuffer;
- USHORT Offset = pInBuf[0]; // addr
- USHORT Length = pInBuf[1]; // length
- USHORT* pValueX = &pInBuf[2]; // value ...
-
- DBGPRINT(RT_DEBUG_TRACE, ("eFuseWritePhysical Offset=0x%x, length=%d\n", Offset, Length));
-
- {
- // Little-endian S | S Big-endian
- // addr 3 2 1 0 | 0 1 2 3
- // Ori-V D C B A | A B C D
- // After swapping
- // D C B A | D C B A
- // Both the little and big-endian use the same sequence to write data.
- // Therefore, we only need swap data when read the data.
- for (i=0; i<Length; i+=2)
- {
- eFusePhysicalWriteRegisters(pAd, Offset+i, 2, &pValueX[i/2]);
- }
- }
-}
-
-/*
-========================================================================
-
- Routine Description:
-
- Arguments:
-
- Return Value:
-
- Note:
-
-========================================================================
-*/
INT set_eFuseGetFreeBlockCount_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg)
@@ -492,442 +319,12 @@ USHORT InBuf[3];
return TRUE;
}
-
-INT set_eFuseLoadFromBin_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- PSTRING src;
- RTMP_OS_FD srcf;
- RTMP_OS_FS_INFO osfsInfo;
- INT retval, memSize;
- PSTRING buffer, memPtr;
- INT i = 0,j=0,k=1;
- USHORT *PDATA;
- USHORT DATA;
-
- memSize = 128 + MAX_EEPROM_BIN_FILE_SIZE + sizeof(USHORT) * 8;
- memPtr = kmalloc(memSize, MEM_ALLOC_FLAG);
- if (memPtr == NULL)
- return FALSE;
-
- NdisZeroMemory(memPtr, memSize);
- src = memPtr; // kmalloc(128, MEM_ALLOC_FLAG);
- buffer = src + 128; // kmalloc(MAX_EEPROM_BIN_FILE_SIZE, MEM_ALLOC_FLAG);
- PDATA = (USHORT*)(buffer + MAX_EEPROM_BIN_FILE_SIZE); // kmalloc(sizeof(USHORT)*8,MEM_ALLOC_FLAG);
-
- if(strlen(arg)>0)
- NdisMoveMemory(src, arg, strlen(arg));
- else
- NdisMoveMemory(src, EFUSE_EEPROM_DEFULT_FILE, strlen(EFUSE_EEPROM_DEFULT_FILE));
- DBGPRINT(RT_DEBUG_TRACE, ("FileName=%s\n",src));
-
- RtmpOSFSInfoChange(&osfsInfo, TRUE);
-
- srcf = RtmpOSFileOpen(src, O_RDONLY, 0);
- if (IS_FILE_OPEN_ERR(srcf))
- {
- DBGPRINT(RT_DEBUG_ERROR, ("--> Error opening file %s\n", src));
- retval = FALSE;
- goto recoverFS;
- }
- else
- {
- // The object must have a read method
- while(RtmpOSFileRead(srcf, &buffer[i], 1)==1)
- {
- i++;
- if(i>MAX_EEPROM_BIN_FILE_SIZE)
- {
- DBGPRINT(RT_DEBUG_ERROR, ("--> Error reading file %s, file size too large[>%d]\n", src, MAX_EEPROM_BIN_FILE_SIZE));
- retval = FALSE;
- goto closeFile;
- }
- }
-
- retval = RtmpOSFileClose(srcf);
- if (retval)
- DBGPRINT(RT_DEBUG_TRACE, ("--> Error closing file %s\n", src));
- }
-
-
- RtmpOSFSInfoChange(&osfsInfo, FALSE);
-
- for(j=0;j<i;j++)
- {
- DBGPRINT(RT_DEBUG_TRACE, ("%02X ",buffer[j]&0xff));
- if((j+1)%2==0)
- PDATA[j/2%8]=((buffer[j]<<8)&0xff00)|(buffer[j-1]&0xff);
- if(j%16==0)
- {
- k=buffer[j];
- }
- else
- {
- k&=buffer[j];
- if((j+1)%16==0)
- {
- DBGPRINT(RT_DEBUG_TRACE, (" result=%02X,blk=%02x\n",k,j/16));
- if(k!=0xff)
- eFuseWriteRegistersFromBin(pAd,(USHORT)j-15, 16, PDATA);
- else
- {
- if(eFuseReadRegisters(pAd,j, 2,(PUSHORT)&DATA)!=0x3f)
- eFuseWriteRegistersFromBin(pAd,(USHORT)j-15, 16, PDATA);
- }
- /*
- for(l=0;l<8;l++)
- printk("%04x ",PDATA[l]);
- printk("\n");
- */
- NdisZeroMemory(PDATA,16);
- }
- }
- }
-
- return TRUE;
-
-closeFile:
- if (srcf)
- RtmpOSFileClose(srcf);
-
-recoverFS:
- RtmpOSFSInfoChange(&osfsInfo, FALSE);
-
-
- if (memPtr)
- kfree(memPtr);
-
- return retval;
-}
-
-
-static NTSTATUS eFuseWriteRegistersFromBin(
- IN PRTMP_ADAPTER pAd,
- IN USHORT Offset,
- IN USHORT Length,
- IN USHORT* pData)
-{
- USHORT i;
- USHORT eFuseData;
- USHORT LogicalAddress, BlkNum = 0xffff;
- UCHAR EFSROM_AOUT,Loop=0;
- EFUSE_CTRL_STRUC eFuseCtrlStruc;
- USHORT efuseDataOffset;
- UINT32 data,tempbuffer;
- USHORT addr,tmpaddr, InBuf[3], tmpOffset;
- UINT32 buffer[4];
- BOOLEAN bWriteSuccess = TRUE;
- BOOLEAN bNotWrite=TRUE;
- BOOLEAN bAllocateNewBlk=TRUE;
-
- DBGPRINT(RT_DEBUG_TRACE, ("eFuseWriteRegistersFromBin Offset=%x, pData=%04x:%04x:%04x:%04x\n", Offset, *pData,*(pData+1),*(pData+2),*(pData+3)));
-
- do
- {
- //Step 0. find the entry in the mapping table
- //The address of EEPROM is 2-bytes alignment.
- //The last bit is used for alignment, so it must be 0.
- Loop++;
- tmpOffset = Offset & 0xfffe;
- EFSROM_AOUT = eFuseReadRegisters(pAd, tmpOffset, 2, &eFuseData);
-
- if( EFSROM_AOUT == 0x3f)
- { //find available logical address pointer
- //the logical address does not exist, find an empty one
- //from the first address of block 45=16*45=0x2d0 to the last address of block 47
- //==>48*16-3(reserved)=2FC
- bAllocateNewBlk=TRUE;
- for (i=EFUSE_USAGE_MAP_START; i<=EFUSE_USAGE_MAP_END; i+=2)
- {
- //Retrive the logical block nubmer form each logical address pointer
- //It will access two logical address pointer each time.
- eFusePhysicalReadRegisters(pAd, i, 2, &LogicalAddress);
- if( (LogicalAddress & 0xff) == 0)
- {//Not used logical address pointer
- BlkNum = i-EFUSE_USAGE_MAP_START;
- break;
- }
- else if(( (LogicalAddress >> 8) & 0xff) == 0)
- {//Not used logical address pointer
- if (i != EFUSE_USAGE_MAP_END)
- {
- BlkNum = i-EFUSE_USAGE_MAP_START+1;
- }
- break;
- }
- }
- }
- else
- {
- bAllocateNewBlk=FALSE;
- BlkNum = EFSROM_AOUT;
- }
-
- DBGPRINT(RT_DEBUG_TRACE, ("eFuseWriteRegisters BlkNum = %d \n", BlkNum));
-
- if(BlkNum == 0xffff)
- {
- DBGPRINT(RT_DEBUG_TRACE, ("eFuseWriteRegisters: out of free E-fuse space!!!\n"));
- return FALSE;
- }
- //Step 1.1.0
- //If the block is not existing in mapping table, create one
- //and write down the 16-bytes data to the new block
- if(bAllocateNewBlk)
- {
- DBGPRINT(RT_DEBUG_TRACE, ("Allocate New Blk\n"));
- efuseDataOffset = EFUSE_DATA3;
- for(i=0; i< 4; i++)
- {
- DBGPRINT(RT_DEBUG_TRACE, ("Allocate New Blk, Data%d=%04x%04x\n",3-i,pData[2*i+1],pData[2*i]));
- tempbuffer=((pData[2*i+1]<<16)&0xffff0000)|pData[2*i];
-
-
- RTMP_IO_WRITE32(pAd, efuseDataOffset,tempbuffer);
- efuseDataOffset -= 4;
-
- }
- /////////////////////////////////////////////////////////////////
-
- //Step1.1.1. Write 10-bit of address to EFSROM_AIN (0x580, bit25:bit16). The address must be 16-byte alignment.
- RTMP_IO_READ32(pAd, EFUSE_CTRL, &eFuseCtrlStruc.word);
- eFuseCtrlStruc.field.EFSROM_AIN = BlkNum* 0x10 ;
-
- //Step1.1.2. Write EFSROM_MODE (0x580, bit7:bit6) to 3.
- eFuseCtrlStruc.field.EFSROM_MODE = 3;
-
- //Step1.1.3. Write EFSROM_KICK (0x580, bit30) to 1 to kick-off physical write procedure.
- eFuseCtrlStruc.field.EFSROM_KICK = 1;
-
- NdisMoveMemory(&data, &eFuseCtrlStruc, 4);
-
- RTMP_IO_WRITE32(pAd, EFUSE_CTRL, data);
-
- //Step1.1.4. Polling EFSROM_KICK(0x580, bit30) until it become 0 again. It¡¦s done.
- i = 0;
- while(i < 100)
- {
- RTMP_IO_READ32(pAd, EFUSE_CTRL, (PUINT32) &eFuseCtrlStruc);
-
- if(eFuseCtrlStruc.field.EFSROM_KICK == 0)
- break;
-
- RTMPusecDelay(2);
- i++;
- }
-
- }
- else
- { //Step1.2.
- //If the same logical number is existing, check if the writting data and the data
- //saving in this block are the same.
- /////////////////////////////////////////////////////////////////
- //read current values of 16-byte block
- RTMP_IO_READ32(pAd, EFUSE_CTRL, &eFuseCtrlStruc.word);
-
- //Step1.2.0. Write 10-bit of address to EFSROM_AIN (0x580, bit25:bit16). The address must be 16-byte alignment.
- eFuseCtrlStruc.field.EFSROM_AIN = Offset & 0xfff0;
-
- //Step1.2.1. Write EFSROM_MODE (0x580, bit7:bit6) to 1.
- eFuseCtrlStruc.field.EFSROM_MODE = 0;
-
- //Step1.2.2. Write EFSROM_KICK (0x580, bit30) to 1 to kick-off physical read procedure.
- eFuseCtrlStruc.field.EFSROM_KICK = 1;
-
- NdisMoveMemory(&data, &eFuseCtrlStruc, 4);
- RTMP_IO_WRITE32(pAd, EFUSE_CTRL, data);
-
- //Step1.2.3. Polling EFSROM_KICK(0x580, bit30) until it become 0 again.
- i = 0;
- while(i < 500)
- {
- RTMP_IO_READ32(pAd, EFUSE_CTRL, (PUINT32) &eFuseCtrlStruc);
-
- if(eFuseCtrlStruc.field.EFSROM_KICK == 0)
- break;
- RTMPusecDelay(2);
- i++;
- }
-
- //Step1.2.4. Read 16-byte of data from EFUSE_DATA0-3 (0x59C-0x590)
- efuseDataOffset = EFUSE_DATA3;
- for(i=0; i< 4; i++)
- {
- RTMP_IO_READ32(pAd, efuseDataOffset, (PUINT32) &buffer[i]);
- efuseDataOffset -= 4;
- }
- //Step1.2.5. Check if the data of efuse and the writing data are the same.
- for(i =0; i<4; i++)
- {
- tempbuffer=((pData[2*i+1]<<16)&0xffff0000)|pData[2*i];
- DBGPRINT(RT_DEBUG_TRACE, ("buffer[%d]=%x,pData[%d]=%x,pData[%d]=%x,tempbuffer=%x\n",i,buffer[i],2*i,pData[2*i],2*i+1,pData[2*i+1],tempbuffer));
-
- if(((buffer[i]&0xffff0000)==(pData[2*i+1]<<16))&&((buffer[i]&0xffff)==pData[2*i]))
- bNotWrite&=TRUE;
- else
- {
- bNotWrite&=FALSE;
- break;
- }
- }
- if(!bNotWrite)
- {
- printk("The data is not the same\n");
-
- for(i =0; i<8; i++)
- {
- addr = BlkNum * 0x10 ;
-
- InBuf[0] = addr+2*i;
- InBuf[1] = 2;
- InBuf[2] = pData[i];
-
- eFuseWritePhysical(pAd, &InBuf[0], 6, NULL, 2);
- }
-
- }
- else
- return TRUE;
- }
-
-
-
- //Step 2. Write mapping table
- addr = EFUSE_USAGE_MAP_START+BlkNum;
-
- tmpaddr = addr;
-
- if(addr % 2 != 0)
- addr = addr -1;
- InBuf[0] = addr;
- InBuf[1] = 2;
-
- //convert the address from 10 to 8 bit ( bit7, 6 = parity and bit5 ~ 0 = bit9~4), and write to logical map entry
- tmpOffset = Offset;
- tmpOffset >>= 4;
- tmpOffset |= ((~((tmpOffset & 0x01) ^ ( tmpOffset >> 1 & 0x01) ^ (tmpOffset >> 2 & 0x01) ^ (tmpOffset >> 3 & 0x01))) << 6) & 0x40;
- tmpOffset |= ((~( (tmpOffset >> 2 & 0x01) ^ (tmpOffset >> 3 & 0x01) ^ (tmpOffset >> 4 & 0x01) ^ ( tmpOffset >> 5 & 0x01))) << 7) & 0x80;
-
- // write the logical address
- if(tmpaddr%2 != 0)
- InBuf[2] = tmpOffset<<8;
- else
- InBuf[2] = tmpOffset;
-
- eFuseWritePhysical(pAd,&InBuf[0], 6, NULL, 0);
-
- //Step 3. Compare data if not the same, invalidate the mapping entry, then re-write the data until E-fuse is exhausted
- bWriteSuccess = TRUE;
- for(i =0; i<8; i++)
- {
- addr = BlkNum * 0x10 ;
-
- InBuf[0] = addr+2*i;
- InBuf[1] = 2;
- InBuf[2] = 0x0;
-
- eFuseReadPhysical(pAd, &InBuf[0], 4, &InBuf[2], 2);
- DBGPRINT(RT_DEBUG_TRACE, ("addr=%x, buffer[i]=%x,InBuf[2]=%x\n",InBuf[0],pData[i],InBuf[2]));
- if(pData[i] != InBuf[2])
- {
- bWriteSuccess = FALSE;
- break;
- }
- }
-
- //Step 4. invlidate mapping entry and find a free mapping entry if not succeed
-
- if (!bWriteSuccess&&Loop<2)
- {
- DBGPRINT(RT_DEBUG_TRACE, ("eFuseWriteRegistersFromBin::Not bWriteSuccess BlkNum = %d\n", BlkNum));
-
- // the offset of current mapping entry
- addr = EFUSE_USAGE_MAP_START+BlkNum;
-
- //find a new mapping entry
- BlkNum = 0xffff;
- for (i=EFUSE_USAGE_MAP_START; i<=EFUSE_USAGE_MAP_END; i+=2)
- {
- eFusePhysicalReadRegisters(pAd, i, 2, &LogicalAddress);
- if( (LogicalAddress & 0xff) == 0)
- {
- BlkNum = i-EFUSE_USAGE_MAP_START;
- break;
- }
- else if(( (LogicalAddress >> 8) & 0xff) == 0)
- {
- if (i != EFUSE_USAGE_MAP_END)
- {
- BlkNum = i+1-EFUSE_USAGE_MAP_START;
- }
- break;
- }
- }
- DBGPRINT(RT_DEBUG_TRACE, ("eFuseWriteRegistersFromBin::Not bWriteSuccess new BlkNum = %d\n", BlkNum));
- if(BlkNum == 0xffff)
- {
- DBGPRINT(RT_DEBUG_TRACE, ("eFuseWriteRegistersFromBin: out of free E-fuse space!!!\n"));
- return FALSE;
- }
-
- //invalidate the original mapping entry if new entry is not found
- tmpaddr = addr;
-
- if(addr % 2 != 0)
- addr = addr -1;
- InBuf[0] = addr;
- InBuf[1] = 2;
-
- eFuseReadPhysical(pAd, &InBuf[0], 4, &InBuf[2], 2);
-
- // write the logical address
- if(tmpaddr%2 != 0)
- {
- // Invalidate the high byte
- for (i=8; i<15; i++)
- {
- if( ( (InBuf[2] >> i) & 0x01) == 0)
- {
- InBuf[2] |= (0x1 <<i);
- break;
- }
- }
- }
- else
- {
- // invalidate the low byte
- for (i=0; i<8; i++)
- {
- if( ( (InBuf[2] >> i) & 0x01) == 0)
- {
- InBuf[2] |= (0x1 <<i);
- break;
- }
- }
- }
- eFuseWritePhysical(pAd, &InBuf[0], 6, NULL, 0);
- }
-
- }
- while(!bWriteSuccess&&Loop<2);
-
- return TRUE;
-}
-
-
int rtmp_ee_efuse_read16(
IN RTMP_ADAPTER *pAd,
IN USHORT Offset,
OUT USHORT *pValue)
{
- if(pAd->bFroceEEPROMBuffer || pAd->bEEPROMFile)
- {
- DBGPRINT(RT_DEBUG_TRACE, ("Read from EEPROM Buffer\n"));
- NdisMoveMemory(pValue, &(pAd->EEPROMImage[Offset]), 2);
- }
- else
- eFuseReadRegisters(pAd, Offset, 2, pValue);
+ eFuseReadRegisters(pAd, Offset, 2, pValue);
return (*pValue);
}
@@ -944,177 +341,6 @@ int RtmpEfuseSupportCheck(
return 0;
}
-INT set_eFuseBufferModeWriteBack_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg)
-{
- UINT Enable;
-
-
- if(strlen(arg)>0)
- {
- Enable= simple_strtol(arg, 0, 16);
- }
- else
- return FALSE;
- if(Enable==1)
- {
- DBGPRINT(RT_DEBUG_TRACE, ("set_eFuseBufferMode_Proc:: Call WRITEEEPROMBUF"));
- eFuseWriteEeeppromBuf(pAd);
- }
- else
- return FALSE;
- return TRUE;
-}
-
-
-/*
- ========================================================================
-
- Routine Description:
- Load EEPROM from bin file for eFuse mode
-
- Arguments:
- Adapter Pointer to our adapter
-
- Return Value:
- NDIS_STATUS_SUCCESS firmware image load ok
- NDIS_STATUS_FAILURE image not found
-
- IRQL = PASSIVE_LEVEL
-
- ========================================================================
-*/
-INT eFuseLoadEEPROM(
- IN PRTMP_ADAPTER pAd)
-{
- PSTRING src = NULL;
- INT retval;
- RTMP_OS_FD srcf;
- RTMP_OS_FS_INFO osFSInfo;
-
-
- src=EFUSE_BUFFER_PATH;
- DBGPRINT(RT_DEBUG_TRACE, ("FileName=%s\n",src));
-
-
- RtmpOSFSInfoChange(&osFSInfo, TRUE);
-
- if (src && *src)
- {
- srcf = RtmpOSFileOpen(src, O_RDONLY, 0);
- if (IS_FILE_OPEN_ERR(srcf))
- {
- DBGPRINT(RT_DEBUG_ERROR, ("--> Error %ld opening %s\n", -PTR_ERR(srcf),src));
- return FALSE;
- }
- else
- {
-
- memset(pAd->EEPROMImage, 0x00, MAX_EEPROM_BIN_FILE_SIZE);
-
-
- retval =RtmpOSFileRead(srcf, (PSTRING)pAd->EEPROMImage, MAX_EEPROM_BIN_FILE_SIZE);
- if (retval > 0)
- {
- RTMPSetProfileParameters(pAd, (PSTRING)pAd->EEPROMImage);
- retval = NDIS_STATUS_SUCCESS;
- }
- else
- DBGPRINT(RT_DEBUG_ERROR, ("Read file \"%s\" failed(errCode=%d)!\n", src, retval));
-
- }
-
-
- }
- else
- {
- DBGPRINT(RT_DEBUG_ERROR, ("--> Error src or srcf is null\n"));
- return FALSE;
-
- }
-
- retval=RtmpOSFileClose(srcf);
-
- if (retval)
- {
- DBGPRINT(RT_DEBUG_TRACE, ("--> Error %d closing %s\n", -retval, src));
- }
-
-
- RtmpOSFSInfoChange(&osFSInfo, FALSE);
-
- return TRUE;
-}
-
-INT eFuseWriteEeeppromBuf(
- IN PRTMP_ADAPTER pAd)
-{
-
- PSTRING src = NULL;
- INT retval;
- RTMP_OS_FD srcf;
- RTMP_OS_FS_INFO osFSInfo;
-
-
- src=EFUSE_BUFFER_PATH;
- DBGPRINT(RT_DEBUG_TRACE, ("FileName=%s\n",src));
-
- RtmpOSFSInfoChange(&osFSInfo, TRUE);
-
-
-
- if (src && *src)
- {
- srcf = RtmpOSFileOpen(src, O_WRONLY|O_CREAT, 0);
-
- if (IS_FILE_OPEN_ERR(srcf))
- {
- DBGPRINT(RT_DEBUG_ERROR, ("--> Error %ld opening %s\n", -PTR_ERR(srcf),src));
- return FALSE;
- }
- else
- {
-/*
- // The object must have a read method
- if (srcf->f_op && srcf->f_op->write)
- {
- // The object must have a read method
- srcf->f_op->write(srcf, pAd->EEPROMImage, 1024, &srcf->f_pos);
-
- }
- else
- {
- DBGPRINT(RT_DEBUG_ERROR, ("--> Error!! System doest not support read function\n"));
- return FALSE;
- }
-*/
-
- RtmpOSFileWrite(srcf, (PSTRING)pAd->EEPROMImage,MAX_EEPROM_BIN_FILE_SIZE);
-
- }
-
-
- }
- else
- {
- DBGPRINT(RT_DEBUG_ERROR, ("--> Error src or srcf is null\n"));
- return FALSE;
-
- }
-
- retval=RtmpOSFileClose(srcf);
-
- if (retval)
- {
- DBGPRINT(RT_DEBUG_TRACE, ("--> Error %d closing %s\n", -retval, src));
- }
-
- RtmpOSFSInfoChange(&osFSInfo, FALSE);
- return TRUE;
-}
-
-
VOID eFuseGetFreeBlockCount(IN PRTMP_ADAPTER pAd,
PUINT EfuseFreeBlock)
{
@@ -1151,18 +377,6 @@ INT eFuse_init(
UINT EfuseFreeBlock=0;
DBGPRINT(RT_DEBUG_ERROR, ("NVM is Efuse and its size =%x[%x-%x] \n",EFUSE_USAGE_MAP_SIZE,EFUSE_USAGE_MAP_START,EFUSE_USAGE_MAP_END));
eFuseGetFreeBlockCount(pAd, &EfuseFreeBlock);
- //If the used block of efuse is less than 5. We assume the default value
- // of this efuse is empty and change to the buffer mode in odrder to
- //bring up interfaces successfully.
- if(EfuseFreeBlock > (EFUSE_USAGE_MAP_END-5))
- {
- DBGPRINT(RT_DEBUG_ERROR, ("NVM is Efuse and the information is too less to bring up interface. Force to use EEPROM Buffer Mode\n"));
- pAd->bFroceEEPROMBuffer = TRUE;
- eFuseLoadEEPROM(pAd);
- }
- else
- pAd->bFroceEEPROMBuffer = FALSE;
- DBGPRINT(RT_DEBUG_TRACE, ("NVM is Efuse and force to use EEPROM Buffer Mode=%x\n",pAd->bFroceEEPROMBuffer));
return 0;
}
Index: b/drivers/staging/rt2860/common/eeprom.c
===================================================================
--- a/drivers/staging/rt2860/common/eeprom.c
+++ b/drivers/staging/rt2860/common/eeprom.c
@@ -69,10 +69,7 @@ INT RtmpChipOpsEepromHook(
return 0 ;
}
else
- {
- pAd->bFroceEEPROMBuffer = FALSE;
DBGPRINT(RT_DEBUG_TRACE, ("NVM is EEPROM\n"));
- }
#endif // RTMP_EFUSE_SUPPORT //
#endif // RT30xx //
Index: b/drivers/staging/rt2860/common/rtmp_init.c
===================================================================
--- a/drivers/staging/rt2860/common/rtmp_init.c
+++ b/drivers/staging/rt2860/common/rtmp_init.c
@@ -694,15 +694,6 @@ VOID NICReadEEPROMParameters(
if (pAd->chipOps.eeinit)
pAd->chipOps.eeinit(pAd);
-#ifdef RTMP_EFUSE_SUPPORT
-#ifdef RT30xx
- if(!pAd->bFroceEEPROMBuffer && pAd->bEEPROMFile)
- {
- DBGPRINT(RT_DEBUG_TRACE, ("--> NICReadEEPROMParameters::(Efuse)Load to EEPROM Buffer Mode\n"));
- eFuseLoadEEPROM(pAd);
- }
-#endif // RT30xx //
-#endif // RTMP_EFUSE_SUPPORT //
// Init EEPROM Address Number, before access EEPROM; if 93c46, EEPROMAddressNum=6, else if 93c66, EEPROMAddressNum=8
RTMP_IO_READ32(pAd, E2PROM_CSR, &data);
Index: b/drivers/staging/rt2860/rt_linux.c
===================================================================
--- a/drivers/staging/rt2860/rt_linux.c
+++ b/drivers/staging/rt2860/rt_linux.c
@@ -1065,26 +1065,6 @@ int RtmpOSFileWrite(RTMP_OS_FD osfd, cha
return osfd->f_op->write(osfd, pDataPtr, (size_t)writeLen, &osfd->f_pos);
}
-
-void RtmpOSFSInfoChange(RTMP_OS_FS_INFO *pOSFSInfo, BOOLEAN bSet)
-{
- if (bSet)
- {
- // Save uid and gid used for filesystem access.
- // Set user and group to 0 (root)
- pOSFSInfo->fsuid = current_fsuid();
- pOSFSInfo->fsgid = current_fsgid();
- pOSFSInfo->fs = get_fs();
- set_fs(KERNEL_DS);
- }
- else
- {
- set_fs(pOSFSInfo->fs);
- }
-}
-
-
-
/*******************************************************************************
Task create/management/kill related functions.
Index: b/drivers/staging/rt2860/rtmp.h
===================================================================
--- a/drivers/staging/rt2860/rtmp.h
+++ b/drivers/staging/rt2860/rtmp.h
@@ -2258,8 +2258,6 @@ struct _RTMP_ADAPTER
#ifdef RT30xx
#ifdef RTMP_EFUSE_SUPPORT
BOOLEAN bUseEfuse;
- BOOLEAN bEEPROMFile;
- BOOLEAN bFroceEEPROMBuffer;
UCHAR EEPROMImage[1024];
#endif // RTMP_EFUSE_SUPPORT //
#endif // RT30xx //
@@ -4021,10 +4019,6 @@ INT set_eFusedump_Proc(
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
-INT set_eFuseLoadFromBin_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
VOID eFusePhysicalReadRegisters(
IN PRTMP_ADAPTER pAd,
IN USHORT Offset,
@@ -4034,16 +4028,6 @@ VOID eFusePhysicalReadRegisters(
int RtmpEfuseSupportCheck(
IN RTMP_ADAPTER *pAd);
-INT set_eFuseBufferModeWriteBack_Proc(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING arg);
-
-INT eFuseLoadEEPROM(
- IN PRTMP_ADAPTER pAd);
-
-INT eFuseWriteEeeppromBuf(
- IN PRTMP_ADAPTER pAd);
-
VOID eFuseGetFreeBlockCount(IN PRTMP_ADAPTER pAd,
PUINT EfuseFreeBlock);
@@ -5632,10 +5616,5 @@ int RtmpOSFileWrite(
IN char *pDataPtr,
IN int writeLen);
-void RtmpOSFSInfoChange(
- IN RTMP_OS_FS_INFO *pOSFSInfo,
- IN BOOLEAN bSet);
-
-
#endif // __RTMP_H__
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 08/12] Staging: rt28x0: fix some build warnings
2009-10-21 20:43 [PATCH 00/12] Staging: rt28x0 cleanups Bartlomiej Zolnierkiewicz
` (6 preceding siblings ...)
2009-10-21 20:44 ` [PATCH 07/12] Staging: rt28x0: remove optional loading of EEPROM from file in eFuse mode Bartlomiej Zolnierkiewicz
@ 2009-10-21 20:44 ` Bartlomiej Zolnierkiewicz
2009-10-21 20:44 ` [PATCH 09/12] Staging: rt28x0: remove optional cmm profile parameters Bartlomiej Zolnierkiewicz
` (3 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2009-10-21 20:44 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: devel, Bartlomiej Zolnierkiewicz, linux-kernel
From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Subject: [PATCH] Staging: rt28x0: fix some build warnings
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
drivers/staging/rt2860/chip/rtmp_phy.h | 8 +++---
drivers/staging/rt2860/chips/rt30xx.c | 2 +
drivers/staging/rt2860/common/cmm_asic.c | 6 ++--
drivers/staging/rt2860/common/cmm_mac_pci.c | 7 ++---
drivers/staging/rt2860/common/mlme.c | 1
drivers/staging/rt2860/common/rtmp_init.c | 3 +-
drivers/staging/rt2860/common/rtmp_mcu.c | 2 +
drivers/staging/rt2860/pci_main_dev.c | 35 +++++++++++++++++-----------
drivers/staging/rt2860/rt_linux.c | 10 +++-----
drivers/staging/rt2860/rt_main_dev.c | 6 +---
drivers/staging/rt2860/sta/connect.c | 1
drivers/staging/rt2860/usb_main_dev.c | 7 +++--
12 files changed, 48 insertions(+), 40 deletions(-)
Index: b/drivers/staging/rt2860/chip/rtmp_phy.h
===================================================================
--- a/drivers/staging/rt2860/chip/rtmp_phy.h
+++ b/drivers/staging/rt2860/chip/rtmp_phy.h
@@ -552,8 +552,8 @@
#ifdef RT30xx
#define RTMP_ASIC_MMPS_DISABLE(_pAd) \
do{ \
- UCHAR _bbpData; \
- UINT32 _macData; \
+ UINT32 _macData; \
+ UCHAR _bbpData = 0; \
/* disable MMPS BBP control register */ \
RTMP_BBP_IO_READ8_BY_REG_ID(_pAd, BBP_R3, &_bbpData); \
_bbpData &= ~(0x04); /*bit 2*/ \
@@ -568,8 +568,8 @@
#define RTMP_ASIC_MMPS_ENABLE(_pAd) \
do{ \
- UCHAR _bbpData; \
- UINT32 _macData; \
+ UINT32 _macData; \
+ UCHAR _bbpData = 0; \
/* enable MMPS BBP control register */ \
RTMP_BBP_IO_READ8_BY_REG_ID(_pAd, BBP_R3, &_bbpData); \
_bbpData |= (0x04); /*bit 2*/ \
Index: b/drivers/staging/rt2860/chips/rt30xx.c
===================================================================
--- a/drivers/staging/rt2860/chips/rt30xx.c
+++ b/drivers/staging/rt2860/chips/rt30xx.c
@@ -86,7 +86,9 @@ VOID RT30xxSetRxAnt(
IN UCHAR Ant)
{
UINT32 Value;
+#ifdef RTMP_MAC_PCI
UINT32 x;
+#endif
if ((pAd->EepromAccess) ||
(RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_RESET_IN_PROGRESS)) ||
Index: b/drivers/staging/rt2860/common/cmm_asic.c
===================================================================
--- a/drivers/staging/rt2860/common/cmm_asic.c
+++ b/drivers/staging/rt2860/common/cmm_asic.c
@@ -810,9 +810,9 @@ VOID AsicSwitchChannel(
#if defined(RT3090) || defined(RT3390)
// PCIe PHY Transmit attenuation adjustment
- if (IS_RT3090A(pAd) || IS_RT3390(pAd))
- {
- TX_ATTENUATION_CTRL_STRUC TxAttenuationCtrl = {0};
+ if (IS_RT3090A(pAd) || IS_RT3390(pAd)) {
+ TX_ATTENUATION_CTRL_STRUC
+ TxAttenuationCtrl = { .word = 0 };
RTMP_IO_READ32(pAd, PCIE_PHY_TX_ATTENUATION_CTRL, &TxAttenuationCtrl.word);
Index: b/drivers/staging/rt2860/common/cmm_mac_pci.c
===================================================================
--- a/drivers/staging/rt2860/common/cmm_mac_pci.c
+++ b/drivers/staging/rt2860/common/cmm_mac_pci.c
@@ -1173,10 +1173,9 @@ BOOLEAN RT28xxPciAsicRadioOn(
pAd->Mlme.bPsPollTimerRunning = FALSE;
RTMPCancelTimer(&pAd->Mlme.PsPollTimer, &Cancelled);
}
- if ((pAd->StaCfg.PSControl.field.EnableNewPS == TRUE)&&
- ((Level == GUIRADIO_OFF) || (Level == GUI_IDLE_POWER_SAVE))
- ||(RTMP_TEST_PSFLAG(pAd, fRTMP_PS_SET_PCI_CLK_OFF_COMMAND)))
- {
+ if ((pAd->StaCfg.PSControl.field.EnableNewPS == TRUE &&
+ (Level == GUIRADIO_OFF || Level == GUI_IDLE_POWER_SAVE)) ||
+ RTMP_TEST_PSFLAG(pAd, fRTMP_PS_SET_PCI_CLK_OFF_COMMAND)) {
// Some chips don't need to delay 6ms, so copy RTMPPCIePowerLinkCtrlRestore
// return condition here.
/*
Index: b/drivers/staging/rt2860/common/mlme.c
===================================================================
--- a/drivers/staging/rt2860/common/mlme.c
+++ b/drivers/staging/rt2860/common/mlme.c
@@ -679,7 +679,6 @@ VOID MlmePeriodicExec(
{
ULONG TxTotalCnt;
PRTMP_ADAPTER pAd = (RTMP_ADAPTER *)FunctionContext;
- SHORT realavgrssi;
#ifdef RTMP_MAC_PCI
{
Index: b/drivers/staging/rt2860/common/rtmp_init.c
===================================================================
--- a/drivers/staging/rt2860/common/rtmp_init.c
+++ b/drivers/staging/rt2860/common/rtmp_init.c
@@ -3621,7 +3621,8 @@ INT RtmpRaDevCtrlInit(
#ifdef RTMP_MAC_USB
init_MUTEX(&(pAd->UsbVendorReq_semaphore));
- os_alloc_mem(pAd, (PUCHAR)&pAd->UsbVendorReqBuf, MAX_PARAM_BUFFER_SIZE - 1);
+ os_alloc_mem(pAd, (PUCHAR *)&pAd->UsbVendorReqBuf,
+ MAX_PARAM_BUFFER_SIZE - 1);
if (pAd->UsbVendorReqBuf == NULL)
{
DBGPRINT(RT_DEBUG_ERROR, ("Allocate vendor request temp buffer failed!\n"));
Index: b/drivers/staging/rt2860/common/rtmp_mcu.c
===================================================================
--- a/drivers/staging/rt2860/common/rtmp_mcu.c
+++ b/drivers/staging/rt2860/common/rtmp_mcu.c
@@ -119,7 +119,9 @@ NDIS_STATUS RtmpAsicLoadFirmware(
PUCHAR pFirmwareImage = NULL;
ULONG FileLength, Index;
UINT32 MacReg = 0;
+#ifdef RTMP_MAC_USB
UINT32 Version = (pAd->MACVersion >> 16);
+#endif
// New 8k byte firmware size for RT3071/RT3072
{
Index: b/drivers/staging/rt2860/pci_main_dev.c
===================================================================
--- a/drivers/staging/rt2860/pci_main_dev.c
+++ b/drivers/staging/rt2860/pci_main_dev.c
@@ -310,7 +310,7 @@ static INT __devinit rt2860_probe(
return rv;
}
- print_name = pci_name(pci_dev);
+ print_name = (PSTRING)pci_name(pci_dev);
if ((rv = pci_request_regions(pci_dev, print_name)) != 0)
{
@@ -883,7 +883,7 @@ VOID RTMPPCIeLinkCtrlValueRestore(
#endif // RT2860 //
// Check PSControl Configuration
if (pAd->StaCfg.PSControl.field.EnableNewPS == FALSE)
- return TRUE;
+ return;
//3090 will not execute the following codes.
// Check interface : If not PCIe interface, return.
@@ -977,7 +977,7 @@ VOID RTMPPCIeLinkCtrlSetting(
#endif // RT2860 //
// Check PSControl Configuration
if (pAd->StaCfg.PSControl.field.EnableNewPS == FALSE)
- return TRUE;
+ return;
// Check interface : If not PCIe interface, return.
//Block 3090 to enter the following function
@@ -1086,17 +1086,17 @@ VOID RTMPrt3xSetPCIePowerLinkCtrl(
IN PRTMP_ADAPTER pAd)
{
- ULONG HostConfiguration;
+ ULONG HostConfiguration = 0;
ULONG Configuration;
- ULONG Vendor;
- ULONG offset;
POS_COOKIE pObj;
INT pos;
USHORT reg16;
pObj = (POS_COOKIE) pAd->OS_Cookie;
- DBGPRINT(RT_DEBUG_INFO, ("RTMPrt3xSetPCIePowerLinkCtrl.===> %x\n", pAd->StaCfg.PSControl.word));
+ DBGPRINT(RT_DEBUG_INFO,
+ ("RTMPrt3xSetPCIePowerLinkCtrl.===> %lx\n",
+ pAd->StaCfg.PSControl.word));
// Check PSControl Configuration
if (pAd->StaCfg.PSControl.field.EnableNewPS == FALSE)
@@ -1104,7 +1104,6 @@ VOID RTMPrt3xSetPCIePowerLinkCtrl(
RTMPFindHostPCIDev(pAd);
if (pObj->parent_pci_dev)
{
- USHORT vendor_id;
// Find PCI-to-PCI Bridge Express Capability Offset
pos = pci_find_capability(pObj->parent_pci_dev, PCI_CAP_ID_EXP);
@@ -1129,7 +1128,10 @@ VOID RTMPrt3xSetPCIePowerLinkCtrl(
// Because in rt30xxForceASPMTest Mode, Force turn on L0s, L1.
// Fix HostConfiguration bit0:1 = 0x3 for later use.
HostConfiguration = 0x3;
- DBGPRINT(RT_DEBUG_TRACE, ("PSM : Force ASPM : Host device L1/L0s Value = 0x%x\n", HostConfiguration));
+ DBGPRINT(RT_DEBUG_TRACE,
+ ("PSM : Force ASPM : "
+ "Host device L1/L0s Value = 0x%lx\n",
+ HostConfiguration));
}
}
else if (pAd->StaCfg.PSControl.field.rt30xxFollowHostASPM == 1)
@@ -1141,7 +1143,10 @@ VOID RTMPrt3xSetPCIePowerLinkCtrl(
PCI_REG_READ_WORD(pObj->parent_pci_dev, pAd->HostLnkCtrlOffset, HostConfiguration);
pAd->Rt3xxHostLinkCtrl = HostConfiguration;
HostConfiguration &= 0x3;
- DBGPRINT(RT_DEBUG_TRACE, ("PSM : Follow Host ASPM : Host device L1/L0s Value = 0x%x\n", HostConfiguration));
+ DBGPRINT(RT_DEBUG_TRACE,
+ ("PSM : Follow Host ASPM : "
+ "Host device L1/L0s Value = 0x%lx\n",
+ HostConfiguration));
}
}
}
@@ -1155,8 +1160,10 @@ VOID RTMPrt3xSetPCIePowerLinkCtrl(
pAd->RLnkCtrlOffset = pos + PCI_EXP_LNKCTL;
pci_read_config_word(pObj->pci_dev, pAd->RLnkCtrlOffset, ®16);
Configuration = le2cpu16(reg16);
- DBGPRINT(RT_DEBUG_TRACE, ("Read (Ralink PCIe Link Control Register) offset 0x%x = 0x%x\n",
- pAd->RLnkCtrlOffset, Configuration));
+ DBGPRINT(RT_DEBUG_TRACE,
+ ("Read (Ralink PCIe Link Control Register) "
+ "offset 0x%x = 0x%lx\n",
+ pAd->RLnkCtrlOffset, Configuration));
Configuration |= 0x100;
if ((pAd->StaCfg.PSControl.field.rt30xxFollowHostASPM == 1)
|| (pAd->StaCfg.PSControl.field.rt30xxForceASPMTest == 1))
@@ -1182,7 +1189,9 @@ VOID RTMPrt3xSetPCIePowerLinkCtrl(
reg16 = cpu2le16(Configuration);
pci_write_config_word(pObj->pci_dev, pAd->RLnkCtrlOffset, reg16);
pAd->Rt3xxRalinkLinkCtrl = Configuration;
- DBGPRINT(RT_DEBUG_TRACE, ("PSM :Write Ralink device L1/L0s Value = 0x%x\n", Configuration));
+ DBGPRINT(RT_DEBUG_TRACE,
+ ("PSM :Write Ralink device L1/L0s Value = 0x%lx\n",
+ Configuration));
}
DBGPRINT(RT_DEBUG_INFO,("PSM :RTMPrt3xSetPCIePowerLinkCtrl <==============\n"));
}
Index: b/drivers/staging/rt2860/rt_linux.c
===================================================================
--- a/drivers/staging/rt2860/rt_linux.c
+++ b/drivers/staging/rt2860/rt_linux.c
@@ -965,6 +965,7 @@ err_free_sk_buff:
*******************************************************************************/
int RtmpOSIRQRequest(IN PNET_DEV pNetDev)
{
+#ifdef RTMP_PCI_SUPPORT
struct net_device *net_dev = pNetDev;
PRTMP_ADAPTER pAd = NULL;
int retval = 0;
@@ -973,7 +974,6 @@ int RtmpOSIRQRequest(IN PNET_DEV pNetDev
ASSERT(pAd);
-#ifdef RTMP_PCI_SUPPORT
if (pAd->infType == RTMP_DEV_INF_PCI)
{
POS_COOKIE _pObj = (POS_COOKIE)(pAd->OS_Cookie);
@@ -982,14 +982,13 @@ int RtmpOSIRQRequest(IN PNET_DEV pNetDev
if (retval != 0)
printk("RT2860: request_irq ERROR(%d)\n", retval);
}
-#endif // RTMP_PCI_SUPPORT //
-
return retval;
-
+#else
+ return 0;
+#endif
}
-
int RtmpOSIRQRelease(IN PNET_DEV pNetDev)
{
struct net_device *net_dev = pNetDev;
@@ -1149,7 +1148,6 @@ NDIS_STATUS RtmpOSTaskAttach(
IN void *arg)
{
NDIS_STATUS status = NDIS_STATUS_SUCCESS;
- pid_t pid_number = -1;
#ifdef KTHREAD_SUPPORT
pTask->task_killed = 0;
Index: b/drivers/staging/rt2860/rt_main_dev.c
===================================================================
--- a/drivers/staging/rt2860/rt_main_dev.c
+++ b/drivers/staging/rt2860/rt_main_dev.c
@@ -209,15 +209,13 @@ int rt28xx_close(IN PNET_DEV dev)
BOOLEAN Cancelled;
UINT32 i = 0;
- GET_PAD_FROM_NET_DEV(pAd, net_dev);
-
#ifdef RTMP_MAC_USB
DECLARE_WAIT_QUEUE_HEAD(unlink_wakeup);
DECLARE_WAITQUEUE(wait, current);
-
- //RTMP_SET_FLAG(pAd, fRTMP_ADAPTER_REMOVE_IN_PROGRESS);
#endif // RTMP_MAC_USB //
+ GET_PAD_FROM_NET_DEV(pAd, net_dev);
+
DBGPRINT(RT_DEBUG_TRACE, ("===> rt28xx_close\n"));
Cancelled = FALSE;
Index: b/drivers/staging/rt2860/sta/connect.c
===================================================================
--- a/drivers/staging/rt2860/sta/connect.c
+++ b/drivers/staging/rt2860/sta/connect.c
@@ -1809,7 +1809,6 @@ VOID LinkDown(
IN BOOLEAN IsReqFromAP)
{
UCHAR i, ByteValue = 0;
- BOOLEAN Cancelled;
// Do nothing if monitor mode is on
if (MONITOR_ON(pAd))
Index: b/drivers/staging/rt2860/usb_main_dev.c
===================================================================
--- a/drivers/staging/rt2860/usb_main_dev.c
+++ b/drivers/staging/rt2860/usb_main_dev.c
@@ -686,9 +686,10 @@ VOID RTUSBWatchDog(IN RTMP_ADAPTER *pAd)
RTMP_IRQ_UNLOCK(&pAd->BulkOutLock[idx], irqFlags);
-
- printk("%d:%d LTL=%d , TL=%d L:%d\n",idx,pAd->watchDogTxPendingCnt[idx],pAd->TransferedLength[idx]
- ,actual_length,transfer_buffer_length);
+ printk(KERN_INFO "%d:%lu LTL=%d , TL=%d L:%d\n",
+ idx, pAd->watchDogTxPendingCnt[idx],
+ pAd->TransferedLength[idx],
+ actual_length, transfer_buffer_length);
if (pUrb)
{
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 09/12] Staging: rt28x0: remove optional cmm profile parameters
2009-10-21 20:43 [PATCH 00/12] Staging: rt28x0 cleanups Bartlomiej Zolnierkiewicz
` (7 preceding siblings ...)
2009-10-21 20:44 ` [PATCH 08/12] Staging: rt28x0: fix some build warnings Bartlomiej Zolnierkiewicz
@ 2009-10-21 20:44 ` Bartlomiej Zolnierkiewicz
2009-10-21 20:44 ` [PATCH 10/12] Staging: rt28x0: remove dead code from rtmp_phy.h Bartlomiej Zolnierkiewicz
` (2 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2009-10-21 20:44 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: devel, Bartlomiej Zolnierkiewicz, linux-kernel
From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Subject: [PATCH] Staging: rt28x0: remove optional cmm profile parameters
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
drivers/staging/rt2860/Makefile | 1
drivers/staging/rt2860/common/cmm_profile.c | 1769 ----------------------------
drivers/staging/rt2860/rtmp.h | 34
drivers/staging/rt2870/Makefile | 1
4 files changed, 1805 deletions(-)
Index: b/drivers/staging/rt2860/Makefile
===================================================================
--- a/drivers/staging/rt2860/Makefile
+++ b/drivers/staging/rt2860/Makefile
@@ -27,7 +27,6 @@ rt2860sta-objs := \
common/spectrum.o \
common/rtmp_timer.o \
common/rt_channel.o \
- common/cmm_profile.o \
common/cmm_asic.o \
sta/assoc.o \
sta/auth.o \
Index: b/drivers/staging/rt2860/common/cmm_profile.c
===================================================================
--- a/drivers/staging/rt2860/common/cmm_profile.c
+++ /dev/null
@@ -1,1769 +0,0 @@
-/*
- *************************************************************************
- * Ralink Tech Inc.
- * 5F., No.36, Taiyuan St., Jhubei City,
- * Hsinchu County 302,
- * Taiwan, R.O.C.
- *
- * (c) Copyright 2002-2007, Ralink Technology, Inc.
- *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
- * *
- *************************************************************************
-*/
-
-#include "../rt_config.h"
-
-
-#define ETH_MAC_ADDR_STR_LEN 17 // in format of xx:xx:xx:xx:xx:xx
-
-// We assume the s1 is a sting, s2 is a memory space with 6 bytes. and content of s1 will be changed.
-BOOLEAN rtstrmactohex(PSTRING s1, PSTRING s2)
-{
- int i = 0;
- PSTRING ptokS = s1, ptokE = s1;
-
- if (strlen(s1) != ETH_MAC_ADDR_STR_LEN)
- return FALSE;
-
- while((*ptokS) != '\0')
- {
- if((ptokE = strchr(ptokS, ':')) != NULL)
- *ptokE++ = '\0';
- if ((strlen(ptokS) != 2) || (!isxdigit(*ptokS)) || (!isxdigit(*(ptokS+1))))
- break; // fail
- AtoH(ptokS, (PUCHAR)&s2[i++], 1);
- ptokS = ptokE;
- if (i == 6)
- break; // parsing finished
- }
-
- return ( i == 6 ? TRUE : FALSE);
-
-}
-
-
-// we assume the s1 and s2 both are strings.
-BOOLEAN rtstrcasecmp(PSTRING s1, PSTRING s2)
-{
- PSTRING p1 = s1, p2 = s2;
-
- if (strlen(s1) != strlen(s2))
- return FALSE;
-
- while(*p1 != '\0')
- {
- if((*p1 != *p2) && ((*p1 ^ *p2) != 0x20))
- return FALSE;
- p1++;
- p2++;
- }
-
- return TRUE;
-}
-
-// we assume the s1 (buffer) and s2 (key) both are strings.
-PSTRING rtstrstruncasecmp(PSTRING s1, PSTRING s2)
-{
- INT l1, l2, i;
- char temp1, temp2;
-
- l2 = strlen(s2);
- if (!l2)
- return (char *) s1;
-
- l1 = strlen(s1);
-
- while (l1 >= l2)
- {
- l1--;
-
- for(i=0; i<l2; i++)
- {
- temp1 = *(s1+i);
- temp2 = *(s2+i);
-
- if (('a' <= temp1) && (temp1 <= 'z'))
- temp1 = 'A'+(temp1-'a');
- if (('a' <= temp2) && (temp2 <= 'z'))
- temp2 = 'A'+(temp2-'a');
-
- if (temp1 != temp2)
- break;
- }
-
- if (i == l2)
- return (char *) s1;
-
- s1++;
- }
-
- return NULL; // not found
-}
-
-//add by kathy
-
- /**
- * strstr - Find the first substring in a %NUL terminated string
- * @s1: The string to be searched
- * @s2: The string to search for
- */
-PSTRING rtstrstr(PSTRING s1,const PSTRING s2)
-{
- INT l1, l2;
-
- l2 = strlen(s2);
- if (!l2)
- return s1;
-
- l1 = strlen(s1);
-
- while (l1 >= l2)
- {
- l1--;
- if (!memcmp(s1,s2,l2))
- return s1;
- s1++;
- }
-
- return NULL;
-}
-
-/**
- * rstrtok - Split a string into tokens
- * @s: The string to be searched
- * @ct: The characters to search for
- * * WARNING: strtok is deprecated, use strsep instead. However strsep is not compatible with old architecture.
- */
-PSTRING __rstrtok;
-PSTRING rstrtok(PSTRING s,const PSTRING ct)
-{
- PSTRING sbegin, send;
-
- sbegin = s ? s : __rstrtok;
- if (!sbegin)
- {
- return NULL;
- }
-
- sbegin += strspn(sbegin,ct);
- if (*sbegin == '\0')
- {
- __rstrtok = NULL;
- return( NULL );
- }
-
- send = strpbrk( sbegin, ct);
- if (send && *send != '\0')
- *send++ = '\0';
-
- __rstrtok = send;
-
- return (sbegin);
-}
-
-/**
- * delimitcnt - return the count of a given delimiter in a given string.
- * @s: The string to be searched.
- * @ct: The delimiter to search for.
- * Notice : We suppose the delimiter is a single-char string(for example : ";").
- */
-INT delimitcnt(PSTRING s,PSTRING ct)
-{
- INT count = 0;
- /* point to the beginning of the line */
- PSTRING token = s;
-
- for ( ;; )
- {
- token = strpbrk(token, ct); /* search for delimiters */
-
- if ( token == NULL )
- {
- /* advanced to the terminating null character */
- break;
- }
- /* skip the delimiter */
- ++token;
-
- /*
- * Print the found text: use len with %.*s to specify field width.
- */
-
- /* accumulate delimiter count */
- ++count;
- }
- return count;
-}
-
-/*
- * converts the Internet host address from the standard numbers-and-dots notation
- * into binary data.
- * returns nonzero if the address is valid, zero if not.
- */
-int rtinet_aton(PSTRING cp, unsigned int *addr)
-{
- unsigned int val;
- int base, n;
- STRING c;
- unsigned int parts[4];
- unsigned int *pp = parts;
-
- for (;;)
- {
- /*
- * Collect number up to ``.''.
- * Values are specified as for C:
- * 0x=hex, 0=octal, other=decimal.
- */
- val = 0;
- base = 10;
- if (*cp == '0')
- {
- if (*++cp == 'x' || *cp == 'X')
- base = 16, cp++;
- else
- base = 8;
- }
- while ((c = *cp) != '\0')
- {
- if (isdigit((unsigned char) c))
- {
- val = (val * base) + (c - '0');
- cp++;
- continue;
- }
- if (base == 16 && isxdigit((unsigned char) c))
- {
- val = (val << 4) +
- (c + 10 - (islower((unsigned char) c) ? 'a' : 'A'));
- cp++;
- continue;
- }
- break;
- }
- if (*cp == '.')
- {
- /*
- * Internet format: a.b.c.d a.b.c (with c treated as 16-bits)
- * a.b (with b treated as 24 bits)
- */
- if (pp >= parts + 3 || val > 0xff)
- return 0;
- *pp++ = val, cp++;
- }
- else
- break;
- }
-
- /*
- * Check for trailing junk.
- */
- while (*cp)
- if (!isspace((unsigned char) *cp++))
- return 0;
-
- /*
- * Concoct the address according to the number of parts specified.
- */
- n = pp - parts + 1;
- switch (n)
- {
-
- case 1: /* a -- 32 bits */
- break;
-
- case 2: /* a.b -- 8.24 bits */
- if (val > 0xffffff)
- return 0;
- val |= parts[0] << 24;
- break;
-
- case 3: /* a.b.c -- 8.8.16 bits */
- if (val > 0xffff)
- return 0;
- val |= (parts[0] << 24) | (parts[1] << 16);
- break;
-
- case 4: /* a.b.c.d -- 8.8.8.8 bits */
- if (val > 0xff)
- return 0;
- val |= (parts[0] << 24) | (parts[1] << 16) | (parts[2] << 8);
- break;
- }
-
- *addr = htonl(val);
- return 1;
-
-}
-
-/*
- ========================================================================
-
- Routine Description:
- Find key section for Get key parameter.
-
- Arguments:
- buffer Pointer to the buffer to start find the key section
- section the key of the secion to be find
-
- Return Value:
- NULL Fail
- Others Success
- ========================================================================
-*/
-PSTRING RTMPFindSection(
- IN PSTRING buffer)
-{
- STRING temp_buf[32];
- PSTRING ptr;
-
- strcpy(temp_buf, "Default");
-
- if((ptr = rtstrstr(buffer, temp_buf)) != NULL)
- return (ptr+strlen("\n"));
- else
- return NULL;
-}
-
-/*
- ========================================================================
-
- Routine Description:
- Get key parameter.
-
- Arguments:
- key Pointer to key string
- dest Pointer to destination
- destsize The datasize of the destination
- buffer Pointer to the buffer to start find the key
- bTrimSpace Set true if you want to strip the space character of the result pattern
-
- Return Value:
- TRUE Success
- FALSE Fail
-
- Note:
- This routine get the value with the matched key (case case-sensitive)
- For SSID and security key related parameters, we SHALL NOT trim the space(' ') character.
- ========================================================================
-*/
-INT RTMPGetKeyParameter(
- IN PSTRING key,
- OUT PSTRING dest,
- IN INT destsize,
- IN PSTRING buffer,
- IN BOOLEAN bTrimSpace)
-{
- PSTRING pMemBuf, temp_buf1 = NULL, temp_buf2 = NULL;
- PSTRING start_ptr, end_ptr;
- PSTRING ptr;
- PSTRING offset = NULL;
- INT len, keyLen;
-
-
- keyLen = strlen(key);
- os_alloc_mem(NULL, (PUCHAR *)&pMemBuf, MAX_PARAM_BUFFER_SIZE * 2);
- if (pMemBuf == NULL)
- return (FALSE);
-
- memset(pMemBuf, 0, MAX_PARAM_BUFFER_SIZE * 2);
- temp_buf1 = pMemBuf;
- temp_buf2 = (PSTRING)(pMemBuf + MAX_PARAM_BUFFER_SIZE);
-
-
- //find section
- if((offset = RTMPFindSection(buffer)) == NULL)
- {
- os_free_mem(NULL, (PUCHAR)pMemBuf);
- return (FALSE);
- }
-
- strcpy(temp_buf1, "\n");
- strcat(temp_buf1, key);
- strcat(temp_buf1, "=");
-
- //search key
- if((start_ptr=rtstrstr(offset, temp_buf1)) == NULL)
- {
- os_free_mem(NULL, (PUCHAR)pMemBuf);
- return (FALSE);
- }
-
- start_ptr += strlen("\n");
- if((end_ptr = rtstrstr(start_ptr, "\n"))==NULL)
- end_ptr = start_ptr+strlen(start_ptr);
-
- if (end_ptr<start_ptr)
- {
- os_free_mem(NULL, (PUCHAR)pMemBuf);
- return (FALSE);
- }
-
- NdisMoveMemory(temp_buf2, start_ptr, end_ptr-start_ptr);
- temp_buf2[end_ptr-start_ptr]='\0';
- if((start_ptr=rtstrstr(temp_buf2, "=")) == NULL)
- {
- os_free_mem(NULL, (PUCHAR)pMemBuf);
- return (FALSE);
- }
- ptr = (start_ptr +1);
- //trim special characters, i.e., TAB or space
- while(*start_ptr != 0x00)
- {
- if( ((*ptr == ' ') && bTrimSpace) || (*ptr == '\t') )
- ptr++;
- else
- break;
- }
- len = strlen(start_ptr);
-
- memset(dest, 0x00, destsize);
- strncpy(dest, ptr, ((len >= destsize) ? destsize: len));
-
- os_free_mem(NULL, (PUCHAR)pMemBuf);
-
- return TRUE;
-}
-
-
-/*
- ========================================================================
-
- Routine Description:
- Get multiple key parameter.
-
- Arguments:
- key Pointer to key string
- dest Pointer to destination
- destsize The datasize of the destination
- buffer Pointer to the buffer to start find the key
-
- Return Value:
- TRUE Success
- FALSE Fail
-
- Note:
- This routine get the value with the matched key (case case-sensitive)
- ========================================================================
-*/
-INT RTMPGetKeyParameterWithOffset(
- IN PSTRING key,
- OUT PSTRING dest,
- OUT USHORT *end_offset,
- IN INT destsize,
- IN PSTRING buffer,
- IN BOOLEAN bTrimSpace)
-{
- PSTRING temp_buf1 = NULL;
- PSTRING temp_buf2 = NULL;
- PSTRING start_ptr;
- PSTRING end_ptr;
- PSTRING ptr;
- PSTRING offset = 0;
- INT len;
-
- if (*end_offset >= MAX_INI_BUFFER_SIZE)
- return (FALSE);
-
- os_alloc_mem(NULL, (PUCHAR *)&temp_buf1, MAX_PARAM_BUFFER_SIZE);
-
- if(temp_buf1 == NULL)
- return (FALSE);
-
- os_alloc_mem(NULL, (PUCHAR *)&temp_buf2, MAX_PARAM_BUFFER_SIZE);
- if(temp_buf2 == NULL)
- {
- os_free_mem(NULL, (PUCHAR)temp_buf1);
- return (FALSE);
- }
-
- //find section
- if(*end_offset == 0)
- {
- if ((offset = RTMPFindSection(buffer)) == NULL)
- {
- os_free_mem(NULL, (PUCHAR)temp_buf1);
- os_free_mem(NULL, (PUCHAR)temp_buf2);
- return (FALSE);
- }
- }
- else
- offset = buffer + (*end_offset);
-
- strcpy(temp_buf1, "\n");
- strcat(temp_buf1, key);
- strcat(temp_buf1, "=");
-
- //search key
- if((start_ptr=rtstrstr(offset, temp_buf1))==NULL)
- {
- os_free_mem(NULL, (PUCHAR)temp_buf1);
- os_free_mem(NULL, (PUCHAR)temp_buf2);
- return (FALSE);
- }
-
- start_ptr+=strlen("\n");
- if((end_ptr=rtstrstr(start_ptr, "\n"))==NULL)
- end_ptr=start_ptr+strlen(start_ptr);
-
- if (end_ptr<start_ptr)
- {
- os_free_mem(NULL, (PUCHAR)temp_buf1);
- os_free_mem(NULL, (PUCHAR)temp_buf2);
- return (FALSE);
- }
-
- *end_offset = end_ptr - buffer;
-
- NdisMoveMemory(temp_buf2, start_ptr, end_ptr-start_ptr);
- temp_buf2[end_ptr-start_ptr]='\0';
- len = strlen(temp_buf2);
- strcpy(temp_buf1, temp_buf2);
- if((start_ptr=rtstrstr(temp_buf1, "=")) == NULL)
- {
- os_free_mem(NULL, (PUCHAR)temp_buf1);
- os_free_mem(NULL, (PUCHAR)temp_buf2);
- return (FALSE);
- }
-
- strcpy(temp_buf2, start_ptr+1);
- ptr = temp_buf2;
- //trim space or tab
- while(*ptr != 0x00)
- {
- if((bTrimSpace && (*ptr == ' ')) || (*ptr == '\t') )
- ptr++;
- else
- break;
- }
-
- len = strlen(ptr);
- memset(dest, 0x00, destsize);
- strncpy(dest, ptr, len >= destsize ? destsize: len);
-
- os_free_mem(NULL, (PUCHAR)temp_buf1);
- os_free_mem(NULL, (PUCHAR)temp_buf2);
- return TRUE;
-}
-
-
-static int rtmp_parse_key_buffer_from_file(IN PRTMP_ADAPTER pAd,IN PSTRING buffer,IN ULONG KeyType,IN INT BSSIdx,IN INT KeyIdx)
-{
- PSTRING keybuff;
- //INT i = BSSIdx, idx = KeyIdx, retVal;
- ULONG KeyLen;
- //UCHAR CipherAlg = CIPHER_WEP64;
- CIPHER_KEY *pSharedKey;
-
- keybuff = buffer;
- KeyLen = strlen(keybuff);
- pSharedKey = &pAd->SharedKey[BSSIdx][KeyIdx];
-
- if(((KeyType != 0) && (KeyType != 1)) ||
- ((KeyType == 0) && (KeyLen != 10) && (KeyLen != 26)) ||
- ((KeyType== 1) && (KeyLen != 5) && (KeyLen != 13)))
- {
- DBGPRINT(RT_DEBUG_ERROR, ("Key%dStr is Invalid key length(%ld) or Type(%ld)\n",
- KeyIdx+1, KeyLen, KeyType));
- return FALSE;
- }
- else
- {
- return RT_CfgSetWepKey(pAd, buffer, pSharedKey, KeyIdx);
- }
-
-}
-
-
-static void rtmp_read_key_parms_from_file(IN PRTMP_ADAPTER pAd, PSTRING tmpbuf, PSTRING buffer)
-{
- STRING tok_str[16];
- PSTRING macptr;
- INT i = 0, idx;
- ULONG KeyType[MAX_MBSSID_NUM];
- ULONG KeyIdx;
-
- NdisZeroMemory(KeyType, sizeof(KeyType));
-
- //DefaultKeyID
- if(RTMPGetKeyParameter("DefaultKeyID", tmpbuf, 25, buffer, TRUE))
- {
- {
- KeyIdx = simple_strtol(tmpbuf, 0, 10);
- if((KeyIdx >= 1 ) && (KeyIdx <= 4))
- pAd->StaCfg.DefaultKeyId = (UCHAR) (KeyIdx - 1);
- else
- pAd->StaCfg.DefaultKeyId = 0;
-
- DBGPRINT(RT_DEBUG_TRACE, ("DefaultKeyID(0~3)=%d\n", pAd->StaCfg.DefaultKeyId));
- }
- }
-
-
- for (idx = 0; idx < 4; idx++)
- {
- sprintf(tok_str, "Key%dType", idx + 1);
- //Key1Type
- if (RTMPGetKeyParameter(tok_str, tmpbuf, 128, buffer, TRUE))
- {
- for (i = 0, macptr = rstrtok(tmpbuf,";"); macptr; macptr = rstrtok(NULL,";"), i++)
- {
- /*
- do sanity check for KeyType length;
- or in station mode, the KeyType length > 1,
- the code will overwrite the stack of caller
- (RTMPSetProfileParameters) and cause srcbuf = NULL
- */
- if (i < MAX_MBSSID_NUM)
- KeyType[i] = simple_strtol(macptr, 0, 10);
- }
-
- {
- sprintf(tok_str, "Key%dStr", idx + 1);
- if (RTMPGetKeyParameter(tok_str, tmpbuf, 128, buffer, FALSE))
- {
- rtmp_parse_key_buffer_from_file(pAd, tmpbuf, KeyType[BSS0], BSS0, idx);
- }
- }
- }
- }
-}
-
-
-
-static void rtmp_read_sta_wmm_parms_from_file(IN PRTMP_ADAPTER pAd, char *tmpbuf, char *buffer)
-{
- PSTRING macptr;
- INT i=0;
- BOOLEAN bWmmEnable = FALSE;
-
- //WmmCapable
- if(RTMPGetKeyParameter("WmmCapable", tmpbuf, 32, buffer, TRUE))
- {
- if(simple_strtol(tmpbuf, 0, 10) != 0) //Enable
- {
- pAd->CommonCfg.bWmmCapable = TRUE;
- bWmmEnable = TRUE;
- }
- else //Disable
- {
- pAd->CommonCfg.bWmmCapable = FALSE;
- }
-
- DBGPRINT(RT_DEBUG_TRACE, ("WmmCapable=%d\n", pAd->CommonCfg.bWmmCapable));
- }
-
-
- //AckPolicy for AC_BK, AC_BE, AC_VI, AC_VO
- if(RTMPGetKeyParameter("AckPolicy", tmpbuf, 32, buffer, TRUE))
- {
- for (i = 0, macptr = rstrtok(tmpbuf,";"); macptr; macptr = rstrtok(NULL,";"), i++)
- {
- pAd->CommonCfg.AckPolicy[i] = (UCHAR)simple_strtol(macptr, 0, 10);
-
- DBGPRINT(RT_DEBUG_TRACE, ("AckPolicy[%d]=%d\n", i, pAd->CommonCfg.AckPolicy[i]));
- }
- }
-
- if (bWmmEnable)
- {
- //APSDCapable
- if(RTMPGetKeyParameter("APSDCapable", tmpbuf, 10, buffer, TRUE))
- {
- if(simple_strtol(tmpbuf, 0, 10) != 0) //Enable
- pAd->CommonCfg.bAPSDCapable = TRUE;
- else
- pAd->CommonCfg.bAPSDCapable = FALSE;
-
- DBGPRINT(RT_DEBUG_TRACE, ("APSDCapable=%d\n", pAd->CommonCfg.bAPSDCapable));
- }
-
- //MaxSPLength
- if(RTMPGetKeyParameter("MaxSPLength", tmpbuf, 10, buffer, TRUE))
- {
- pAd->CommonCfg.MaxSPLength = simple_strtol(tmpbuf, 0, 10);
-
- DBGPRINT(RT_DEBUG_TRACE, ("MaxSPLength=%d\n", pAd->CommonCfg.MaxSPLength));
- }
-
- //APSDAC for AC_BE, AC_BK, AC_VI, AC_VO
- if(RTMPGetKeyParameter("APSDAC", tmpbuf, 32, buffer, TRUE))
- {
- BOOLEAN apsd_ac[4];
-
- for (i = 0, macptr = rstrtok(tmpbuf,";"); macptr; macptr = rstrtok(NULL,";"), i++)
- {
- apsd_ac[i] = (BOOLEAN)simple_strtol(macptr, 0, 10);
-
- DBGPRINT(RT_DEBUG_TRACE, ("APSDAC%d %d\n", i, apsd_ac[i]));
- }
-
- pAd->CommonCfg.bAPSDAC_BE = apsd_ac[0];
- pAd->CommonCfg.bAPSDAC_BK = apsd_ac[1];
- pAd->CommonCfg.bAPSDAC_VI = apsd_ac[2];
- pAd->CommonCfg.bAPSDAC_VO = apsd_ac[3];
-
- pAd->CommonCfg.bACMAPSDTr[0] = apsd_ac[0];
- pAd->CommonCfg.bACMAPSDTr[1] = apsd_ac[1];
- pAd->CommonCfg.bACMAPSDTr[2] = apsd_ac[2];
- pAd->CommonCfg.bACMAPSDTr[3] = apsd_ac[3];
- }
- }
-
-}
-
-
-static void HTParametersHook(
- IN PRTMP_ADAPTER pAd,
- IN PSTRING pValueStr,
- IN PSTRING pInput)
-{
-
- long Value;
-
- if (RTMPGetKeyParameter("HT_PROTECT", pValueStr, 25, pInput, TRUE))
- {
- Value = simple_strtol(pValueStr, 0, 10);
- if (Value == 0)
- {
- pAd->CommonCfg.bHTProtect = FALSE;
- }
- else
- {
- pAd->CommonCfg.bHTProtect = TRUE;
- }
- DBGPRINT(RT_DEBUG_TRACE, ("HT: Protection = %s\n", (Value==0) ? "Disable" : "Enable"));
- }
-
- if (RTMPGetKeyParameter("HT_MIMOPSEnable", pValueStr, 25, pInput, TRUE))
- {
- Value = simple_strtol(pValueStr, 0, 10);
- if (Value == 0)
- {
- pAd->CommonCfg.bMIMOPSEnable = FALSE;
- }
- else
- {
- pAd->CommonCfg.bMIMOPSEnable = TRUE;
- }
- DBGPRINT(RT_DEBUG_TRACE, ("HT: MIMOPSEnable = %s\n", (Value==0) ? "Disable" : "Enable"));
- }
-
-
- if (RTMPGetKeyParameter("HT_MIMOPSMode", pValueStr, 25, pInput, TRUE))
- {
- Value = simple_strtol(pValueStr, 0, 10);
- if (Value > MMPS_ENABLE)
- {
- pAd->CommonCfg.BACapability.field.MMPSmode = MMPS_ENABLE;
- }
- else
- {
- //TODO: add mimo power saving mechanism
- pAd->CommonCfg.BACapability.field.MMPSmode = MMPS_ENABLE;
- //pAd->CommonCfg.BACapability.field.MMPSmode = Value;
- }
- DBGPRINT(RT_DEBUG_TRACE, ("HT: MIMOPS Mode = %d\n", (INT) Value));
- }
-
- if (RTMPGetKeyParameter("HT_BADecline", pValueStr, 25, pInput, TRUE))
- {
- Value = simple_strtol(pValueStr, 0, 10);
- if (Value == 0)
- {
- pAd->CommonCfg.bBADecline = FALSE;
- }
- else
- {
- pAd->CommonCfg.bBADecline = TRUE;
- }
- DBGPRINT(RT_DEBUG_TRACE, ("HT: BA Decline = %s\n", (Value==0) ? "Disable" : "Enable"));
- }
-
-
- if (RTMPGetKeyParameter("HT_DisableReordering", pValueStr, 25, pInput, TRUE))
- {
- Value = simple_strtol(pValueStr, 0, 10);
- if (Value == 0)
- {
- pAd->CommonCfg.bDisableReordering = FALSE;
- }
- else
- {
- pAd->CommonCfg.bDisableReordering = TRUE;
- }
- DBGPRINT(RT_DEBUG_TRACE, ("HT: DisableReordering = %s\n", (Value==0) ? "Disable" : "Enable"));
- }
-
- if (RTMPGetKeyParameter("HT_AutoBA", pValueStr, 25, pInput, TRUE))
- {
- Value = simple_strtol(pValueStr, 0, 10);
- if (Value == 0)
- {
- pAd->CommonCfg.BACapability.field.AutoBA = FALSE;
- pAd->CommonCfg.BACapability.field.Policy = BA_NOTUSE;
- }
- else
- {
- pAd->CommonCfg.BACapability.field.AutoBA = TRUE;
- pAd->CommonCfg.BACapability.field.Policy = IMMED_BA;
- }
- pAd->CommonCfg.REGBACapability.field.AutoBA = pAd->CommonCfg.BACapability.field.AutoBA;
- DBGPRINT(RT_DEBUG_TRACE, ("HT: Auto BA = %s\n", (Value==0) ? "Disable" : "Enable"));
- }
-
- // Tx_+HTC frame
- if (RTMPGetKeyParameter("HT_HTC", pValueStr, 25, pInput, TRUE))
- {
- Value = simple_strtol(pValueStr, 0, 10);
- if (Value == 0)
- {
- pAd->HTCEnable = FALSE;
- }
- else
- {
- pAd->HTCEnable = TRUE;
- }
- DBGPRINT(RT_DEBUG_TRACE, ("HT: Tx +HTC frame = %s\n", (Value==0) ? "Disable" : "Enable"));
- }
-
- // Enable HT Link Adaptation Control
- if (RTMPGetKeyParameter("HT_LinkAdapt", pValueStr, 25, pInput, TRUE))
- {
- Value = simple_strtol(pValueStr, 0, 10);
- if (Value == 0)
- {
- pAd->bLinkAdapt = FALSE;
- }
- else
- {
- pAd->HTCEnable = TRUE;
- pAd->bLinkAdapt = TRUE;
- }
- DBGPRINT(RT_DEBUG_TRACE, ("HT: Link Adaptation Control = %s\n", (Value==0) ? "Disable" : "Enable(+HTC)"));
- }
-
- // Reverse Direction Mechanism
- if (RTMPGetKeyParameter("HT_RDG", pValueStr, 25, pInput, TRUE))
- {
- Value = simple_strtol(pValueStr, 0, 10);
- if (Value == 0)
- {
- pAd->CommonCfg.bRdg = FALSE;
- }
- else
- {
- pAd->HTCEnable = TRUE;
- pAd->CommonCfg.bRdg = TRUE;
- }
- DBGPRINT(RT_DEBUG_TRACE, ("HT: RDG = %s\n", (Value==0) ? "Disable" : "Enable(+HTC)"));
- }
-
-
-
-
- // Tx A-MSUD ?
- if (RTMPGetKeyParameter("HT_AMSDU", pValueStr, 25, pInput, TRUE))
- {
- Value = simple_strtol(pValueStr, 0, 10);
- if (Value == 0)
- {
- pAd->CommonCfg.BACapability.field.AmsduEnable = FALSE;
- }
- else
- {
- pAd->CommonCfg.BACapability.field.AmsduEnable = TRUE;
- }
- DBGPRINT(RT_DEBUG_TRACE, ("HT: Tx A-MSDU = %s\n", (Value==0) ? "Disable" : "Enable"));
- }
-
- // MPDU Density
- if (RTMPGetKeyParameter("HT_MpduDensity", pValueStr, 25, pInput, TRUE))
- {
- Value = simple_strtol(pValueStr, 0, 10);
- if (Value <=7 && Value >= 0)
- {
- pAd->CommonCfg.BACapability.field.MpduDensity = Value;
- DBGPRINT(RT_DEBUG_TRACE, ("HT: MPDU Density = %d\n", (INT) Value));
- }
- else
- {
- pAd->CommonCfg.BACapability.field.MpduDensity = 4;
- DBGPRINT(RT_DEBUG_TRACE, ("HT: MPDU Density = %d (Default)\n", 4));
- }
- }
-
- // Max Rx BA Window Size
- if (RTMPGetKeyParameter("HT_BAWinSize", pValueStr, 25, pInput, TRUE))
- {
- Value = simple_strtol(pValueStr, 0, 10);
-
- if (Value >=1 && Value <= 64)
- {
- pAd->CommonCfg.REGBACapability.field.RxBAWinLimit = Value;
- pAd->CommonCfg.BACapability.field.RxBAWinLimit = Value;
- DBGPRINT(RT_DEBUG_TRACE, ("HT: BA Windw Size = %d\n", (INT) Value));
- }
- else
- {
- pAd->CommonCfg.REGBACapability.field.RxBAWinLimit = 64;
- pAd->CommonCfg.BACapability.field.RxBAWinLimit = 64;
- DBGPRINT(RT_DEBUG_TRACE, ("HT: BA Windw Size = 64 (Defualt)\n"));
- }
-
- }
-
- // Guard Interval
- if (RTMPGetKeyParameter("HT_GI", pValueStr, 25, pInput, TRUE))
- {
- Value = simple_strtol(pValueStr, 0, 10);
-
- if (Value == GI_400)
- {
- pAd->CommonCfg.RegTransmitSetting.field.ShortGI = GI_400;
- }
- else
- {
- pAd->CommonCfg.RegTransmitSetting.field.ShortGI = GI_800;
- }
-
- DBGPRINT(RT_DEBUG_TRACE, ("HT: Guard Interval = %s\n", (Value==GI_400) ? "400" : "800" ));
- }
-
- // HT Operation Mode : Mixed Mode , Green Field
- if (RTMPGetKeyParameter("HT_OpMode", pValueStr, 25, pInput, TRUE))
- {
- Value = simple_strtol(pValueStr, 0, 10);
-
- if (Value == HTMODE_GF)
- {
-
- pAd->CommonCfg.RegTransmitSetting.field.HTMODE = HTMODE_GF;
- }
- else
- {
- pAd->CommonCfg.RegTransmitSetting.field.HTMODE = HTMODE_MM;
- }
-
- DBGPRINT(RT_DEBUG_TRACE, ("HT: Operate Mode = %s\n", (Value==HTMODE_GF) ? "Green Field" : "Mixed Mode" ));
- }
-
- // Fixed Tx mode : CCK, OFDM
- if (RTMPGetKeyParameter("FixedTxMode", pValueStr, 25, pInput, TRUE))
- {
- UCHAR fix_tx_mode;
-
- {
- fix_tx_mode = FIXED_TXMODE_HT;
-
- if (strcmp(pValueStr, "OFDM") == 0 || strcmp(pValueStr, "ofdm") == 0)
- {
- fix_tx_mode = FIXED_TXMODE_OFDM;
- }
- else if (strcmp(pValueStr, "CCK") == 0 || strcmp(pValueStr, "cck") == 0)
- {
- fix_tx_mode = FIXED_TXMODE_CCK;
- }
- else if (strcmp(pValueStr, "HT") == 0 || strcmp(pValueStr, "ht") == 0)
- {
- fix_tx_mode = FIXED_TXMODE_HT;
- }
- else
- {
- Value = simple_strtol(pValueStr, 0, 10);
- // 1 : CCK
- // 2 : OFDM
- // otherwise : HT
- if (Value == FIXED_TXMODE_CCK || Value == FIXED_TXMODE_OFDM)
- fix_tx_mode = Value;
- else
- fix_tx_mode = FIXED_TXMODE_HT;
- }
-
- pAd->StaCfg.DesiredTransmitSetting.field.FixedTxMode = fix_tx_mode;
- DBGPRINT(RT_DEBUG_TRACE, ("Fixed Tx Mode = %d\n", fix_tx_mode));
-
- }
- }
-
-
- // Channel Width
- if (RTMPGetKeyParameter("HT_BW", pValueStr, 25, pInput, TRUE))
- {
- Value = simple_strtol(pValueStr, 0, 10);
-
- if (Value == BW_40)
- {
- pAd->CommonCfg.RegTransmitSetting.field.BW = BW_40;
- }
- else
- {
- pAd->CommonCfg.RegTransmitSetting.field.BW = BW_20;
- }
-
- DBGPRINT(RT_DEBUG_TRACE, ("HT: Channel Width = %s\n", (Value==BW_40) ? "40 MHz" : "20 MHz" ));
- }
-
- if (RTMPGetKeyParameter("HT_EXTCHA", pValueStr, 25, pInput, TRUE))
- {
- Value = simple_strtol(pValueStr, 0, 10);
-
- if (Value == 0)
- {
-
- pAd->CommonCfg.RegTransmitSetting.field.EXTCHA = EXTCHA_BELOW;
- }
- else
- {
- pAd->CommonCfg.RegTransmitSetting.field.EXTCHA = EXTCHA_ABOVE;
- }
-
- DBGPRINT(RT_DEBUG_TRACE, ("HT: Ext Channel = %s\n", (Value==0) ? "BELOW" : "ABOVE" ));
- }
-
- // MSC
- if (RTMPGetKeyParameter("HT_MCS", pValueStr, 50, pInput, TRUE))
- {
- {
- Value = simple_strtol(pValueStr, 0, 10);
-
-// if ((Value >= 0 && Value <= 15) || (Value == 32))
- if ((Value >= 0 && Value <= 23) || (Value == 32)) // 3*3
- {
- pAd->StaCfg.DesiredTransmitSetting.field.MCS = Value;
- pAd->StaCfg.bAutoTxRateSwitch = FALSE;
- DBGPRINT(RT_DEBUG_TRACE, ("HT: MCS = %d\n", pAd->StaCfg.DesiredTransmitSetting.field.MCS));
- }
- else
- {
- pAd->StaCfg.DesiredTransmitSetting.field.MCS = MCS_AUTO;
- pAd->StaCfg.bAutoTxRateSwitch = TRUE;
- DBGPRINT(RT_DEBUG_TRACE, ("HT: MCS = AUTO\n"));
- }
- }
- }
-
- // STBC
- if (RTMPGetKeyParameter("HT_STBC", pValueStr, 25, pInput, TRUE))
- {
- Value = simple_strtol(pValueStr, 0, 10);
- if (Value == STBC_USE)
- {
- pAd->CommonCfg.RegTransmitSetting.field.STBC = STBC_USE;
- }
- else
- {
- pAd->CommonCfg.RegTransmitSetting.field.STBC = STBC_NONE;
- }
- DBGPRINT(RT_DEBUG_TRACE, ("HT: STBC = %d\n", pAd->CommonCfg.RegTransmitSetting.field.STBC));
- }
-
- // 40_Mhz_Intolerant
- if (RTMPGetKeyParameter("HT_40MHZ_INTOLERANT", pValueStr, 25, pInput, TRUE))
- {
- Value = simple_strtol(pValueStr, 0, 10);
- if (Value == 0)
- {
- pAd->CommonCfg.bForty_Mhz_Intolerant = FALSE;
- }
- else
- {
- pAd->CommonCfg.bForty_Mhz_Intolerant = TRUE;
- }
- DBGPRINT(RT_DEBUG_TRACE, ("HT: 40MHZ INTOLERANT = %d\n", pAd->CommonCfg.bForty_Mhz_Intolerant));
- }
- //HT_TxStream
- if(RTMPGetKeyParameter("HT_TxStream", pValueStr, 10, pInput, TRUE))
- {
- switch (simple_strtol(pValueStr, 0, 10))
- {
- case 1:
- pAd->CommonCfg.TxStream = 1;
- break;
- case 2:
- pAd->CommonCfg.TxStream = 2;
- break;
- case 3: // 3*3
- default:
- pAd->CommonCfg.TxStream = 3;
-
- if (pAd->MACVersion < RALINK_2883_VERSION)
- pAd->CommonCfg.TxStream = 2; // only 2 tx streams for RT2860 series
- break;
- }
- DBGPRINT(RT_DEBUG_TRACE, ("HT: Tx Stream = %d\n", pAd->CommonCfg.TxStream));
- }
- //HT_RxStream
- if(RTMPGetKeyParameter("HT_RxStream", pValueStr, 10, pInput, TRUE))
- {
- switch (simple_strtol(pValueStr, 0, 10))
- {
- case 1:
- pAd->CommonCfg.RxStream = 1;
- break;
- case 2:
- pAd->CommonCfg.RxStream = 2;
- break;
- case 3:
- default:
- pAd->CommonCfg.RxStream = 3;
-
- if (pAd->MACVersion < RALINK_2883_VERSION)
- pAd->CommonCfg.RxStream = 2; // only 2 rx streams for RT2860 series
- break;
- }
- DBGPRINT(RT_DEBUG_TRACE, ("HT: Rx Stream = %d\n", pAd->CommonCfg.RxStream));
- }
- //2008/11/05: KH add to support Antenna power-saving of AP<--
- //Green AP
- if(RTMPGetKeyParameter("GreenAP", pValueStr, 10, pInput, TRUE))
- {
- Value = simple_strtol(pValueStr, 0, 10);
- if (Value == 0)
- {
- pAd->CommonCfg.bGreenAPEnable = FALSE;
- }
- else
- {
- pAd->CommonCfg.bGreenAPEnable = TRUE;
- }
- DBGPRINT(RT_DEBUG_TRACE, ("HT: Green AP= %d\n", pAd->CommonCfg.bGreenAPEnable));
- }
-
- // HT_DisallowTKIP
- if (RTMPGetKeyParameter("HT_DisallowTKIP", pValueStr, 25, pInput, TRUE))
- {
- Value = simple_strtol(pValueStr, 0, 10);
-
- if (Value == 1)
- {
- pAd->CommonCfg.HT_DisallowTKIP = TRUE;
- }
- else
- {
- pAd->CommonCfg.HT_DisallowTKIP = FALSE;
- }
-
- DBGPRINT(RT_DEBUG_TRACE, ("HT: Disallow TKIP mode = %s\n", (pAd->CommonCfg.HT_DisallowTKIP == TRUE) ? "ON" : "OFF" ));
- }
-
-
- //2008/11/05:KH add to support Antenna power-saving of AP-->
-}
-
-
-NDIS_STATUS RTMPSetProfileParameters(
- IN RTMP_ADAPTER *pAd,
- IN PSTRING pBuffer)
-{
- PSTRING tmpbuf;
- ULONG RtsThresh;
- ULONG FragThresh;
- PSTRING macptr;
- INT i = 0, retval;
- tmpbuf = kmalloc(MAX_PARAM_BUFFER_SIZE, MEM_ALLOC_FLAG);
- if(tmpbuf == NULL)
- return NDIS_STATUS_FAILURE;
-
- do
- {
- // set file parameter to portcfg
- //CountryRegion
- if(RTMPGetKeyParameter("CountryRegion", tmpbuf, 25, pBuffer, TRUE))
- {
- retval = RT_CfgSetCountryRegion(pAd, tmpbuf, BAND_24G);
- DBGPRINT(RT_DEBUG_TRACE, ("CountryRegion=%d\n", pAd->CommonCfg.CountryRegion));
- }
- //CountryRegionABand
- if(RTMPGetKeyParameter("CountryRegionABand", tmpbuf, 25, pBuffer, TRUE))
- {
- retval = RT_CfgSetCountryRegion(pAd, tmpbuf, BAND_5G);
- DBGPRINT(RT_DEBUG_TRACE, ("CountryRegionABand=%d\n", pAd->CommonCfg.CountryRegionForABand));
- }
- //CountryCode
- if(RTMPGetKeyParameter("CountryCode", tmpbuf, 25, pBuffer, TRUE))
- {
- NdisMoveMemory(pAd->CommonCfg.CountryCode, tmpbuf , 2);
- if (strlen((PSTRING) pAd->CommonCfg.CountryCode) != 0)
- {
- pAd->CommonCfg.bCountryFlag = TRUE;
- }
- DBGPRINT(RT_DEBUG_TRACE, ("CountryCode=%s\n", pAd->CommonCfg.CountryCode));
- }
- //ChannelGeography
- if(RTMPGetKeyParameter("ChannelGeography", tmpbuf, 25, pBuffer, TRUE))
- {
- UCHAR Geography = (UCHAR) simple_strtol(tmpbuf, 0, 10);
- if (Geography <= BOTH)
- {
- pAd->CommonCfg.Geography = Geography;
- pAd->CommonCfg.CountryCode[2] =
- (pAd->CommonCfg.Geography == BOTH) ? ' ' : ((pAd->CommonCfg.Geography == IDOR) ? 'I' : 'O');
- DBGPRINT(RT_DEBUG_TRACE, ("ChannelGeography=%d\n", pAd->CommonCfg.Geography));
- }
- }
- else
- {
- pAd->CommonCfg.Geography = BOTH;
- pAd->CommonCfg.CountryCode[2] = ' ';
- }
-
- {
- //SSID
- if (RTMPGetKeyParameter("SSID", tmpbuf, 256, pBuffer, FALSE))
- {
- if (strlen(tmpbuf) <= 32)
- {
- pAd->CommonCfg.SsidLen = (UCHAR) strlen(tmpbuf);
- NdisZeroMemory(pAd->CommonCfg.Ssid, NDIS_802_11_LENGTH_SSID);
- NdisMoveMemory(pAd->CommonCfg.Ssid, tmpbuf, pAd->CommonCfg.SsidLen);
- pAd->MlmeAux.AutoReconnectSsidLen = pAd->CommonCfg.SsidLen;
- NdisZeroMemory(pAd->MlmeAux.AutoReconnectSsid, NDIS_802_11_LENGTH_SSID);
- NdisMoveMemory(pAd->MlmeAux.AutoReconnectSsid, tmpbuf, pAd->MlmeAux.AutoReconnectSsidLen);
- pAd->MlmeAux.SsidLen = pAd->CommonCfg.SsidLen;
- NdisZeroMemory(pAd->MlmeAux.Ssid, NDIS_802_11_LENGTH_SSID);
- NdisMoveMemory(pAd->MlmeAux.Ssid, tmpbuf, pAd->MlmeAux.SsidLen);
- DBGPRINT(RT_DEBUG_TRACE, ("%s::(SSID=%s)\n", __func__, tmpbuf));
- }
- }
- }
-
- {
- //NetworkType
- if (RTMPGetKeyParameter("NetworkType", tmpbuf, 25, pBuffer, TRUE))
- {
- pAd->bConfigChanged = TRUE;
- if (strcmp(tmpbuf, "Adhoc") == 0)
- pAd->StaCfg.BssType = BSS_ADHOC;
- else //Default Infrastructure mode
- pAd->StaCfg.BssType = BSS_INFRA;
- // Reset Ralink supplicant to not use, it will be set to start when UI set PMK key
- pAd->StaCfg.WpaState = SS_NOTUSE;
- DBGPRINT(RT_DEBUG_TRACE, ("%s::(NetworkType=%d)\n", __func__, pAd->StaCfg.BssType));
- }
- }
-#ifdef RTMP_MAC_PCI
- //NewPCIePS
- if(RTMPGetKeyParameter("NewPCIePS", tmpbuf, 10, pBuffer, TRUE))
- {
- UCHAR temp_buffer = (UCHAR) simple_strtol(tmpbuf, 0, 10);
- if(temp_buffer>0)
- pAd->StaCfg.PSControl.field.EnableNewPS=TRUE;
- else
- pAd->StaCfg.PSControl.field.EnableNewPS=FALSE;
- DBGPRINT(RT_DEBUG_TRACE, ("NewPCIePS=%d\n", pAd->StaCfg.PSControl.field.EnableNewPS));
- }
-#endif // RTMP_MAC_PCI //
-#ifdef RT3090
- //PCIePowerLevel
-
- if(RTMPGetKeyParameter("PCIePowerLevel", tmpbuf, 10, pBuffer, TRUE))
- {
- pAd->StaCfg.PSControl.field.rt30xxPowerMode = (UCHAR) simple_strtol(tmpbuf, 0, 10);
- DBGPRINT(RT_DEBUG_TRACE, ("PCIePowerLevel=%d\n", pAd->StaCfg.PSControl.field.rt30xxPowerMode));
- }
- //FollowHostASPM
- if(RTMPGetKeyParameter("FollowHostASPM", tmpbuf, 10, pBuffer, TRUE))
- {
- UCHAR temp_buffer = (UCHAR) simple_strtol(tmpbuf, 0, 10);
-
- if(temp_buffer>0)
- pAd->StaCfg.PSControl.field.rt30xxFollowHostASPM=TRUE;
- else
- pAd->StaCfg.PSControl.field.rt30xxFollowHostASPM=FALSE;
- DBGPRINT(RT_DEBUG_TRACE, ("rt30xxFollowHostASPM=%d\n", pAd->StaCfg.PSControl.field.rt30xxFollowHostASPM));
- }
- //ForceTestASPM
- if(RTMPGetKeyParameter("ForceTestASPM", tmpbuf, 10, pBuffer, TRUE))
- {
- UCHAR temp_buffer = (UCHAR) simple_strtol(tmpbuf, 0, 10);
-
- if(temp_buffer>0)
- pAd->StaCfg.PSControl.field.rt30xxForceASPMTest=TRUE;
- else
- pAd->StaCfg.PSControl.field.rt30xxForceASPMTest=FALSE;
- DBGPRINT(RT_DEBUG_TRACE, ("rt30xxForceASPM=%d\n", pAd->StaCfg.PSControl.field.rt30xxForceASPMTest));
- }
-#endif // RT3090 //
- //Channel
- if(RTMPGetKeyParameter("Channel", tmpbuf, 10, pBuffer, TRUE))
- {
- pAd->CommonCfg.Channel = (UCHAR) simple_strtol(tmpbuf, 0, 10);
- DBGPRINT(RT_DEBUG_TRACE, ("Channel=%d\n", pAd->CommonCfg.Channel));
- }
- //WirelessMode
- if(RTMPGetKeyParameter("WirelessMode", tmpbuf, 10, pBuffer, TRUE))
- {
- RT_CfgSetWirelessMode(pAd, tmpbuf);
- DBGPRINT(RT_DEBUG_TRACE, ("PhyMode=%d\n", pAd->CommonCfg.PhyMode));
- }
- //BasicRate
- if(RTMPGetKeyParameter("BasicRate", tmpbuf, 10, pBuffer, TRUE))
- {
- pAd->CommonCfg.BasicRateBitmap = (ULONG) simple_strtol(tmpbuf, 0, 10);
- DBGPRINT(RT_DEBUG_TRACE, ("BasicRate=%ld\n", pAd->CommonCfg.BasicRateBitmap));
- }
- //BeaconPeriod
- if(RTMPGetKeyParameter("BeaconPeriod", tmpbuf, 10, pBuffer, TRUE))
- {
- pAd->CommonCfg.BeaconPeriod = (USHORT) simple_strtol(tmpbuf, 0, 10);
- DBGPRINT(RT_DEBUG_TRACE, ("BeaconPeriod=%d\n", pAd->CommonCfg.BeaconPeriod));
- }
- //TxPower
- if(RTMPGetKeyParameter("TxPower", tmpbuf, 10, pBuffer, TRUE))
- {
- pAd->CommonCfg.TxPowerPercentage = (ULONG) simple_strtol(tmpbuf, 0, 10);
- pAd->CommonCfg.TxPowerDefault = pAd->CommonCfg.TxPowerPercentage;
- DBGPRINT(RT_DEBUG_TRACE, ("TxPower=%ld\n", pAd->CommonCfg.TxPowerPercentage));
- }
- //BGProtection
- if(RTMPGetKeyParameter("BGProtection", tmpbuf, 10, pBuffer, TRUE))
- {
- //#if 0 //#ifndef WIFI_TEST
- // pAd->CommonCfg.UseBGProtection = 2;// disable b/g protection for throughput test
- //#else
- switch (simple_strtol(tmpbuf, 0, 10))
- {
- case 1: //Always On
- pAd->CommonCfg.UseBGProtection = 1;
- break;
- case 2: //Always OFF
- pAd->CommonCfg.UseBGProtection = 2;
- break;
- case 0: //AUTO
- default:
- pAd->CommonCfg.UseBGProtection = 0;
- break;
- }
- //#endif
- DBGPRINT(RT_DEBUG_TRACE, ("BGProtection=%ld\n", pAd->CommonCfg.UseBGProtection));
- }
- //OLBCDetection
- if(RTMPGetKeyParameter("DisableOLBC", tmpbuf, 10, pBuffer, TRUE))
- {
- switch (simple_strtol(tmpbuf, 0, 10))
- {
- case 1: //disable OLBC Detection
- pAd->CommonCfg.DisableOLBCDetect = 1;
- break;
- case 0: //enable OLBC Detection
- pAd->CommonCfg.DisableOLBCDetect = 0;
- break;
- default:
- pAd->CommonCfg.DisableOLBCDetect= 0;
- break;
- }
- DBGPRINT(RT_DEBUG_TRACE, ("OLBCDetection=%ld\n", pAd->CommonCfg.DisableOLBCDetect));
- }
- //TxPreamble
- if(RTMPGetKeyParameter("TxPreamble", tmpbuf, 10, pBuffer, TRUE))
- {
- switch (simple_strtol(tmpbuf, 0, 10))
- {
- case Rt802_11PreambleShort:
- pAd->CommonCfg.TxPreamble = Rt802_11PreambleShort;
- break;
- case Rt802_11PreambleLong:
- default:
- pAd->CommonCfg.TxPreamble = Rt802_11PreambleLong;
- break;
- }
- DBGPRINT(RT_DEBUG_TRACE, ("TxPreamble=%ld\n", pAd->CommonCfg.TxPreamble));
- }
- //RTSThreshold
- if(RTMPGetKeyParameter("RTSThreshold", tmpbuf, 10, pBuffer, TRUE))
- {
- RtsThresh = simple_strtol(tmpbuf, 0, 10);
- if( (RtsThresh >= 1) && (RtsThresh <= MAX_RTS_THRESHOLD) )
- pAd->CommonCfg.RtsThreshold = (USHORT)RtsThresh;
- else
- pAd->CommonCfg.RtsThreshold = MAX_RTS_THRESHOLD;
-
- DBGPRINT(RT_DEBUG_TRACE, ("RTSThreshold=%d\n", pAd->CommonCfg.RtsThreshold));
- }
- //FragThreshold
- if(RTMPGetKeyParameter("FragThreshold", tmpbuf, 10, pBuffer, TRUE))
- {
- FragThresh = simple_strtol(tmpbuf, 0, 10);
- pAd->CommonCfg.bUseZeroToDisableFragment = FALSE;
-
- if (FragThresh > MAX_FRAG_THRESHOLD || FragThresh < MIN_FRAG_THRESHOLD)
- { //illegal FragThresh so we set it to default
- pAd->CommonCfg.FragmentThreshold = MAX_FRAG_THRESHOLD;
- pAd->CommonCfg.bUseZeroToDisableFragment = TRUE;
- }
- else if (FragThresh % 2 == 1)
- {
- // The length of each fragment shall always be an even number of octets, except for the last fragment
- // of an MSDU or MMPDU, which may be either an even or an odd number of octets.
- pAd->CommonCfg.FragmentThreshold = (USHORT)(FragThresh - 1);
- }
- else
- {
- pAd->CommonCfg.FragmentThreshold = (USHORT)FragThresh;
- }
- //pAd->CommonCfg.AllowFragSize = (pAd->CommonCfg.FragmentThreshold) - LENGTH_802_11 - LENGTH_CRC;
- DBGPRINT(RT_DEBUG_TRACE, ("FragThreshold=%d\n", pAd->CommonCfg.FragmentThreshold));
- }
- //TxBurst
- if(RTMPGetKeyParameter("TxBurst", tmpbuf, 10, pBuffer, TRUE))
- {
- //#ifdef WIFI_TEST
- // pAd->CommonCfg.bEnableTxBurst = FALSE;
- //#else
- if(simple_strtol(tmpbuf, 0, 10) != 0) //Enable
- pAd->CommonCfg.bEnableTxBurst = TRUE;
- else //Disable
- pAd->CommonCfg.bEnableTxBurst = FALSE;
- //#endif
- DBGPRINT(RT_DEBUG_TRACE, ("TxBurst=%d\n", pAd->CommonCfg.bEnableTxBurst));
- }
-
-#ifdef AGGREGATION_SUPPORT
- //PktAggregate
- if(RTMPGetKeyParameter("PktAggregate", tmpbuf, 10, pBuffer, TRUE))
- {
- if(simple_strtol(tmpbuf, 0, 10) != 0) //Enable
- pAd->CommonCfg.bAggregationCapable = TRUE;
- else //Disable
- pAd->CommonCfg.bAggregationCapable = FALSE;
-#ifdef PIGGYBACK_SUPPORT
- pAd->CommonCfg.bPiggyBackCapable = pAd->CommonCfg.bAggregationCapable;
-#endif // PIGGYBACK_SUPPORT //
- DBGPRINT(RT_DEBUG_TRACE, ("PktAggregate=%d\n", pAd->CommonCfg.bAggregationCapable));
- }
-#else
- pAd->CommonCfg.bAggregationCapable = FALSE;
- pAd->CommonCfg.bPiggyBackCapable = FALSE;
-#endif // AGGREGATION_SUPPORT //
-
- // WmmCapable
-
- rtmp_read_sta_wmm_parms_from_file(pAd, tmpbuf, pBuffer);
-
- //ShortSlot
- if(RTMPGetKeyParameter("ShortSlot", tmpbuf, 10, pBuffer, TRUE))
- {
- RT_CfgSetShortSlot(pAd, tmpbuf);
- DBGPRINT(RT_DEBUG_TRACE, ("ShortSlot=%d\n", pAd->CommonCfg.bUseShortSlotTime));
- }
- //IEEE80211H
- if(RTMPGetKeyParameter("IEEE80211H", tmpbuf, 10, pBuffer, TRUE))
- {
- for (i = 0, macptr = rstrtok(tmpbuf,";"); macptr; macptr = rstrtok(NULL,";"), i++)
- {
- if(simple_strtol(macptr, 0, 10) != 0) //Enable
- pAd->CommonCfg.bIEEE80211H = TRUE;
- else //Disable
- pAd->CommonCfg.bIEEE80211H = FALSE;
-
- DBGPRINT(RT_DEBUG_TRACE, ("IEEE80211H=%d\n", pAd->CommonCfg.bIEEE80211H));
- }
- }
- //CSPeriod
- if(RTMPGetKeyParameter("CSPeriod", tmpbuf, 10, pBuffer, TRUE))
- {
- if(simple_strtol(tmpbuf, 0, 10) != 0)
- pAd->CommonCfg.RadarDetect.CSPeriod = simple_strtol(tmpbuf, 0, 10);
- else
- pAd->CommonCfg.RadarDetect.CSPeriod = 0;
-
- DBGPRINT(RT_DEBUG_TRACE, ("CSPeriod=%d\n", pAd->CommonCfg.RadarDetect.CSPeriod));
- }
-
- //RDRegion
- if(RTMPGetKeyParameter("RDRegion", tmpbuf, 128, pBuffer, TRUE))
- {
- RADAR_DETECT_STRUCT *pRadarDetect = &pAd->CommonCfg.RadarDetect;
- if ((strncmp(tmpbuf, "JAP_W53", 7) == 0) || (strncmp(tmpbuf, "jap_w53", 7) == 0))
- {
- pRadarDetect->RDDurRegion = JAP_W53;
- pRadarDetect->DfsSessionTime = 15;
- }
- else if ((strncmp(tmpbuf, "JAP_W56", 7) == 0) || (strncmp(tmpbuf, "jap_w56", 7) == 0))
- {
- pRadarDetect->RDDurRegion = JAP_W56;
- pRadarDetect->DfsSessionTime = 13;
- }
- else if ((strncmp(tmpbuf, "JAP", 3) == 0) || (strncmp(tmpbuf, "jap", 3) == 0))
- {
- pRadarDetect->RDDurRegion = JAP;
- pRadarDetect->DfsSessionTime = 5;
- }
- else if ((strncmp(tmpbuf, "FCC", 3) == 0) || (strncmp(tmpbuf, "fcc", 3) == 0))
- {
- pRadarDetect->RDDurRegion = FCC;
- pRadarDetect->DfsSessionTime = 5;
- }
- else if ((strncmp(tmpbuf, "CE", 2) == 0) || (strncmp(tmpbuf, "ce", 2) == 0))
- {
- pRadarDetect->RDDurRegion = CE;
- pRadarDetect->DfsSessionTime = 13;
- }
- else
- {
- pRadarDetect->RDDurRegion = CE;
- pRadarDetect->DfsSessionTime = 13;
- }
-
- DBGPRINT(RT_DEBUG_TRACE, ("RDRegion=%d\n", pRadarDetect->RDDurRegion));
- }
- else
- {
- pAd->CommonCfg.RadarDetect.RDDurRegion = CE;
- pAd->CommonCfg.RadarDetect.DfsSessionTime = 13;
- }
-
- //WirelessEvent
- if(RTMPGetKeyParameter("WirelessEvent", tmpbuf, 10, pBuffer, TRUE))
- {
- if(simple_strtol(tmpbuf, 0, 10) != 0)
- pAd->CommonCfg.bWirelessEvent = simple_strtol(tmpbuf, 0, 10);
- else
- pAd->CommonCfg.bWirelessEvent = 0; // disable
- DBGPRINT(RT_DEBUG_TRACE, ("WirelessEvent=%d\n", pAd->CommonCfg.bWirelessEvent));
- }
- if(RTMPGetKeyParameter("WiFiTest", tmpbuf, 10, pBuffer, TRUE))
- {
- if(simple_strtol(tmpbuf, 0, 10) != 0)
- pAd->CommonCfg.bWiFiTest= simple_strtol(tmpbuf, 0, 10);
- else
- pAd->CommonCfg.bWiFiTest = 0; // disable
-
- DBGPRINT(RT_DEBUG_TRACE, ("WiFiTest=%d\n", pAd->CommonCfg.bWiFiTest));
- }
- //AuthMode
- if(RTMPGetKeyParameter("AuthMode", tmpbuf, 128, pBuffer, TRUE))
- {
- {
- if ((strcmp(tmpbuf, "WEPAUTO") == 0) || (strcmp(tmpbuf, "wepauto") == 0))
- pAd->StaCfg.AuthMode = Ndis802_11AuthModeAutoSwitch;
- else if ((strcmp(tmpbuf, "SHARED") == 0) || (strcmp(tmpbuf, "shared") == 0))
- pAd->StaCfg.AuthMode = Ndis802_11AuthModeShared;
- else if ((strcmp(tmpbuf, "WPAPSK") == 0) || (strcmp(tmpbuf, "wpapsk") == 0))
- pAd->StaCfg.AuthMode = Ndis802_11AuthModeWPAPSK;
- else if ((strcmp(tmpbuf, "WPANONE") == 0) || (strcmp(tmpbuf, "wpanone") == 0))
- pAd->StaCfg.AuthMode = Ndis802_11AuthModeWPANone;
- else if ((strcmp(tmpbuf, "WPA2PSK") == 0) || (strcmp(tmpbuf, "wpa2psk") == 0))
- pAd->StaCfg.AuthMode = Ndis802_11AuthModeWPA2PSK;
- else if ((strcmp(tmpbuf, "WPA") == 0) || (strcmp(tmpbuf, "wpa") == 0))
- pAd->StaCfg.AuthMode = Ndis802_11AuthModeWPA;
- else if ((strcmp(tmpbuf, "WPA2") == 0) || (strcmp(tmpbuf, "wpa2") == 0))
- pAd->StaCfg.AuthMode = Ndis802_11AuthModeWPA2;
- else
- pAd->StaCfg.AuthMode = Ndis802_11AuthModeOpen;
-
- pAd->StaCfg.PortSecured = WPA_802_1X_PORT_NOT_SECURED;
-
- DBGPRINT(RT_DEBUG_TRACE, ("%s::(AuthMode=%d)\n", __func__, pAd->StaCfg.AuthMode));
- }
- }
- //EncrypType
- if(RTMPGetKeyParameter("EncrypType", tmpbuf, 128, pBuffer, TRUE))
- {
- {
- if ((strcmp(tmpbuf, "WEP") == 0) || (strcmp(tmpbuf, "wep") == 0))
- pAd->StaCfg.WepStatus = Ndis802_11WEPEnabled;
- else if ((strcmp(tmpbuf, "TKIP") == 0) || (strcmp(tmpbuf, "tkip") == 0))
- pAd->StaCfg.WepStatus = Ndis802_11Encryption2Enabled;
- else if ((strcmp(tmpbuf, "AES") == 0) || (strcmp(tmpbuf, "aes") == 0))
- pAd->StaCfg.WepStatus = Ndis802_11Encryption3Enabled;
- else
- pAd->StaCfg.WepStatus = Ndis802_11WEPDisabled;
-
- // Update all wepstatus related
- pAd->StaCfg.PairCipher = pAd->StaCfg.WepStatus;
- pAd->StaCfg.GroupCipher = pAd->StaCfg.WepStatus;
- pAd->StaCfg.OrigWepStatus = pAd->StaCfg.WepStatus;
- pAd->StaCfg.bMixCipher = FALSE;
-
- //RTMPMakeRSNIE(pAd, pAd->StaCfg.AuthMode, pAd->StaCfg.WepStatus, 0);
- DBGPRINT(RT_DEBUG_TRACE, ("%s::(EncrypType=%d)\n", __func__, pAd->StaCfg.WepStatus));
- }
- }
-
- {
- if(RTMPGetKeyParameter("WPAPSK", tmpbuf, 512, pBuffer, FALSE))
- {
- int ret = TRUE;
-
- tmpbuf[strlen(tmpbuf)] = '\0'; // make STA can process .$^& for WPAPSK input
-
- if ((pAd->StaCfg.AuthMode != Ndis802_11AuthModeWPAPSK) &&
- (pAd->StaCfg.AuthMode != Ndis802_11AuthModeWPA2PSK) &&
- (pAd->StaCfg.AuthMode != Ndis802_11AuthModeWPANone)
- )
- {
- ret = FALSE;
- }
- else
- {
- ret = RT_CfgSetWPAPSKKey(pAd, tmpbuf, (PUCHAR)pAd->CommonCfg.Ssid, pAd->CommonCfg.SsidLen, pAd->StaCfg.PMK);
- }
-
- if (ret == TRUE)
- {
- RTMPZeroMemory(pAd->StaCfg.WpaPassPhrase, 64);
- RTMPMoveMemory(pAd->StaCfg.WpaPassPhrase, tmpbuf, strlen(tmpbuf));
- pAd->StaCfg.WpaPassPhraseLen= strlen(tmpbuf);
-
- if ((pAd->StaCfg.AuthMode == Ndis802_11AuthModeWPAPSK) ||
- (pAd->StaCfg.AuthMode == Ndis802_11AuthModeWPA2PSK))
- {
- // Start STA supplicant state machine
- pAd->StaCfg.WpaState = SS_START;
- }
- else if (pAd->StaCfg.AuthMode == Ndis802_11AuthModeWPANone)
- {
- pAd->StaCfg.WpaState = SS_NOTUSE;
- }
- DBGPRINT(RT_DEBUG_TRACE, ("%s::(WPAPSK=%s)\n", __func__, tmpbuf));
- }
- }
- }
-
- //DefaultKeyID, KeyType, KeyStr
- rtmp_read_key_parms_from_file(pAd, tmpbuf, pBuffer);
-
-
- //HSCounter
- /*if(RTMPGetKeyParameter("HSCounter", tmpbuf, 10, pBuffer, TRUE))
- {
- switch (simple_strtol(tmpbuf, 0, 10))
- {
- case 1: //Enable
- pAd->CommonCfg.bEnableHSCounter = TRUE;
- break;
- case 0: //Disable
- default:
- pAd->CommonCfg.bEnableHSCounter = FALSE;
- break;
- }
- DBGPRINT(RT_DEBUG_TRACE, "HSCounter=%d\n", pAd->CommonCfg.bEnableHSCounter);
- }*/
-
- HTParametersHook(pAd, tmpbuf, pBuffer);
-
- {
- //PSMode
- if (RTMPGetKeyParameter("PSMode", tmpbuf, 10, pBuffer, TRUE))
- {
- if (pAd->StaCfg.BssType == BSS_INFRA)
- {
- if ((strcmp(tmpbuf, "MAX_PSP") == 0) || (strcmp(tmpbuf, "max_psp") == 0))
- {
- // do NOT turn on PSM bit here, wait until MlmeCheckForPsmChange()
- // to exclude certain situations.
- // MlmeSetPsm(pAd, PWR_SAVE);
- OPSTATUS_SET_FLAG(pAd, fOP_STATUS_RECEIVE_DTIM);
- if (pAd->StaCfg.bWindowsACCAMEnable == FALSE)
- pAd->StaCfg.WindowsPowerMode = Ndis802_11PowerModeMAX_PSP;
- pAd->StaCfg.WindowsBatteryPowerMode = Ndis802_11PowerModeMAX_PSP;
- pAd->StaCfg.DefaultListenCount = 5;
- }
- else if ((strcmp(tmpbuf, "Fast_PSP") == 0) || (strcmp(tmpbuf, "fast_psp") == 0)
- || (strcmp(tmpbuf, "FAST_PSP") == 0))
- {
- // do NOT turn on PSM bit here, wait until MlmeCheckForPsmChange()
- // to exclude certain situations.
- // RTMP_SET_PSM_BIT(pAd, PWR_SAVE);
- OPSTATUS_SET_FLAG(pAd, fOP_STATUS_RECEIVE_DTIM);
- if (pAd->StaCfg.bWindowsACCAMEnable == FALSE)
- pAd->StaCfg.WindowsPowerMode = Ndis802_11PowerModeFast_PSP;
- pAd->StaCfg.WindowsBatteryPowerMode = Ndis802_11PowerModeFast_PSP;
- pAd->StaCfg.DefaultListenCount = 3;
- }
- else if ((strcmp(tmpbuf, "Legacy_PSP") == 0) || (strcmp(tmpbuf, "legacy_psp") == 0)
- || (strcmp(tmpbuf, "LEGACY_PSP") == 0))
- {
- // do NOT turn on PSM bit here, wait until MlmeCheckForPsmChange()
- // to exclude certain situations.
- // RTMP_SET_PSM_BIT(pAd, PWR_SAVE);
- OPSTATUS_SET_FLAG(pAd, fOP_STATUS_RECEIVE_DTIM);
- if (pAd->StaCfg.bWindowsACCAMEnable == FALSE)
- pAd->StaCfg.WindowsPowerMode = Ndis802_11PowerModeLegacy_PSP;
- pAd->StaCfg.WindowsBatteryPowerMode = Ndis802_11PowerModeLegacy_PSP;
- pAd->StaCfg.DefaultListenCount = 3;
- }
- else
- { //Default Ndis802_11PowerModeCAM
- // clear PSM bit immediately
- RTMP_SET_PSM_BIT(pAd, PWR_ACTIVE);
- OPSTATUS_SET_FLAG(pAd, fOP_STATUS_RECEIVE_DTIM);
- if (pAd->StaCfg.bWindowsACCAMEnable == FALSE)
- pAd->StaCfg.WindowsPowerMode = Ndis802_11PowerModeCAM;
- pAd->StaCfg.WindowsBatteryPowerMode = Ndis802_11PowerModeCAM;
- }
- DBGPRINT(RT_DEBUG_TRACE, ("PSMode=%ld\n", pAd->StaCfg.WindowsPowerMode));
- }
- }
- // AutoRoaming by RSSI
- if (RTMPGetKeyParameter("AutoRoaming", tmpbuf, 32, pBuffer, TRUE))
- {
- if (simple_strtol(tmpbuf, 0, 10) == 0)
- pAd->StaCfg.bAutoRoaming = FALSE;
- else
- pAd->StaCfg.bAutoRoaming = TRUE;
-
- DBGPRINT(RT_DEBUG_TRACE, ("AutoRoaming=%d\n", pAd->StaCfg.bAutoRoaming));
- }
- // RoamThreshold
- if (RTMPGetKeyParameter("RoamThreshold", tmpbuf, 32, pBuffer, TRUE))
- {
- long lInfo = simple_strtol(tmpbuf, 0, 10);
-
- if (lInfo > 90 || lInfo < 60)
- pAd->StaCfg.dBmToRoam = -70;
- else
- pAd->StaCfg.dBmToRoam = (CHAR)(-1)*lInfo;
-
- DBGPRINT(RT_DEBUG_TRACE, ("RoamThreshold=%d dBm\n", pAd->StaCfg.dBmToRoam));
- }
-
- if(RTMPGetKeyParameter("TGnWifiTest", tmpbuf, 10, pBuffer, TRUE))
- {
- if(simple_strtol(tmpbuf, 0, 10) == 0)
- pAd->StaCfg.bTGnWifiTest = FALSE;
- else
- pAd->StaCfg.bTGnWifiTest = TRUE;
- DBGPRINT(RT_DEBUG_TRACE, ("TGnWifiTest=%d\n", pAd->StaCfg.bTGnWifiTest));
- }
-
- // Beacon Lost Time
- if (RTMPGetKeyParameter("BeaconLostTime", tmpbuf, 32, pBuffer, TRUE))
- {
- ULONG lInfo = (ULONG)simple_strtol(tmpbuf, 0, 10);
-
- if ((lInfo != 0) && (lInfo <= 60))
- pAd->StaCfg.BeaconLostTime = (lInfo * OS_HZ);
- DBGPRINT(RT_DEBUG_TRACE, ("BeaconLostTime=%ld \n", pAd->StaCfg.BeaconLostTime));
- }
-
-
- }
-
-
-
-
- }while(0);
-
-
- kfree(tmpbuf);
-
- return NDIS_STATUS_SUCCESS;
-
-}
Index: b/drivers/staging/rt2860/rtmp.h
===================================================================
--- a/drivers/staging/rt2860/rtmp.h
+++ b/drivers/staging/rt2860/rtmp.h
@@ -2451,17 +2451,6 @@ NDIS_STATUS RTMPAllocAdapterBlock(
NDIS_STATUS RTMPAllocTxRxRingMemory(
IN PRTMP_ADAPTER pAd);
-NDIS_STATUS RTMPSetProfileParameters(
- IN RTMP_ADAPTER *pAd,
- IN PSTRING pBuffer);
-
-INT RTMPGetKeyParameter(
- IN PSTRING key,
- OUT PSTRING dest,
- IN INT destsize,
- IN PSTRING buffer,
- IN BOOLEAN bTrimSpace);
-
VOID RTMPFreeAdapter(
IN PRTMP_ADAPTER pAd);
@@ -4628,33 +4617,10 @@ VOID BARecSessionTearDown(
BOOLEAN ba_reordering_resource_init(PRTMP_ADAPTER pAd, int num);
void ba_reordering_resource_release(PRTMP_ADAPTER pAd);
-
-
-
-BOOLEAN rtstrmactohex(
- IN PSTRING s1,
- IN PSTRING s2);
-
-BOOLEAN rtstrcasecmp(
- IN PSTRING s1,
- IN PSTRING s2);
-
-PSTRING rtstrstruncasecmp(
- IN PSTRING s1,
- IN PSTRING s2);
-
-PSTRING rtstrstr(
- IN const PSTRING s1,
- IN const PSTRING s2);
-
PSTRING rstrtok(
IN PSTRING s,
IN const PSTRING ct);
-int rtinet_aton(
- const PSTRING cp,
- unsigned int *addr);
-
////////// common ioctl functions //////////
INT SetCommonHT(
IN PRTMP_ADAPTER pAd);
Index: b/drivers/staging/rt2870/Makefile
===================================================================
--- a/drivers/staging/rt2870/Makefile
+++ b/drivers/staging/rt2870/Makefile
@@ -28,7 +28,6 @@ rt2870sta-objs := \
common/spectrum.o \
common/rtmp_timer.o \
common/rt_channel.o \
- common/cmm_profile.o \
common/cmm_asic.o \
sta/assoc.o \
sta/auth.o \
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 10/12] Staging: rt28x0: remove dead code from rtmp_phy.h
2009-10-21 20:43 [PATCH 00/12] Staging: rt28x0 cleanups Bartlomiej Zolnierkiewicz
` (8 preceding siblings ...)
2009-10-21 20:44 ` [PATCH 09/12] Staging: rt28x0: remove optional cmm profile parameters Bartlomiej Zolnierkiewicz
@ 2009-10-21 20:44 ` Bartlomiej Zolnierkiewicz
2009-10-21 20:45 ` [PATCH 11/12] Staging: rt28x0: remove unused SHA256 code Bartlomiej Zolnierkiewicz
2009-10-21 20:45 ` [PATCH 12/12] Staging: rt28x0: remove dead code Bartlomiej Zolnierkiewicz
11 siblings, 0 replies; 13+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2009-10-21 20:44 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: devel, Bartlomiej Zolnierkiewicz, linux-kernel
From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Subject: [PATCH] Staging: rt28x0: remove dead code from rtmp_phy.h
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
drivers/staging/rt2860/chip/rtmp_phy.h | 28 +---------------------------
1 file changed, 1 insertion(+), 27 deletions(-)
Index: b/drivers/staging/rt2860/chip/rtmp_phy.h
===================================================================
--- a/drivers/staging/rt2860/chip/rtmp_phy.h
+++ b/drivers/staging/rt2860/chip/rtmp_phy.h
@@ -278,18 +278,6 @@
But for some chipset which didn't have mcu (e.g., RBUS based chipset), we
will use this function too and didn't access the bbp register via the MCU.
*/
-#if 0
-#define RTMP_BBP_IO_READ8_BY_REG_ID(_A, _I, _pV) \
- do{ \
- if ((_A)->bPCIclkOff == FALSE) \
- { \
- if ((_A)->infType == RTMP_DEV_INF_RBUS) \
- RTMP_BBP_IO_READ8((_A), (_I), (_pV), FALSE); \
- else \
- RTMP_BBP_IO_READ8((_A), (_I), (_pV), TRUE); \
- } \
- }while(0)
-#else
// Read BBP register by register's ID. Generate PER to test BA
#define RTMP_BBP_IO_READ8_BY_REG_ID(_A, _I, _pV) \
{ \
@@ -381,7 +369,6 @@
*(_pV) = (_A)->BbpWriteLatch[_I]; \
} \
}
-#endif // 0 //
/*
basic marco for BBP write operation.
@@ -441,18 +428,6 @@
But for some chipset which didn't have mcu (e.g., RBUS based chipset), we
will use this function too and didn't access the bbp register via the MCU.
*/
-#if 0
-#define RTMP_BBP_IO_WRITE8_BY_REG_ID(_A, _I, _pV) \
- do{ \
- if ((_A)->bPCIclkOff == FALSE) \
- { \
- if ((_A)->infType == RTMP_DEV_INF_RBUS) \
- RTMP_BBP_IO_WRITE8((_A), (_I), (_pV), FALSE); \
- else \
- RTMP_BBP_IO_WRITE8((_A), (_I), (_pV), TRUE); \
- } \
- }while(0)
-#else
// Write BBP register by register's ID & value
#define RTMP_BBP_IO_WRITE8_BY_REG_ID(_A, _I, _V) \
{ \
@@ -538,9 +513,8 @@
DBGPRINT_ERR(("****** BBP_Write_Latch Buffer exceeds max boundry ****** \n")); \
} \
}
-#endif // 0 //
-
#endif // RTMP_MAC_PCI //
+
#ifdef RTMP_MAC_USB
#define RTMP_BBP_IO_READ8_BY_REG_ID(_A, _I, _pV) RTUSBReadBBPRegister(_A, _I, _pV)
#define RTMP_BBP_IO_WRITE8_BY_REG_ID(_A, _I, _V) RTUSBWriteBBPRegister(_A, _I, _V)
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 11/12] Staging: rt28x0: remove unused SHA256 code
2009-10-21 20:43 [PATCH 00/12] Staging: rt28x0 cleanups Bartlomiej Zolnierkiewicz
` (9 preceding siblings ...)
2009-10-21 20:44 ` [PATCH 10/12] Staging: rt28x0: remove dead code from rtmp_phy.h Bartlomiej Zolnierkiewicz
@ 2009-10-21 20:45 ` Bartlomiej Zolnierkiewicz
2009-10-21 20:45 ` [PATCH 12/12] Staging: rt28x0: remove dead code Bartlomiej Zolnierkiewicz
11 siblings, 0 replies; 13+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2009-10-21 20:45 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: devel, Bartlomiej Zolnierkiewicz, linux-kernel
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 14101 bytes --]
From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Subject: [PATCH] Staging: rt28x0: remove unused SHA256 code
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
drivers/staging/rt2860/common/crypt_hmac.c | 85 ---------
drivers/staging/rt2860/common/crypt_sha2.c | 257 -----------------------------
drivers/staging/rt2860/crypt_hmac.h | 11 -
drivers/staging/rt2860/crypt_sha2.h | 28 ---
4 files changed, 381 deletions(-)
Index: b/drivers/staging/rt2860/common/crypt_hmac.c
===================================================================
--- a/drivers/staging/rt2860/common/crypt_hmac.c
+++ b/drivers/staging/rt2860/common/crypt_hmac.c
@@ -109,91 +109,6 @@ VOID HMAC_SHA1 (
} /* End of HMAC_SHA1 */
#endif /* HMAC_SHA1_SUPPORT */
-
-#ifdef HMAC_SHA256_SUPPORT
-/*
-========================================================================
-Routine Description:
- HMAC using SHA256 hash function
-
-Arguments:
- key Secret key
- key_len The length of the key in bytes
- message Message context
- message_len The length of message in bytes
- macLen Request the length of message authentication code
-
-Return Value:
- mac Message authentication code
-
-Note:
- None
-========================================================================
-*/
-VOID HMAC_SHA256 (
- IN const UINT8 Key[],
- IN UINT KeyLen,
- IN const UINT8 Message[],
- IN UINT MessageLen,
- OUT UINT8 MAC[],
- IN UINT MACLen)
-{
- SHA256_CTX_STRUC sha_ctx1;
- SHA256_CTX_STRUC sha_ctx2;
- UINT8 K0[SHA256_BLOCK_SIZE];
- UINT8 Digest[SHA256_DIGEST_SIZE];
- UINT index;
-
- NdisZeroMemory(&sha_ctx1, sizeof(SHA256_CTX_STRUC));
- NdisZeroMemory(&sha_ctx2, sizeof(SHA256_CTX_STRUC));
- /*
- * If the length of K = B(Block size): K0 = K.
- * If the length of K > B: hash K to obtain an L byte string,
- * then append (B-L) zeros to create a B-byte string K0 (i.e., K0 = H(K) || 00...00).
- * If the length of K < B: append zeros to the end of K to create a B-byte string K0
- */
- NdisZeroMemory(K0, SHA256_BLOCK_SIZE);
- if (KeyLen <= SHA256_BLOCK_SIZE) {
- NdisMoveMemory(K0, Key, KeyLen);
- } else {
- RT_SHA256(Key, KeyLen, K0);
- }
-
- /* Exclusive-Or K0 with ipad */
- /* ipad: Inner pad; the byte x¡¦36¡¦ repeated B times. */
- for (index = 0; index < SHA256_BLOCK_SIZE; index++)
- K0[index] ^= 0x36;
- /* End of for */
-
- SHA256_Init(&sha_ctx1);
- /* H(K0^ipad) */
- SHA256_Append(&sha_ctx1, K0, sizeof(K0));
- /* H((K0^ipad)||text) */
- SHA256_Append(&sha_ctx1, Message, MessageLen);
- SHA256_End(&sha_ctx1, Digest);
-
- /* Exclusive-Or K0 with opad and remove ipad */
- /* opad: Outer pad; the byte x¡¦5c¡¦ repeated B times. */
- for (index = 0; index < SHA256_BLOCK_SIZE; index++)
- K0[index] ^= 0x36^0x5c;
- /* End of for */
-
- SHA256_Init(&sha_ctx2);
- /* H(K0^opad) */
- SHA256_Append(&sha_ctx2, K0, sizeof(K0));
- /* H( (K0^opad) || H((K0^ipad)||text) ) */
- SHA256_Append(&sha_ctx2, Digest, SHA256_DIGEST_SIZE);
- SHA256_End(&sha_ctx2, Digest);
-
- if (MACLen > SHA256_DIGEST_SIZE)
- NdisMoveMemory(MAC, Digest,SHA256_DIGEST_SIZE);
- else
- NdisMoveMemory(MAC, Digest, MACLen);
-
-} /* End of HMAC_SHA256 */
-#endif /* HMAC_SHA256_SUPPORT */
-
-
#ifdef HMAC_MD5_SUPPORT
/*
========================================================================
Index: b/drivers/staging/rt2860/common/crypt_sha2.c
===================================================================
--- a/drivers/staging/rt2860/common/crypt_sha2.c
+++ b/drivers/staging/rt2860/common/crypt_sha2.c
@@ -47,42 +47,7 @@ static const UINT32 SHA1_K[4] = {
static const UINT32 SHA1_DefaultHashValue[5] = {
0x67452301UL, 0xefcdab89UL, 0x98badcfeUL, 0x10325476UL, 0xc3d2e1f0UL
};
-#endif /* SHA1_SUPPORT */
-
-
-#ifdef SHA256_SUPPORT
-/* SHA256 functions */
-#define Zsigma_256_0(x) (ROTR32(x,2) ^ ROTR32(x,13) ^ ROTR32(x,22))
-#define Zsigma_256_1(x) (ROTR32(x,6) ^ ROTR32(x,11) ^ ROTR32(x,25))
-#define Sigma_256_0(x) (ROTR32(x,7) ^ ROTR32(x,18) ^ SHR(x,3))
-#define Sigma_256_1(x) (ROTR32(x,17) ^ ROTR32(x,19) ^ SHR(x,10))
-/* SHA256 constants */
-static const UINT32 SHA256_K[64] = {
- 0x428a2f98UL, 0x71374491UL, 0xb5c0fbcfUL, 0xe9b5dba5UL,
- 0x3956c25bUL, 0x59f111f1UL, 0x923f82a4UL, 0xab1c5ed5UL,
- 0xd807aa98UL, 0x12835b01UL, 0x243185beUL, 0x550c7dc3UL,
- 0x72be5d74UL, 0x80deb1feUL, 0x9bdc06a7UL, 0xc19bf174UL,
- 0xe49b69c1UL, 0xefbe4786UL, 0x0fc19dc6UL, 0x240ca1ccUL,
- 0x2de92c6fUL, 0x4a7484aaUL, 0x5cb0a9dcUL, 0x76f988daUL,
- 0x983e5152UL, 0xa831c66dUL, 0xb00327c8UL, 0xbf597fc7UL,
- 0xc6e00bf3UL, 0xd5a79147UL, 0x06ca6351UL, 0x14292967UL,
- 0x27b70a85UL, 0x2e1b2138UL, 0x4d2c6dfcUL, 0x53380d13UL,
- 0x650a7354UL, 0x766a0abbUL, 0x81c2c92eUL, 0x92722c85UL,
- 0xa2bfe8a1UL, 0xa81a664bUL, 0xc24b8b70UL, 0xc76c51a3UL,
- 0xd192e819UL, 0xd6990624UL, 0xf40e3585UL, 0x106aa070UL,
- 0x19a4c116UL, 0x1e376c08UL, 0x2748774cUL, 0x34b0bcb5UL,
- 0x391c0cb3UL, 0x4ed8aa4aUL, 0x5b9cca4fUL, 0x682e6ff3UL,
- 0x748f82eeUL, 0x78a5636fUL, 0x84c87814UL, 0x8cc70208UL,
- 0x90befffaUL, 0xa4506cebUL, 0xbef9a3f7UL, 0xc67178f2UL
-};
-static const UINT32 SHA256_DefaultHashValue[8] = {
- 0x6a09e667UL, 0xbb67ae85UL, 0x3c6ef372UL, 0xa54ff53aUL,
- 0x510e527fUL, 0x9b05688cUL, 0x1f83d9abUL, 0x5be0cd19UL
-};
-#endif /* SHA256_SUPPORT */
-
-#ifdef SHA1_SUPPORT
/*
========================================================================
Routine Description:
@@ -310,226 +275,4 @@ VOID RT_SHA1 (
} /* End of RT_SHA1 */
#endif /* SHA1_SUPPORT */
-
-#ifdef SHA256_SUPPORT
-/*
-========================================================================
-Routine Description:
- Initial SHA256_CTX_STRUC
-
-Arguments:
- pSHA_CTX Pointer to SHA256_CTX_STRUC
-
-Return Value:
- None
-
-Note:
- None
-========================================================================
-*/
-VOID SHA256_Init (
- IN SHA256_CTX_STRUC *pSHA_CTX)
-{
- NdisMoveMemory(pSHA_CTX->HashValue, SHA256_DefaultHashValue,
- sizeof(SHA256_DefaultHashValue));
- NdisZeroMemory(pSHA_CTX->Block, SHA256_BLOCK_SIZE);
- pSHA_CTX->MessageLen = 0;
- pSHA_CTX->BlockLen = 0;
-} /* End of SHA256_Init */
-
-
-/*
-========================================================================
-Routine Description:
- SHA256 computation for one block (512 bits)
-
-Arguments:
- pSHA_CTX Pointer to SHA256_CTX_STRUC
-
-Return Value:
- None
-
-Note:
- None
-========================================================================
-*/
-VOID SHA256_Hash (
- IN SHA256_CTX_STRUC *pSHA_CTX)
-{
- UINT32 W_i,t;
- UINT32 W[64];
- UINT32 a,b,c,d,e,f,g,h,T1,T2;
-
- /* Prepare the message schedule, {W_i}, 0 < t < 15 */
- NdisMoveMemory(W, pSHA_CTX->Block, SHA256_BLOCK_SIZE);
- for (W_i = 0; W_i < 16; W_i++)
- W[W_i] = cpu2be32(W[W_i]); /* Endian Swap */
- /* End of for */
-
- /* SHA256 hash computation */
- /* Initialize the working variables */
- a = pSHA_CTX->HashValue[0];
- b = pSHA_CTX->HashValue[1];
- c = pSHA_CTX->HashValue[2];
- d = pSHA_CTX->HashValue[3];
- e = pSHA_CTX->HashValue[4];
- f = pSHA_CTX->HashValue[5];
- g = pSHA_CTX->HashValue[6];
- h = pSHA_CTX->HashValue[7];
-
- /* 64 rounds */
- for (t = 0;t < 64;t++) {
- if (t > 15) /* Prepare the message schedule, {W_i}, 16 < t < 63 */
- W[t] = Sigma_256_1(W[t-2]) + W[t-7] + Sigma_256_0(W[t-15]) + W[t-16];
- /* End of if */
- T1 = h + Zsigma_256_1(e) + Ch(e,f,g) + SHA256_K[t] + W[t];
- T2 = Zsigma_256_0(a) + Maj(a,b,c);
- h = g;
- g = f;
- f = e;
- e = d + T1;
- d = c;
- c = b;
- b = a;
- a = T1 + T2;
- } /* End of for */
-
- /* Compute the i^th intermediate hash value H^(i) */
- pSHA_CTX->HashValue[0] += a;
- pSHA_CTX->HashValue[1] += b;
- pSHA_CTX->HashValue[2] += c;
- pSHA_CTX->HashValue[3] += d;
- pSHA_CTX->HashValue[4] += e;
- pSHA_CTX->HashValue[5] += f;
- pSHA_CTX->HashValue[6] += g;
- pSHA_CTX->HashValue[7] += h;
-
- NdisZeroMemory(pSHA_CTX->Block, SHA256_BLOCK_SIZE);
- pSHA_CTX->BlockLen = 0;
-} /* End of SHA256_Hash */
-
-
-/*
-========================================================================
-Routine Description:
- The message is appended to block. If block size > 64 bytes, the SHA256_Hash
-will be called.
-
-Arguments:
- pSHA_CTX Pointer to SHA256_CTX_STRUC
- message Message context
- messageLen The length of message in bytes
-
-Return Value:
- None
-
-Note:
- None
-========================================================================
-*/
-VOID SHA256_Append (
- IN SHA256_CTX_STRUC *pSHA_CTX,
- IN const UINT8 Message[],
- IN UINT MessageLen)
-{
- UINT appendLen = 0;
- UINT diffLen = 0;
-
- while (appendLen != MessageLen) {
- diffLen = MessageLen - appendLen;
- if ((pSHA_CTX->BlockLen + diffLen) < SHA256_BLOCK_SIZE) {
- NdisMoveMemory(pSHA_CTX->Block + pSHA_CTX->BlockLen,
- Message + appendLen, diffLen);
- pSHA_CTX->BlockLen += diffLen;
- appendLen += diffLen;
- }
- else
- {
- NdisMoveMemory(pSHA_CTX->Block + pSHA_CTX->BlockLen,
- Message + appendLen, SHA256_BLOCK_SIZE - pSHA_CTX->BlockLen);
- appendLen += (SHA256_BLOCK_SIZE - pSHA_CTX->BlockLen);
- pSHA_CTX->BlockLen = SHA256_BLOCK_SIZE;
- SHA256_Hash(pSHA_CTX);
- } /* End of if */
- } /* End of while */
- pSHA_CTX->MessageLen += MessageLen;
-} /* End of SHA256_Append */
-
-
-/*
-========================================================================
-Routine Description:
- 1. Append bit 1 to end of the message
- 2. Append the length of message in rightmost 64 bits
- 3. Transform the Hash Value to digest message
-
-Arguments:
- pSHA_CTX Pointer to SHA256_CTX_STRUC
-
-Return Value:
- digestMessage Digest message
-
-Note:
- None
-========================================================================
-*/
-VOID SHA256_End (
- IN SHA256_CTX_STRUC *pSHA_CTX,
- OUT UINT8 DigestMessage[])
-{
- UINT index;
- UINT64 message_length_bits;
-
- /* Append bit 1 to end of the message */
- NdisFillMemory(pSHA_CTX->Block + pSHA_CTX->BlockLen, 1, 0x80);
-
- /* 55 = 64 - 8 - 1: append 1 bit(1 byte) and message length (8 bytes) */
- if (pSHA_CTX->BlockLen > 55)
- SHA256_Hash(pSHA_CTX);
- /* End of if */
-
- /* Append the length of message in rightmost 64 bits */
- message_length_bits = pSHA_CTX->MessageLen*8;
- message_length_bits = cpu2be64(message_length_bits);
- NdisMoveMemory(&pSHA_CTX->Block[56], &message_length_bits, 8);
- SHA256_Hash(pSHA_CTX);
-
- /* Return message digest, transform the UINT32 hash value to bytes */
- for (index = 0; index < 8;index++)
- pSHA_CTX->HashValue[index] = cpu2be32(pSHA_CTX->HashValue[index]);
- /* End of for */
- NdisMoveMemory(DigestMessage, pSHA_CTX->HashValue, SHA256_DIGEST_SIZE);
-} /* End of SHA256_End */
-
-
-/*
-========================================================================
-Routine Description:
- SHA256 algorithm
-
-Arguments:
- message Message context
- messageLen The length of message in bytes
-
-Return Value:
- digestMessage Digest message
-
-Note:
- None
-========================================================================
-*/
-VOID RT_SHA256 (
- IN const UINT8 Message[],
- IN UINT MessageLen,
- OUT UINT8 DigestMessage[])
-{
- SHA256_CTX_STRUC sha_ctx;
-
- NdisZeroMemory(&sha_ctx, sizeof(SHA256_CTX_STRUC));
- SHA256_Init(&sha_ctx);
- SHA256_Append(&sha_ctx, Message, MessageLen);
- SHA256_End(&sha_ctx, DigestMessage);
-} /* End of RT_SHA256 */
-#endif /* SHA256_SUPPORT */
-
/* End of crypt_sha2.c */
Index: b/drivers/staging/rt2860/crypt_hmac.h
===================================================================
--- a/drivers/staging/rt2860/crypt_hmac.h
+++ b/drivers/staging/rt2860/crypt_hmac.h
@@ -57,17 +57,6 @@ VOID HMAC_SHA1 (
IN UINT MACLen);
#endif /* SHA1_SUPPORT */
-#ifdef SHA256_SUPPORT
-#define HMAC_SHA256_SUPPORT
-VOID HMAC_SHA256 (
- IN const UINT8 Key[],
- IN UINT KeyLen,
- IN const UINT8 Message[],
- IN UINT MessageLen,
- OUT UINT8 MAC[],
- IN UINT MACLen);
-#endif /* SHA256_SUPPORT */
-
#ifdef MD5_SUPPORT
#define HMAC_MD5_SUPPORT
VOID HMAC_MD5 (
Index: b/drivers/staging/rt2860/crypt_sha2.h
===================================================================
--- a/drivers/staging/rt2860/crypt_sha2.h
+++ b/drivers/staging/rt2860/crypt_sha2.h
@@ -50,7 +50,6 @@
/* Algorithm options */
#define SHA1_SUPPORT
-#define SHA256_SUPPORT
#ifdef SHA1_SUPPORT
#define SHA1_BLOCK_SIZE 64 /* 512 bits = 64 bytes */
@@ -79,31 +78,4 @@ VOID RT_SHA1 (
OUT UINT8 DigestMessage[]);
#endif /* SHA1_SUPPORT */
-#ifdef SHA256_SUPPORT
-#define SHA256_BLOCK_SIZE 64 /* 512 bits = 64 bytes */
-#define SHA256_DIGEST_SIZE 32 /* 256 bits = 32 bytes */
-typedef struct _SHA256_CTX_STRUC {
- UINT32 HashValue[8]; /* 8 = (SHA256_DIGEST_SIZE / 32) */
- UINT64 MessageLen; /* total size */
- UINT8 Block[SHA256_BLOCK_SIZE];
- UINT BlockLen;
-} SHA256_CTX_STRUC, *PSHA256_CTX_STRUC;
-
-VOID SHA256_Init (
- IN SHA256_CTX_STRUC *pSHA_CTX);
-VOID SHA256_Hash (
- IN SHA256_CTX_STRUC *pSHA_CTX);
-VOID SHA256_Append (
- IN SHA256_CTX_STRUC *pSHA_CTX,
- IN const UINT8 Message[],
- IN UINT MessageLen);
-VOID SHA256_End (
- IN SHA256_CTX_STRUC *pSHA_CTX,
- OUT UINT8 DigestMessage[]);
-VOID RT_SHA256 (
- IN const UINT8 Message[],
- IN UINT MessageLen,
- OUT UINT8 DigestMessage[]);
-#endif /* SHA256_SUPPORT */
-
#endif /* __CRYPT_SHA2_H__ */
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 12/12] Staging: rt28x0: remove dead code
2009-10-21 20:43 [PATCH 00/12] Staging: rt28x0 cleanups Bartlomiej Zolnierkiewicz
` (10 preceding siblings ...)
2009-10-21 20:45 ` [PATCH 11/12] Staging: rt28x0: remove unused SHA256 code Bartlomiej Zolnierkiewicz
@ 2009-10-21 20:45 ` Bartlomiej Zolnierkiewicz
11 siblings, 0 replies; 13+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2009-10-21 20:45 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: devel, Bartlomiej Zolnierkiewicz, linux-kernel
From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Subject: [PATCH] Staging: rt28x0: remove dead code
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
drivers/staging/rt2860/oid.h | 19 -------------------
drivers/staging/rt2860/rt_config.h | 8 --------
drivers/staging/rt2860/rt_linux.h | 10 ----------
drivers/staging/rt2860/rtmp.h | 13 -------------
drivers/staging/rt2860/rtmp_def.h | 9 ---------
5 files changed, 59 deletions(-)
Index: b/drivers/staging/rt2860/oid.h
===================================================================
--- a/drivers/staging/rt2860/oid.h
+++ b/drivers/staging/rt2860/oid.h
@@ -502,19 +502,6 @@ typedef struct _NDIS_802_11_AUTHENTICATI
NDIS_802_11_AUTHENTICATION_REQUEST Request[1];
} NDIS_802_11_AUTHENTICATION_EVENT, *PNDIS_802_11_AUTHENTICATION_EVENT;
-/*
-typedef struct _NDIS_802_11_TEST
-{
- ULONG Length;
- ULONG Type;
- union
- {
- NDIS_802_11_AUTHENTICATION_EVENT AuthenticationEvent;
- NDIS_802_11_RSSI RssiTrigger;
- };
-} NDIS_802_11_TEST, *PNDIS_802_11_TEST;
- */
-
// 802.11 Media stream constraints, associated with OID_802_11_MEDIA_STREAM_MODE
typedef enum _NDIS_802_11_MEDIA_STREAM_MODE
{
@@ -553,10 +540,6 @@ typedef struct _NDIS_802_11_CAPABILITY
NDIS_802_11_AUTHENTICATION_ENCRYPTION AuthenticationEncryptionSupported[1];
} NDIS_802_11_CAPABILITY, *PNDIS_802_11_CAPABILITY;
-#ifdef LINUX
-#endif // LINUX //
-
-
#define RT_PRIV_IOCTL (SIOCIWFIRSTPRIV + 0x01) // Sync. with AP for wsc upnp daemon
#define RTPRIV_IOCTL_SET (SIOCIWFIRSTPRIV + 0x02)
@@ -593,8 +576,6 @@ enum {
#define OID_802_11_GET_COUNTRY_CODE 0x0716
#define OID_802_11_GET_CHANNEL_GEOGRAPHY 0x0717
-//#define RT_OID_802_11_STATISTICS (OID_GET_SET_TOGGLE | OID_802_11_STATISTICS)
-
#define RT_OID_WSC_SET_PASSPHRASE 0x0740 // passphrase for wpa(2)-psk
#define RT_OID_WSC_DRIVER_AUTO_CONNECT 0x0741
#define RT_OID_WSC_QUERY_DEFAULT_PROFILE 0x0742
Index: b/drivers/staging/rt2860/rt_config.h
===================================================================
--- a/drivers/staging/rt2860/rt_config.h
+++ b/drivers/staging/rt2860/rt_config.h
@@ -64,14 +64,6 @@
#include "rtmp_mcu.h"
#endif
-#undef AP_WSC_INCLUDED
-#undef STA_WSC_INCLUDED
-#undef WSC_INCLUDED
-
-
-
-
-
#ifdef IGMP_SNOOP_SUPPORT
#include "igmp_snoop.h"
#endif // IGMP_SNOOP_SUPPORT //
Index: b/drivers/staging/rt2860/rt_linux.h
===================================================================
--- a/drivers/staging/rt2860/rt_linux.h
+++ b/drivers/staging/rt2860/rt_linux.h
@@ -75,16 +75,6 @@
#include <linux/kthread.h>
#endif // KTHREAD_SUPPORT //
-#undef AP_WSC_INCLUDED
-#undef STA_WSC_INCLUDED
-#undef WSC_INCLUDED
-
-
-
-
-#ifdef KTHREAD_SUPPORT
-#endif // KTHREAD_SUPPORT //
-
/***********************************************************************************
* Profile related sections
***********************************************************************************/
Index: b/drivers/staging/rt2860/rtmp.h
===================================================================
--- a/drivers/staging/rt2860/rtmp.h
+++ b/drivers/staging/rt2860/rtmp.h
@@ -41,23 +41,10 @@
#define __RTMP_H__
#include "spectrum_def.h"
-
#include "rtmp_dot11.h"
-
-#undef AP_WSC_INCLUDED
-#undef STA_WSC_INCLUDED
-#undef WSC_INCLUDED
-
-
-
-#if defined(AP_WSC_INCLUDED) || defined(STA_WSC_INCLUDED)
-#define WSC_INCLUDED
-#endif
-
#include "rtmp_chip.h"
-
typedef struct _RTMP_ADAPTER RTMP_ADAPTER;
typedef struct _RTMP_ADAPTER *PRTMP_ADAPTER;
Index: b/drivers/staging/rt2860/rtmp_def.h
===================================================================
--- a/drivers/staging/rt2860/rtmp_def.h
+++ b/drivers/staging/rt2860/rtmp_def.h
@@ -41,15 +41,6 @@
#include "oid.h"
-#undef AP_WSC_INCLUDED
-#undef STA_WSC_INCLUDED
-#undef WSC_INCLUDED
-
-
-
-#if defined(AP_WSC_INCLUDED) || defined(STA_WSC_INCLUDED)
-#define WSC_INCLUDED
-#endif
//
// Debug information verbosity: lower values indicate higher urgency
//
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2009-10-21 20:45 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-21 20:43 [PATCH 00/12] Staging: rt28x0 cleanups Bartlomiej Zolnierkiewicz
2009-10-21 20:43 ` [PATCH 01/12] Staging: rt28x0: remove unused ->eewrite methods Bartlomiej Zolnierkiewicz
2009-10-21 20:43 ` [PATCH 02/12] Staging: rt28x0: remove unused code from common/ee_efuse-c Bartlomiej Zolnierkiewicz
2009-10-21 20:44 ` [PATCH 03/12] Staging: rt28x0: remove private RTPRIV_IOCTL_SET ioctl Bartlomiej Zolnierkiewicz
2009-10-21 20:44 ` [PATCH 04/12] Staging: rt28x0: remove private RTPRIV_IOCTL_GSITESURVEY ioctl Bartlomiej Zolnierkiewicz
2009-10-21 20:44 ` [PATCH 05/12] Staging: rt28x0: remove private WEXT handlers Bartlomiej Zolnierkiewicz
2009-10-21 20:44 ` [PATCH 06/12] Staging: rt28x0: remove support for private driver parameters Bartlomiej Zolnierkiewicz
2009-10-21 20:44 ` [PATCH 07/12] Staging: rt28x0: remove optional loading of EEPROM from file in eFuse mode Bartlomiej Zolnierkiewicz
2009-10-21 20:44 ` [PATCH 08/12] Staging: rt28x0: fix some build warnings Bartlomiej Zolnierkiewicz
2009-10-21 20:44 ` [PATCH 09/12] Staging: rt28x0: remove optional cmm profile parameters Bartlomiej Zolnierkiewicz
2009-10-21 20:44 ` [PATCH 10/12] Staging: rt28x0: remove dead code from rtmp_phy.h Bartlomiej Zolnierkiewicz
2009-10-21 20:45 ` [PATCH 11/12] Staging: rt28x0: remove unused SHA256 code Bartlomiej Zolnierkiewicz
2009-10-21 20:45 ` [PATCH 12/12] Staging: rt28x0: remove dead code Bartlomiej Zolnierkiewicz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox