Staging: rt{286,287,307}0: merge rt3070 with rt2870
cover Staging: rt{286,287,307}0: merge rt3070 with rt2870
Hi,
The final part of rt2870 and rt3070 merge.
It adds RT3070 chipset support to rt2870 driver and removes no longer needed rt3070 driver (yes, it means one Ralink driver less in the staging tree!).
[ in the process many bugs in all Ralink drivers were fixed, RT2870 chipset
support was converted to use the new firmware and ~1.5 KLOC were removed ]
I tested it on RT2860 and RT3070 chipsets already but I would need some help from people with RT2870 hardware to verify those changes (Mike? Marcin?).
To make life easier there is also the combined patchset available at:
http://www.kernel.org/pub/linux/kernel/people/bart/ralink-20090822.patch
which can be applied at the top of the current staging tree patch from:
http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/gregkh-07-staging-2.6.31-rc6.patch
[ which in turn applies just fine also at the top of 2.6.31-rc7 ]
Thanks!
diffstat:
drivers/staging/rt2870/common/firmware.h | 558 ---------------- drivers/staging/rt3070/2870_main_dev.c | 1 drivers/staging/rt3070/Kconfig | 6 drivers/staging/rt3070/Makefile | 43 - drivers/staging/rt3070/action.h | 1 drivers/staging/rt3070/aironet.h | 1 drivers/staging/rt3070/ap.h | 1 drivers/staging/rt3070/chlist.h | 1 drivers/staging/rt3070/common/2870_rtmp_init.c | 1 drivers/staging/rt3070/common/action.c | 1 drivers/staging/rt3070/common/ba_action.c | 1 drivers/staging/rt3070/common/cmm_data.c | 1 drivers/staging/rt3070/common/cmm_data_2870.c | 1 drivers/staging/rt3070/common/cmm_info.c | 1 drivers/staging/rt3070/common/cmm_sanity.c | 1 drivers/staging/rt3070/common/cmm_sync.c | 1 drivers/staging/rt3070/common/cmm_wpa.c | 1 drivers/staging/rt3070/common/dfs.c | 1 drivers/staging/rt3070/common/eeprom.c | 1 drivers/staging/rt3070/common/md5.c | 1 drivers/staging/rt3070/common/mlme.c | 1 drivers/staging/rt3070/common/rtmp_init.c | 1 drivers/staging/rt3070/common/rtmp_tkip.c | 1 drivers/staging/rt3070/common/rtmp_wep.c | 1 drivers/staging/rt3070/common/rtusb_bulk.c | 1 drivers/staging/rt3070/common/rtusb_data.c | 1 drivers/staging/rt3070/common/rtusb_io.c | 1 drivers/staging/rt3070/common/spectrum.c | 1 drivers/staging/rt3070/dfs.h | 1 drivers/staging/rt3070/md5.h | 1 drivers/staging/rt3070/mlme.h | 1 drivers/staging/rt3070/oid.h | 1 drivers/staging/rt3070/rt2870.h | 1 drivers/staging/rt3070/rt28xx.h | 1 drivers/staging/rt3070/rt_config.h | 1 drivers/staging/rt3070/rt_linux.c | 1 drivers/staging/rt3070/rt_linux.h | 1 drivers/staging/rt3070/rt_main_dev.c | 1 drivers/staging/rt3070/rt_profile.c | 1 drivers/staging/rt3070/rtmp.h | 1 drivers/staging/rt3070/rtmp_ckipmic.h | 1 drivers/staging/rt3070/rtmp_def.h | 1 drivers/staging/rt3070/rtmp_type.h | 1 drivers/staging/rt3070/spectrum.h | 1 drivers/staging/rt3070/spectrum_def.h | 1 drivers/staging/rt3070/sta/aironet.c | 1 drivers/staging/rt3070/sta/assoc.c | 1 drivers/staging/rt3070/sta/auth.c | 1 drivers/staging/rt3070/sta/auth_rsp.c | 1 drivers/staging/rt3070/sta/connect.c | 2 drivers/staging/rt3070/sta/rtmp_data.c | 1 drivers/staging/rt3070/sta/sanity.c | 1 drivers/staging/rt3070/sta/sync.c | 1 drivers/staging/rt3070/sta/wpa.c | 1 drivers/staging/rt3070/sta_ioctl.c | 1 drivers/staging/rt3070/wpa.h | 1 b/drivers/staging/Kconfig | 2 b/drivers/staging/Makefile | 1 b/drivers/staging/rt2860/chlist.h | 5 b/drivers/staging/rt2860/common/cmm_data.c | 134 --- b/drivers/staging/rt2860/common/cmm_info.c | 25 b/drivers/staging/rt2860/common/cmm_wpa.c | 12 b/drivers/staging/rt2860/common/eeprom.c | 23 b/drivers/staging/rt2860/common/mlme.c | 295 -------- b/drivers/staging/rt2860/common/rtmp_init.c | 116 --- b/drivers/staging/rt2860/rt_main_dev.c | 2 b/drivers/staging/rt2860/rt_profile.c | 23 b/drivers/staging/rt2860/rtmp.h | 35 - b/drivers/staging/rt2860/sta/assoc.c | 6 b/drivers/staging/rt2860/sta/connect.c | 6 b/drivers/staging/rt2860/sta/rtmp_data.c | 9 b/drivers/staging/rt2860/sta/wpa.c | 9 b/drivers/staging/rt2860/sta_ioctl.c | 81 -- b/drivers/staging/rt2860/wpa.h | 1 b/drivers/staging/rt2870/2870_main_dev.c | 33 b/drivers/staging/rt2870/Kconfig | 5 b/drivers/staging/rt2870/Makefile | 2 b/drivers/staging/rt2870/common/2870_rtmp_init.c | 5 b/drivers/staging/rt2870/common/cmm_data_2870.c | 30 b/drivers/staging/rt2870/common/rtusb_bulk.c | 3 b/drivers/staging/rt2870/common/rtusb_io.c | 54 - b/drivers/staging/rt2870/rt2870.h | 27 82 files changed, 74 insertions(+), 1531 deletions(-)
PATCH 1/33 Staging: rtxxxx: unify AsicRxAntEvalTimeout()
From: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rtxxxx: unify AsicRxAntEvalTimeout()
Unify RT30xx and !RT30xx code in AsicRxAntEvalTimeout().
There should be no functional changes caused by this patch.
--- drivers/staging/rt2860/common/mlme.c | 79 +++-------------------------------- 1 file changed, 7 insertions(+), 72 deletions(-)
drivers/staging/rt2860/common/mlme.c +7 -72
@@ -8233,85 +8233,19 @@ VOID AsicRxAntEvalTimeout(UCHAR BBPR3 =0 ;CHAR larger =-127 , rssi0, rssi1, rssi2; -#ifndef RT30xx - { -if (RTMP_TEST_FLAG (pAd, fRTMP_ADAPTER_RESET_IN_PROGRESS) || -RTMP_TEST_FLAG (pAd, fRTMP_ADAPTER_HALT_IN_PROGRESS) || -RTMP_TEST_FLAG (pAd, fRTMP_ADAPTER_RADIO_OFF) || -RTMP_TEST_FLAG (pAd, fRTMP_ADAPTER_NIC_NOT_EXIST)) -return ; - -if (pAd->StaCfg.Psm ==PWR_SAVE ) -return ; - - -// if the traffic is low, use average rssi as the criteria -if (pAd->Mlme.bLowThroughput == TRUE) - { - rssi0 = pAd->StaCfg.RssiSample.LastRssi0; - rssi1 = pAd->StaCfg.RssiSample.LastRssi1; - rssi2 = pAd->StaCfg.RssiSample.LastRssi2; - } -else - { - rssi0 = pAd->StaCfg.RssiSample.AvgRssi0; - rssi1 = pAd->StaCfg.RssiSample.AvgRssi1; - rssi2 = pAd->StaCfg.RssiSample.AvgRssi2; - } - -if (pAd->Antenna.field.RxPath ==3 ) - { - larger =max (rssi0, rssi1); - -if (larger > (rssi2 +20 )) - pAd->Mlme.RealRxPath =2 ; -else - pAd->Mlme.RealRxPath =3 ; - } -else if (pAd->Antenna.field.RxPath ==2 ) - { -if (rssi0 > (rssi1 +20 )) - pAd->Mlme.RealRxPath =1 ; -else - pAd->Mlme.RealRxPath =2 ; - } - -RTMP_BBP_IO_READ8_BY_REG_ID (pAd,BBP_R3 , &BBPR3 ); -BBPR3 &= (~0x18 ); -if (pAd->Mlme.RealRxPath ==3 ) - { -BBPR3 |= (0x10 ); - } -else if (pAd->Mlme.RealRxPath ==2 ) - { -BBPR3 |= (0x8 ); - } -else if (pAd->Mlme.RealRxPath ==1 ) - { -BBPR3 |= (0x0 ); - } -RTMP_BBP_IO_WRITE8_BY_REG_ID (pAd,BBP_R3 ,BBPR3 ); -#ifdef RT2860 - pAd->StaCfg.BBPR3 =BBPR3 ; -#endif - } -#endif /* RT30xx */ -#ifdef RT30xxif (RTMP_TEST_FLAG (pAd, fRTMP_ADAPTER_RESET_IN_PROGRESS | fRTMP_ADAPTER_HALT_IN_PROGRESS | fRTMP_ADAPTER_RADIO_OFF | - fRTMP_ADAPTER_NIC_NOT_EXIST) || -OPSTATUS_TEST_FLAG (pAd, fOP_STATUS_DOZE) + fRTMP_ADAPTER_NIC_NOT_EXIST) #ifdef RT30xx + ||OPSTATUS_TEST_FLAG (pAd, fOP_STATUS_DOZE) || (pAd->EepromAccess) #endif // RT30xx // )return ; { -//if (pAd->StaCfg.Psm == PWR_SAVE) -// return; - +#ifdef RT30xxif (pAd->NicConfig2.field.AntDiversity) {if ((pAd->RxAnt.RcvPktNumWhenEvaluate !=0 ) && (pAd->RxAnt.Pair1AvgRssi[pAd->RxAnt.Pair1SecondaryRxAnt] >= pAd->RxAnt.Pair1AvgRssi[pAd->RxAnt.Pair1PrimaryRxAnt]))
@@ -8343,6 +8277,7 @@ VOID AsicRxAntEvalTimeout( pAd->RxAnt.Pair1PrimaryRxAnt, (pAd->RxAnt.Pair1AvgRssi[0] >> 3), (pAd->RxAnt.Pair1AvgRssi[1] >> 3), pAd->RxAnt.RcvPktNumWhenEvaluate)); } else +#endif {if (pAd->StaCfg.Psm ==PWR_SAVE )return ;
@@ -8393,13 +8328,13 @@ VOID AsicRxAntEvalTimeout(BBPR3 |= (0x0 ); }RTMP_BBP_IO_WRITE8_BY_REG_ID (pAd,BBP_R3 ,BBPR3 ); +#ifdef RT2860 + pAd->StaCfg.BBPR3 =BBPR3 ; +#endif } } -#endif /* RT30xx */ } - - VOID APSDPeriodicExec( IN PVOID SystemSpecific1, IN PVOID FunctionContext,
PATCH 2/33 Staging: rtxxxx: unify AsicSwitchChannel()
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rtxxxx: unify AsicSwitchChannel()
Unify RT30xx and !RT30xx code in AsicSwitchChannel().
There should be no functional changes caused by this patch.
--- drivers/staging/rt2860/common/mlme.c | 46 ++++++----------------------------- 1 file changed, 9 insertions(+), 37 deletions(-)
drivers/staging/rt2860/common/mlme.c +9 -37
@@ -5787,8 +5787,7 @@ VOID AsicSwitchChannel( break; } } -#endif -#ifndef RT30xx +#else for (index =0 ; index < pAd->ChannelListNum; index++) {if (Channel == pAd->ChannelList[index].Channel)
@@ -5805,13 +5804,11 @@ VOID AsicSwitchChannel(#ifdef RT2870 // The RF programming sequence is difference between 3xxx and 2xxx +if ((IS_RT3070 (pAd) ||IS_RT3090 (pAd)) && ( #ifdef RT30xx - if ((IS_RT3070(pAd) || IS_RT3090(pAd)) && ((pAd->RfIcType == RFIC_3020) || (pAd->RfIcType == RFIC_2020) || - (pAd->RfIcType == RFIC_3021) || (pAd->RfIcType == RFIC_3022))) -#endif -#ifndef RT30xx - if (IS_RT3070(pAd) && ((pAd->RfIcType == RFIC_3020) || (pAd->RfIcType == RFIC_2020))) + (pAd->RfIcType ==RFIC_3022 ) || (pAd->RfIcType ==RFIC_3021 ) || #endif + (pAd->RfIcType ==RFIC_3020 ) || (pAd->RfIcType ==RFIC_2020 ))) {/* modify by WY for Read RF Reg. error */ UCHAR RFValue;
@@ -5824,22 +5821,6 @@ VOID AsicSwitchChannel(RT30xxWriteRFRegister (pAd,RF_R02 , FreqItems3020[index].N);RT30xxWriteRFRegister (pAd,RF_R03 , FreqItems3020[index].K); -#ifndef RT30xx -RT30xxReadRFRegister (pAd,RF_R06 , (PUCHAR )&RFValue); - RFValue = (RFValue &0xFC ) | FreqItems3020[index].R; -RT30xxWriteRFRegister (pAd,RF_R06 , (UCHAR )RFValue); - -// Set Tx Power -RT30xxReadRFRegister (pAd,RF_R12 , (PUCHAR )&RFValue); - RFValue = (RFValue &0xE0 ) | TxPwer; -RT30xxWriteRFRegister (pAd,RF_R12 , (UCHAR )RFValue); - -// Set RF offset -RT30xxReadRFRegister (pAd,RF_R23 , (PUCHAR )&RFValue); - RFValue = (RFValue &0x80 ) | pAd->RfFreqOffset; -RT30xxWriteRFRegister (pAd,RF_R23 , (UCHAR )RFValue); -#endif -#ifdef RT30xxRT30xxReadRFRegister (pAd,RF_R06 , &RFValue); RFValue = (RFValue &0xFC ) | FreqItems3020[index].R;RT30xxWriteRFRegister (pAd,RF_R06 , RFValue);
@@ -5849,6 +5830,7 @@ VOID AsicSwitchChannel( RFValue = (RFValue &0xE0 ) | TxPwer;RT30xxWriteRFRegister (pAd,RF_R12 , RFValue); +#ifdef RT30xx// Set Tx1 Power RT30xxReadRFRegister (pAd,RF_R13 , &RFValue); RFValue = (RFValue &0xE0 ) | TxPwer2;
@@ -5868,12 +5850,12 @@ VOID AsicSwitchChannel( else if (pAd->Antenna.field.RxPath == 2) RFValue |= 0x40;RT30xxWriteRFRegister (pAd,RF_R01 , RFValue); +#endif // Set RF offset RT30xxReadRFRegister (pAd,RF_R23 , &RFValue); RFValue = (RFValue &0x80 ) | pAd->RfFreqOffset;RT30xxWriteRFRegister (pAd,RF_R23 , RFValue); -#endif // Set BW if (!bScan && (pAd->CommonCfg.BBPCurrentBW ==BW_40 ))
@@ -5885,21 +5867,10 @@ VOID AsicSwitchChannel( { RFValue = pAd->Mlme.CaliBW20RfR24; } -#ifndef RT30xx -RT30xxWriteRFRegister (pAd,RF_R24 , (UCHAR )RFValue); - -// Enable RF tuning -RT30xxReadRFRegister (pAd,RF_R07 , (PUCHAR )&RFValue); - RFValue = RFValue |0x1 ; -RT30xxWriteRFRegister (pAd,RF_R07 , (UCHAR )RFValue); - -// latch channel for future usage. - pAd->LatchRfRegs.Channel = Channel; -#endif -#ifdef RT30xxRT30xxWriteRFRegister (pAd,RF_R24 , RFValue); +#ifdef RT30xxRT30xxWriteRFRegister (pAd,RF_R31 , RFValue); - +#endif // Enable RF tuning RT30xxReadRFRegister (pAd,RF_R07 , &RFValue); RFValue = RFValue |0x1 ;
@@ -5908,6 +5879,7 @@ VOID AsicSwitchChannel(// latch channel for future usage. pAd->LatchRfRegs.Channel = Channel; +#ifdef RT30xx DBGPRINT(RT_DEBUG_TRACE, ("SwitchChannel#%d(RF=%d, Pwr0=%d, Pwr1=%d, %dT), N=0x%02X, K=0x%02X, R=0x%02X\n", Channel, pAd->RfIcType,
PATCH 3/33 Staging: rtxx70: unify NICInitRT30xxRFRegisters()
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rtxx70: unify NICInitRT30xxRFRegisters()
Unify RT30xx and !RT30xx code in NICInitRT30xxRFRegisters().
There should be no functional changes caused by this patch.
--- drivers/staging/rt2860/common/rtmp_init.c | 41 ++++++++---------------------- 1 file changed, 12 insertions(+), 29 deletions(-)
drivers/staging/rt2860/common/rtmp_init.c +12 -29
@@ -1263,37 +1263,20 @@ VOID NICInitRT30xxRFRegisters(IN PRTMP_AINT i;// Driver must read EEPROM to get RfIcType before initial RF registers // Initialize RF register to default value -#ifndef RT30xx -if (IS_RT3070 (pAd) && ((pAd->RfIcType ==RFIC_3020 ) ||(pAd->RfIcType ==RFIC_2020 ))) - { -// Init RF calibration -// Driver should toggle RF R30 bit7 before init RF registers -ULONG RfReg =0 ; -RT30xxReadRFRegister (pAd,RF_R30 , (PUCHAR )&RfReg); - RfReg |=0x80 ; -RT30xxWriteRFRegister (pAd,RF_R30 , (UCHAR )RfReg); -RTMPusecDelay (1000 ); - RfReg &=0x7F ; -RT30xxWriteRFRegister (pAd,RF_R30 , (UCHAR )RfReg); - -// Initialize RF register to default value -for (i =0 ; i <NUM_RF_REG_PARMS ; i++) - { -RT30xxWriteRFRegister (pAd, RT30xx_RFRegTable[i].Register, RT30xx_RFRegTable[i].Value); - } - -//For RF filter Calibration -RTMPFilterCalibration (pAd); - } -#endif +if (IS_RT3070 (pAd) #ifdef RT30xx -if (IS_RT3070 (pAd) ||IS_RT3071 (pAd)) + ||IS_RT3071 (pAd) +#else + && (pAd->RfIcType ==RFIC_3020 || pAd->RfIcType ==RFIC_2020 ) +#endif + ) {// Init RF calibration // Driver should toggle RF R30 bit7 before init RF registers UINT32 RfReg =0 ; +#ifdef RT30xxUINT32 data; - +#endif RT30xxReadRFRegister (pAd,RF_R30 , (PUCHAR )&RfReg); RfReg |=0x80 ;RT30xxWriteRFRegister (pAd,RF_R30 , (UCHAR )RfReg);
@@ -1307,7 +1290,7 @@ VOID NICInitRT30xxRFRegisters(IN PRTMP_ART30xxWriteRFRegister (pAd, RT30xx_RFRegTable[i].Register, RT30xx_RFRegTable[i].Value); } -// add by johnli +#ifdef RT30xxif (IS_RT3070 (pAd)) {// Update MAC 0x05D4 from 01xxxxxx to 0Dxxxxxx (voltage 1.2V to 1.35V) for RT3070 to improve yield rate
@@ -1345,10 +1328,10 @@ VOID NICInitRT30xxRFRegisters(IN PRTMP_A data &= ~(0x20 ); RTUSBWriteMACRegister(pAd, GPIO_SWITCH, data); } - +#endif //For RF filter Calibration RTMPFilterCalibration (pAd); - +#ifdef RT30xx// Initialize RF R27 register, set RF R27 must be behind RTMPFilterCalibration() if ((pAd->MACVersion &0xffff ) <0x0211 )RT30xxWriteRFRegister (pAd,RF_R27 ,0x3 );
@@ -1363,8 +1346,8 @@ VOID NICInitRT30xxRFRegisters(IN PRTMP_A// add by johnli, RF power sequence setup, load RF normal operation-mode setup RT30xxLoadRFNormalModeSetup (pAd); } - } #endif + } }#endif // RT2870 //
PATCH 4/33 Staging: rtxxxx: RTMPGetRalinkAuthModeStr() fixes
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rtxxxx: RTMPGetRalinkAuthModeStr() fixes
--- drivers/staging/rt2860/common/cmm_info.c | 7 ------- 1 file changed, 7 deletions(-)
drivers/staging/rt2860/common/cmm_info.c +0 -7
@@ -2720,9 +2720,6 @@ PCHAR RTMPGetRalinkAuthModeStr( {case Ndis802_11AuthModeOpen:return "OPEN" ; -#if defined(RT2860 ) || defined(RT30xx) -default : -#endif case Ndis802_11AuthModeWPAPSK:return "WPAPSK" ;case Ndis802_11AuthModeShared:
@@ -2737,14 +2734,10 @@ PCHAR RTMPGetRalinkAuthModeStr(return "WPAPSKWPA2PSK" ;case Ndis802_11AuthModeWPA1WPA2:return "WPA1WPA2" ; -#ifndef RT30xxcase Ndis802_11AuthModeWPANone:return "WPANONE" ; -#ifdef RT2870 default :return "UNKNOW" ; -#endif -#endif } }
PATCH 5/33 Staging: rt3070: update allowed channels list for Japan
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt3070: update allowed channels list for Japan
rt3070 driver allows use of 5G channel 34 while rt{286,287,309}0 drivers don't and quick googling seems to confirm the limitation.
---
seems like wireless-regdb-2009.08.17 also needs the update (s/5170/5180/ for JP)
drivers/staging/rt2860/chlist.h | 5 ----- 1 file changed, 5 deletions(-)
drivers/staging/rt2860/chlist.h +0 -5
@@ -524,12 +524,7 @@ static CH_REGION ChRegion[] = JAP, { { 1, 14, 20, BOTH, FALSE}, // 2.4 G, ch 1~14 -#ifndef RT30xx { 36, 4, 23, IDOR, FALSE}, // 5G, ch 36~48 -#endif -#ifdef RT30xx - { 34, 4, 23, IDOR, FALSE}, // 5G, ch 34~46 -#endif { 0}, // end } },
PATCH 6/33 Staging: rt3070: fix PID checking in RTUSBEnqueueCmdFromNdis()
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt3070: fix PID checking in RTUSBEnqueueCmdFromNdis()
--- drivers/staging/rt2870/common/rtusb_io.c | 5 ----- 1 file changed, 5 deletions(-)
drivers/staging/rt2870/common/rtusb_io.c +0 -5
@@ -974,12 +974,7 @@ NDIS_STATUS RTUSBEnqueueCmdFromNdis(PCmdQElmt cmdqelmt =NULL ;POS_COOKIE pObj = (POS_COOKIE ) pAd->OS_Cookie; -#ifndef RT30xxif (pid_nr (pObj->RTUSBCmdThr_pid) >0 ) -#endif -#ifdef RT30xx - if (pObj->RTUSBCmdThr_pid < 0) -#endif return (NDIS_STATUS_RESOURCES ); status =RTMPAllocateMemory ((PVOID *)&cmdqelmt,sizeof (CmdQElmt));
PATCH 7/33 Staging: rt3070: WEP fixes
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt3070: WEP fixes
Propagate WEP fixes from rt28[67]0 to rt3070.
--- drivers/staging/rt2860/common/cmm_wpa.c | 12 ++---------- drivers/staging/rt2860/common/mlme.c | 22 ++-------------------- drivers/staging/rt2860/sta/wpa.c | 4 ---- drivers/staging/rt2860/sta_ioctl.c | 2 -- 4 files changed, 4 insertions(+), 36 deletions(-)
drivers/staging/rt2860/common/cmm_wpa.c +2 -10
@@ -39,14 +39,10 @@// WPA OUI UCHAR OUI_WPA_NONE_AKM [4 ] = {0x00 ,0x50 ,0xF2 ,0x00 };UCHAR OUI_WPA_VERSION [4 ] = {0x00 ,0x50 ,0xF2 ,0x01 }; -#ifndef RT30xxUCHAR OUI_WPA_WEP40 [4 ] = {0x00 ,0x50 ,0xF2 ,0x01 }; -#endif UCHAR OUI_WPA_TKIP [4 ] = {0x00 ,0x50 ,0xF2 ,0x02 };UCHAR OUI_WPA_CCMP [4 ] = {0x00 ,0x50 ,0xF2 ,0x04 }; -#ifndef RT30xxUCHAR OUI_WPA_WEP104 [4 ] = {0x00 ,0x50 ,0xF2 ,0x05 }; -#endif UCHAR OUI_WPA_8021X_AKM [4 ] = {0x00 ,0x50 ,0xF2 ,0x01 };UCHAR OUI_WPA_PSK_AKM [4 ] = {0x00 ,0x50 ,0xF2 ,0x02 };// WPA2 OUI
@@ -55,9 +51,7 @@ UCHAR OUI_WPA2_TKIP[4] = {0UCHAR OUI_WPA2_CCMP [4 ] = {0x00 ,0x0F ,0xAC ,0x04 };UCHAR OUI_WPA2_8021X_AKM [4 ] = {0x00 ,0x0F ,0xAC ,0x01 };UCHAR OUI_WPA2_PSK_AKM [4 ] = {0x00 ,0x0F ,0xAC ,0x02 }; -#ifndef RT30xxUCHAR OUI_WPA2_WEP104 [4 ] = {0x00 ,0x0F ,0xAC ,0x05 }; -#endif // MSA OUI UCHAR OUI_MSA_8021X_AKM [4 ] = {0x00 ,0x0F ,0xAC ,0x05 };// Not yet final - IEEE 802.11s-D1.06 UCHAR OUI_MSA_PSK_AKM [4 ] = {0x00 ,0x0F ,0xAC ,0x06 };// Not yet final - IEEE 802.11s-D1.06
@@ -376,7 +370,6 @@ static VOID RTMPInsertRsnIeCipher(break ; } -#ifndef RT30xxif ((pAd->OpMode ==OPMODE_STA ) && (pAd->StaCfg.GroupCipher != Ndis802_11Encryption2Enabled) && (pAd->StaCfg.GroupCipher != Ndis802_11Encryption3Enabled))
@@ -392,7 +385,7 @@ static VOID RTMPInsertRsnIeCipher(break ; } } -#endif +// swap for big-endian platform pRsnie_cipher->version =cpu2le16 (pRsnie_cipher->version); pRsnie_cipher->ucount =cpu2le16 (pRsnie_cipher->ucount);
@@ -453,7 +446,6 @@ static VOID RTMPInsertRsnIeCipher(break ; } -#ifndef RT30xxif ((pAd->OpMode ==OPMODE_STA ) && (pAd->StaCfg.GroupCipher != Ndis802_11Encryption2Enabled) && (pAd->StaCfg.GroupCipher != Ndis802_11Encryption3Enabled))
@@ -469,7 +461,7 @@ static VOID RTMPInsertRsnIeCipher(break ; } } -#endif +// swap for big-endian platform pRsnie_cipher->version =cpu2le16 (pRsnie_cipher->version); pRsnie_cipher->ucount =cpu2le16 (pRsnie_cipher->ucount);
drivers/staging/rt2860/common/mlme.c +2 -20
@@ -3912,11 +3912,8 @@ VOID BssTableSsidSort(continue ;// check group cipher - if ( -#ifndef RT30xx - pInBss->WPA.GroupCipher != Ndis802_11GroupWEP40Enabled && +if (pInBss->WPA.GroupCipher != Ndis802_11GroupWEP40Enabled && pInBss->WPA.GroupCipher != Ndis802_11GroupWEP104Enabled && -#endif pAd->StaCfg.WepStatus < pInBss->WPA.GroupCipher)continue ;
@@ -3936,11 +3933,8 @@ VOID BssTableSsidSort(continue ;// check group cipher - if ( -#ifndef RT30xx - pInBss->WPA2.GroupCipher != Ndis802_11GroupWEP40Enabled && +if (pInBss->WPA2.GroupCipher != Ndis802_11GroupWEP40Enabled && pInBss->WPA2.GroupCipher != Ndis802_11GroupWEP104Enabled && -#endif pAd->StaCfg.WepStatus < pInBss->WPA2.GroupCipher)continue ;
@@ -4219,16 +4213,10 @@ VOID BssCipherParse(switch (*pTmp) {case 1 : -#ifndef RT30xx pBss->WPA.GroupCipher = Ndis802_11GroupWEP40Enabled;break ;case 5 : pBss->WPA.GroupCipher = Ndis802_11GroupWEP104Enabled; -#endif -#ifdef RT30xx -case 5 :// Although WEP is not allowed in WPA related auth mode, we parse it anyway - pBss->WPA.GroupCipher = Ndis802_11Encryption1Enabled; -#endif break ;case 2 : pBss->WPA.GroupCipher = Ndis802_11Encryption2Enabled;
@@ -4344,16 +4332,10 @@ VOID BssCipherParse(switch (pCipher->Type) {case 1 : -#ifndef RT30xx pBss->WPA2.GroupCipher = Ndis802_11GroupWEP40Enabled;break ;case 5 : pBss->WPA2.GroupCipher = Ndis802_11GroupWEP104Enabled; -#endif -#ifdef RT30xx -case 5 :// Although WEP is not allowed in WPA related auth mode, we parse it anyway - pBss->WPA2.GroupCipher = Ndis802_11Encryption1Enabled; -#endif break ;case 2 : pBss->WPA2.GroupCipher = Ndis802_11Encryption2Enabled;
drivers/staging/rt2860/sta/wpa.c +0 -4
@@ -1384,12 +1384,10 @@ VOID WpaGroupMsg1Action( pAd->SharedKey[BSS0 ][pAd->StaCfg.DefaultKeyId].CipherAlg =CIPHER_TKIP ; else if (pAd->StaCfg.GroupCipher == Ndis802_11Encryption3Enabled) pAd->SharedKey[BSS0][pAd->StaCfg.DefaultKeyId].CipherAlg = CIPHER_AES; -#ifndef RT30xx else if (pAd->StaCfg.GroupCipher == Ndis802_11GroupWEP40Enabled) pAd->SharedKey[BSS0][pAd->StaCfg.DefaultKeyId].CipherAlg = CIPHER_WEP64; else if (pAd->StaCfg.GroupCipher == Ndis802_11GroupWEP104Enabled) pAd->SharedKey[BSS0][pAd->StaCfg.DefaultKeyId].CipherAlg = CIPHER_WEP128; -#endif //hex_dump("Group Key :", pAd->SharedKey[BSS0][pAd->StaCfg.DefaultKeyId].Key, LEN_TKIP_EK); }
@@ -1797,12 +1795,10 @@ BOOLEAN ParseKeyData( pAd->SharedKey[BSS0 ][pAd->StaCfg.DefaultKeyId].CipherAlg =CIPHER_TKIP ; else if (pAd->StaCfg.GroupCipher == Ndis802_11Encryption3Enabled) pAd->SharedKey[BSS0][pAd->StaCfg.DefaultKeyId].CipherAlg = CIPHER_AES; -#ifndef RT30xx else if (pAd->StaCfg.GroupCipher == Ndis802_11GroupWEP40Enabled) pAd->SharedKey[BSS0][pAd->StaCfg.DefaultKeyId].CipherAlg = CIPHER_WEP64; else if (pAd->StaCfg.GroupCipher == Ndis802_11GroupWEP104Enabled) pAd->SharedKey[BSS0][pAd->StaCfg.DefaultKeyId].CipherAlg = CIPHER_WEP128; -#endif return TRUE;
drivers/staging/rt2860/sta_ioctl.c +0 -2
@@ -2216,7 +2216,6 @@ int rt_ioctl_siwencodeext(struct net_devNdisZeroMemory (pAdapter->SharedKey[BSS0 ][keyIdx].Key,16 );NdisMoveMemory (pAdapter->SharedKey[BSS0 ][keyIdx].Key, ext->key, ext->key_len); -#ifndef RT30xxif (pAdapter->StaCfg.GroupCipher == Ndis802_11GroupWEP40Enabled || pAdapter->StaCfg.GroupCipher == Ndis802_11GroupWEP104Enabled) {
@@ -2231,7 +2230,6 @@ int rt_ioctl_siwencodeext(struct net_dev// Indicate Connected for GUI pAdapter->IndicateMediaState = NdisMediaStateConnected; } -#endif break ;case IW_ENCODE_ALG_TKIP :DBGPRINT (RT_DEBUG_TRACE , ("%s::IW_ENCODE_ALG_TKIP - keyIdx = %d, ext->key_len = %d\n" , __func__, keyIdx, ext->key_len));
PATCH 8/33 Staging: rt3070: AsicSetSlotTime() fix
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt3070: AsicSetSlotTime() fix
--- drivers/staging/rt2860/common/mlme.c | 5 ----- 1 file changed, 5 deletions(-)
drivers/staging/rt2860/common/mlme.c +0 -5
@@ -7004,7 +7004,6 @@ VOID AsicSetSlotTime( SlotTime = (bUseShortSlotTime)?9 :20 ; { -#ifndef RT30xx// force using short SLOT time for FAE to demo performance when TxBurst is ON if (((pAd->StaActive.SupportedPhyInfo.bHtEnable == FALSE) && (OPSTATUS_TEST_FLAG (pAd, fOP_STATUS_WMM_INUSED))) || ((pAd->StaActive.SupportedPhyInfo.bHtEnable == TRUE) && (pAd->CommonCfg.BACapability.field.Policy == BA_NOTUSE))
@@ -7014,10 +7013,6 @@ VOID AsicSetSlotTime(// And we will not set to short slot when bEnableTxBurst is TRUE. }else if (pAd->CommonCfg.bEnableTxBurst) -#endif -#ifdef RT30xx - if (pAd->CommonCfg.bEnableTxBurst) -#endif SlotTime =9 ; }
PATCH 9/33 Staging: rt3070: remove needless EFUSE_TAG register read
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt3070: remove needless EFUSE_TAG register read
* remove write-only EFuseTag field from RTMP_ADAPTER
* remove needless EFUSE_TAG register read
--- drivers/staging/rt2860/common/rtmp_init.c | 8 -------- drivers/staging/rt2860/rtmp.h | 1 - 2 files changed, 9 deletions(-)
drivers/staging/rt2860/common/rtmp_init.c +0 -8
@@ -1779,14 +1779,6 @@ VOID NICReadEEPROMParameters(RTMPReadTxPwrPerRate (pAd); -#ifdef RT30xx -if (IS_RT30xx (pAd)) - { -eFusePhysicalReadRegisters (pAd,EFUSE_TAG ,2 , &value); - pAd->EFuseTag = (value &0xff ); - } -#endif // RT30xx // -DBGPRINT (RT_DEBUG_TRACE , ("<-- NICReadEEPROMParameters\n" )); }
drivers/staging/rt2860/rtmp.h +0 -1
@@ -2669,7 +2669,6 @@ typedef struct _RTMP_ADAPTERUSHORT EEPROMDefaultValue[NUM_EEPROM_BBP_PARMS ];#ifdef RT30xxBOOLEAN EepromAccess; -UCHAR EFuseTag;#endif ULONG FirmwareVersion;// byte 0: Minor version, byte 1: Major version, otherwise unused.
PATCH 10/33 Staging: rt3070: add remaining rt2870 device ids
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt3070: add remaining rt2870 device ids
--- drivers/staging/rt2870/2870_main_dev.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-)
drivers/staging/rt2870/2870_main_dev.c +2 -12
@@ -61,10 +61,8 @@ extern INT __devinit rt28xx_probe(IN voistruct usb_device_id rtusb_usb_id[] = { {USB_DEVICE (0x148F ,0x2770 ) },/* Ralink */ -#ifndef RT30xx {USB_DEVICE (0x1737 ,0x0071 ) },/* Linksys WUSB600N */ {USB_DEVICE (0x1737 ,0x0070 ) },/* Linksys */ -#endif {USB_DEVICE (0x148F ,0x2870 ) },/* Ralink */ {USB_DEVICE (0x148F ,0x3070 ) },/* Ralink 3070 */ #ifdef RT30xx
@@ -82,15 +80,11 @@ struct usb_device_id rtusb_usb_id[] = {#endif { USB_DEVICE(0x0DF6, 0x002D) }, /* Sitecom */ { USB_DEVICE(0x0DF6, 0x0039) }, /* Sitecom 2770 */ -#ifndef RT30xx { USB_DEVICE(0x0DF6, 0x003F) }, /* Sitecom WL-608 */ -#endif { USB_DEVICE(0x14B2, 0x3C06) }, /* Conceptronic */ { USB_DEVICE(0x14B2, 0x3C28) }, /* Conceptronic */ { USB_DEVICE(0x2019, 0xED06) }, /* Planex Communications, Inc. */ -#ifndef RT30xx { USB_DEVICE(0x2019, 0xED14) }, /* Planex Communications, Inc. */ -#endif { USB_DEVICE(0x2019, 0xAB25) }, /* Planex Communications, Inc. RT3070 */ { USB_DEVICE(0x07D1, 0x3C09) }, /* D-Link */ { USB_DEVICE(0x07D1, 0x3C11) }, /* D-Link */
@@ -101,10 +95,8 @@ struct usb_device_id rtusb_usb_id[] = { { USB_DEVICE(0x14B2, 0x3C07) }, /* AL */ { USB_DEVICE(0x14B2, 0x3C12) }, /* AL 3070 */ { USB_DEVICE(0x050D, 0x8053) }, /* Belkin */ -#ifndef RT30xx { USB_DEVICE(0x050D, 0x815C) }, /* Belkin */ { USB_DEVICE(0x050D, 0x825a) }, /* Belkin */ -#endif { USB_DEVICE(0x14B2, 0x3C23) }, /* Airlink */ { USB_DEVICE(0x14B2, 0x3C27) }, /* Airlink */ { USB_DEVICE(0x07AA, 0x002F) }, /* Corega */
@@ -152,10 +144,9 @@ struct usb_device_id rtusb_usb_id[] = { { USB_DEVICE(0x04E8, 0x2018) }, /* samsung */ { USB_DEVICE(0x07B8, 0x3070) }, /* AboCom 3070 */ { USB_DEVICE(0x07B8, 0x3071) }, /* AboCom 3071 */ -#ifndef RT30xx { USB_DEVICE(0x07B8, 0x2870) }, /* AboCom */ { USB_DEVICE(0x07B8, 0x2770) }, /* AboCom */ -#else +#ifdef RT30xx { USB_DEVICE(0x07B8, 0x3072) }, /* Abocom 3072 */ #endif { USB_DEVICE(0x7392, 0x7711) }, /* Edimax 3070 */
@@ -167,9 +158,8 @@ struct usb_device_id rtusb_usb_id[] = { { USB_DEVICE(0x0789, 0x0162) }, /* Logitec 2870 */ { USB_DEVICE(0x0789, 0x0163) }, /* Logitec 2870 */ { USB_DEVICE(0x0789, 0x0164) }, /* Logitec 2870 */ -#ifndef RT30xx { USB_DEVICE(0x7392, 0x7717) }, /* Edimax */ -#else +#ifdef RT30xx { USB_DEVICE(0x1EDA, 0x2310) }, /* AirTies 3070 */ { USB_DEVICE(0x1737, 0x0077) }, /* Linksys WUSB54GC-EU v3 */ #endif
PATCH 11/33 Staging: rt2870: use internal command for AsicUpdateProtect()
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt2870: use internal command for AsicUpdateProtect()
--- drivers/staging/rt2860/common/cmm_data.c | 5 ++--- drivers/staging/rt2870/common/rtusb_io.c | 6 ------ 2 files changed, 2 insertions(+), 9 deletions(-)
drivers/staging/rt2860/common/cmm_data.c +2 -3
@@ -2332,10 +2332,9 @@ BOOLEAN MacTableDeleteEntry(if (pAd->MacTab.Size ==0 ) { pAd->CommonCfg.AddHTInfo.AddHtInfo2.OperaionMode =0 ; -#ifndef RT30xx +#ifdef RT2860 AsicUpdateProtect (pAd,0 /*pAd->CommonCfg.AddHTInfo.AddHtInfo2.OperaionMode*/ , (ALLN_SETPROTECT ), TRUE,0 /*pAd->MacTab.fAnyStationNonGF*/ ); -#endif -#ifdef RT30xx +#else // edit by johnli, fix "in_interrupt" error when call "MacTableDeleteEntry" in Rx tasklet // Set MAC register value according operation mode RTUSBEnqueueInternalCmd (pAd,CMDTHREAD_UPDATE_PROTECT ,NULL ,0 );
drivers/staging/rt2870/common/rtusb_io.c +0 -6
@@ -1807,17 +1807,11 @@ VOID CMDHandler( pEntry->Addr[0], pEntry->Addr[1], pEntry->Addr[2], pEntry->Addr[3], pEntry->Addr[4], pEntry->Addr[5]); }break ; - -#ifdef RT30xx -// add by johnli, fix "in_interrupt" error when call "MacTableDeleteEntry" in Rx tasklet case CMDTHREAD_UPDATE_PROTECT : {AsicUpdateProtect (pAd,0 , (ALLN_SETPROTECT ), TRUE,0 ); }break ; -// end johnli -#endif -case OID_802_11_ADD_WEP : {UINT i;
PATCH 12/33 Staging: rt2870: add fRTUSB_BULK_OUT_DATA_NORMAL_5 quirk
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt2870: add fRTUSB_BULK_OUT_DATA_NORMAL_5 quirk
--- drivers/staging/rt2870/common/2870_rtmp_init.c | 5 ----- drivers/staging/rt2870/common/rtusb_bulk.c | 3 +-- 2 files changed, 1 insertion(+), 7 deletions(-)
drivers/staging/rt2870/common/2870_rtmp_init.c +0 -5
@@ -1293,12 +1293,7 @@ static void rt2870_hcca_dma_done_taskletRTMPDeQueuePacket (pAd, FALSE, BulkOutPipeId,MAX_TX_PROCESS ); } -#ifndef RT30xx -RTUSB_SET_BULK_FLAG (pAd, fRTUSB_BULK_OUT_DATA_NORMAL); -#endif -#ifdef RT30xxRTUSB_SET_BULK_FLAG (pAd, fRTUSB_BULK_OUT_DATA_NORMAL<<4 ); -#endif RTUSBKickBulkOut (pAd); } }
drivers/staging/rt2870/common/rtusb_bulk.c +1 -2
@@ -976,7 +976,7 @@ VOID RTUSBKickBulkOut(RTUSBBulkOutDataPacket (pAd,3 , pAd->NextBulkOutIndex[3 ]); } } -#ifdef RT30xx +//PS packets use HCCA queue when dequeue from PS unicast queue (WiFi WPA2 MA9_DT1 for Marvell B STA) if (RTUSB_TEST_BULK_FLAG (pAd, fRTUSB_BULK_OUT_DATA_NORMAL_5)) {
@@ -986,7 +986,6 @@ VOID RTUSBKickBulkOut( { } } -#endif // 7. Null frame is the last else if (RTUSB_TEST_BULK_FLAG (pAd, fRTUSB_BULK_OUT_DATA_NULL))
PATCH 13/33 Staging: rt28x0: add SIOCGIWNAME support to rt_ioctl_giwscan()
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt28x0: add SIOCGIWNAME support to rt_ioctl_giwscan()
--- drivers/staging/rt2860/sta_ioctl.c | 2 -- 1 file changed, 2 deletions(-)
drivers/staging/rt2860/sta_ioctl.c +0 -2
@@ -979,7 +979,6 @@ int rt_ioctl_giwscan(struct net_device * previous_ev = current_ev; current_ev =iwe_stream_add_event (info, current_ev,end_buf, &iwe,IW_EV_ADDR_LEN ); -#ifdef RT30xxif (current_ev == previous_ev)return -E2BIG ;
@@ -1055,7 +1054,6 @@ int rt_ioctl_giwscan(struct net_device * previous_ev = current_ev; current_ev =iwe_stream_add_event (info, current_ev, end_buf, &iwe,IW_EV_ADDR_LEN ); -#endif /* RT30xx */ if (current_ev == previous_ev)return -E2BIG ;
PATCH 14/33 Staging: rt28x0: fix GTK length check in ParseKeyData()
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt28x0: fix GTK length check in ParseKeyData()
--- drivers/staging/rt2860/sta/wpa.c | 5 ----- drivers/staging/rt2860/wpa.h | 1 - 2 files changed, 6 deletions(-)
drivers/staging/rt2860/sta/wpa.c +0 -5
@@ -1764,12 +1764,7 @@ BOOLEAN ParseKeyData(// Get GTK length - refer to IEEE 802.11i-2004 p.82 GTKLEN = pKDE->Len -6 ; -#ifdef RT30xxif (GTKLEN <LEN_AES_KEY ) -#endif -#ifndef RT30xx - if (GTKLEN < MIN_LEN_OF_GTK) -#endif {DBGPRINT (RT_DEBUG_ERROR , ("ERROR: GTK Key length is too short (%d) \n" ,GTKLEN ));return FALSE;
drivers/staging/rt2860/wpa.h +0 -1
@@ -90,7 +90,6 @@#define TKIP_AP_RXMICK_OFFSET (TKIP_AP_TXMICK_OFFSET+LEN_TKIP_TXMICK)#define TKIP_GTK_LENGTH ((LEN_TKIP_EK)+(LEN_TKIP_RXMICK)+(LEN_TKIP_TXMICK))#define LEN_PTK ((LEN_EAP_KEY)+(LEN_TKIP_KEY)) -#define MIN_LEN_OF_GTK 5// RSN IE Length definition #define MAX_LEN_OF_RSNIE 90
PATCH 15/33 Staging: rt28x0: fix BPP_R66 register handling
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt28x0: fix BPP_R66 register handling
--- drivers/staging/rt2860/common/cmm_data.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/staging/rt2860/common/cmm_data.c +1 -2
@@ -1951,7 +1951,6 @@ VOID RTMPResumeMsduTransmission( {DBGPRINT (RT_DEBUG_TRACE ,("SCAN done, resume MSDU transmission ...\n" )); -#ifdef RT30xx// After finish BSS_SCAN_IN_PROGRESS, we need to restore Current R66 value // R66 should not be 0 if (pAd->BbpTuning.R66CurrentValue ==0 )
@@ -1959,7 +1958,7 @@ VOID RTMPResumeMsduTransmission( pAd->BbpTuning.R66CurrentValue =0x38 ;DBGPRINT_ERR (("RTMPResumeMsduTransmission, R66CurrentValue=0...\n" )); } -#endif +RTMP_BBP_IO_WRITE8_BY_REG_ID (pAd,BBP_R66 , pAd->BbpTuning.R66CurrentValue);RTMP_CLEAR_FLAG (pAd, fRTMP_ADAPTER_BSS_SCAN_IN_PROGRESS);
PATCH 16/33 Staging: rt28x0: fix fOP_STATUS_DOZE flag handling
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt28x0: fix fOP_STATUS_DOZE flag handling
--- drivers/staging/rt2860/common/mlme.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/staging/rt2860/common/mlme.c +2 -2
@@ -8192,8 +8192,8 @@ VOID AsicEvaluateRxAnt( fRTMP_ADAPTER_RADIO_OFF | fRTMP_ADAPTER_NIC_NOT_EXIST | fRTMP_ADAPTER_BSS_SCAN_IN_PROGRESS) -#ifdef RT30xx || OPSTATUS_TEST_FLAG(pAd, fOP_STATUS_DOZE) +#ifdef RT30xx || (pAd->EepromAccess) #endif )
@@ -8296,8 +8296,8 @@ VOID AsicRxAntEvalTimeout( fRTMP_ADAPTER_HALT_IN_PROGRESS | fRTMP_ADAPTER_RADIO_OFF | fRTMP_ADAPTER_NIC_NOT_EXIST) -#ifdef RT30xx || OPSTATUS_TEST_FLAG(pAd, fOP_STATUS_DOZE) +#ifdef RT30xx || (pAd->EepromAccess) #endif // RT30xx // )
PATCH 17/33 Staging: rt28x0 fix BACapability policy handling
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt28x0 fix BACapability policy handling
--- drivers/staging/rt2860/common/cmm_info.c | 7 +------ drivers/staging/rt2860/rt_profile.c | 6 ------ 2 files changed, 1 insertion(+), 12 deletions(-)
drivers/staging/rt2860/common/cmm_info.c +1 -6
@@ -2491,24 +2491,19 @@ INT Set_HtAutoBa_Proc(if (Value ==0 ) { pAd->CommonCfg.BACapability.field.AutoBA = FALSE; -#ifdef RT30xx pAd->CommonCfg.BACapability.field.Policy =BA_NOTUSE ; -#endif }else if (Value ==1 ) { pAd->CommonCfg.BACapability.field.AutoBA = TRUE; -#ifdef RT30xx pAd->CommonCfg.BACapability.field.Policy =IMMED_BA ; -#endif }else return FALSE;//Invalid argument pAd->CommonCfg.REGBACapability.field.AutoBA = pAd->CommonCfg.BACapability.field.AutoBA; -#ifdef RT30xx pAd->CommonCfg.REGBACapability.field.Policy = pAd->CommonCfg.BACapability.field.Policy; -#endif +SetCommonHT (pAd);DBGPRINT (RT_DEBUG_TRACE , ("Set_HtAutoBa_Proc::(HtAutoBa=%d)\n" ,pAd->CommonCfg.BACapability.field.AutoBA));
drivers/staging/rt2860/rt_profile.c +0 -6
@@ -1541,21 +1541,15 @@ static void HTParametersHook(if (Value ==0 ) { pAd->CommonCfg.BACapability.field.AutoBA = FALSE; -#ifdef RT30xx pAd->CommonCfg.BACapability.field.Policy =BA_NOTUSE ; -#endif }else { pAd->CommonCfg.BACapability.field.AutoBA = TRUE; -#ifdef RT30xx pAd->CommonCfg.BACapability.field.Policy =IMMED_BA ; -#endif } pAd->CommonCfg.REGBACapability.field.AutoBA = pAd->CommonCfg.BACapability.field.AutoBA; -#ifdef RT30xx pAd->CommonCfg.REGBACapability.field.Policy = pAd->CommonCfg.BACapability.field.Policy; -#endif DBGPRINT (RT_DEBUG_TRACE , ("HT: Auto BA = %s\n" , (Value==0 ) ?"Disable" :"Enable" )); }
PATCH 18/33 Staging: rt28x0: AsicSwitchChannel() fix
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt28x0: AsicSwitchChannel() fix
--- drivers/staging/rt2860/common/mlme.c | 12 ------------ 1 file changed, 12 deletions(-)
drivers/staging/rt2860/common/mlme.c +0 -12
@@ -5756,7 +5756,6 @@ VOID AsicSwitchChannel(RTMP_RF_REGS *RFRegTable;// Search Tx power value -#ifdef RT30xx// We can't use ChannelList to search channel, since some central channl's txpowr doesn't list // in ChannelList, so use TxPower array instead. //
@@ -5769,17 +5768,6 @@ VOID AsicSwitchChannel(break ; } } -#else -for (index =0 ; index < pAd->ChannelListNum; index++) - { -if (Channel == pAd->ChannelList[index].Channel) - { - TxPwer = pAd->ChannelList[index].Power; - TxPwer2 = pAd->ChannelList[index].Power2; -break ; - } - } -#endif if (index ==MAX_NUM_OF_CHANNELS )DBGPRINT (RT_DEBUG_ERROR , ("AsicSwitchChannel: Can't find the Channel#%d \n" , Channel));
PATCH 19/33 Staging: rt28x0: BssTableSetEntry() fix
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt28x0: BssTableSetEntry() fix
--- drivers/staging/rt2860/common/mlme.c | 4 ---- 1 file changed, 4 deletions(-)
drivers/staging/rt2860/common/mlme.c +0 -4
@@ -3840,18 +3840,14 @@ ULONG BssTableSetEntry( }else { -#ifdef RT30xx/* avoid Hidden SSID form beacon to overwirite correct SSID from probe response */ if ((SSID_EQUAL (Ssid, SsidLen, Tab->BssEntry[Idx].Ssid, Tab->BssEntry[Idx].SsidLen)) || (NdisEqualMemory (Tab->BssEntry[Idx].Ssid, ZeroSsid, Tab->BssEntry[Idx].SsidLen))) { -#endif BssEntrySet (pAd, &Tab->BssEntry[Idx], pBssid, Ssid, SsidLen, BssType, BeaconPeriod,CfParm, AtimWin, CapabilityInfo, SupRate, SupRateLen, ExtRate, ExtRateLen,pHtCapability, pAddHtInfo,HtCapabilityLen, AddHtInfoLen, NewExtChanOffset, ChannelNo, Rssi, TimeStamp, CkipFlag, pEdcaParm, pQosCapability, pQbssLoad, LengthVIE, pVIE); -#ifdef RT30xx } -#endif }return Idx;
PATCH 20/33 Staging: rt28x0: MlmeSelectTxRateTable() fix
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt28x0: MlmeSelectTxRateTable() fix
--- drivers/staging/rt2860/common/mlme.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-)
drivers/staging/rt2860/common/mlme.c +1 -6
@@ -1566,12 +1566,7 @@ VOID MlmeSelectTxRateTable( }//else if ((pAd->StaActive.SupRateLen == 4) && (pAd->StaActive.ExtRateLen == 0) && (pAd->StaActive.SupportedPhyInfo.MCSSet[0] == 0) && (pAd->StaActive.SupportedPhyInfo.MCSSet[1] == 0)) -if ((pEntry->RateLen ==4 ) -#ifndef RT30xx -//Iverson mark for Adhoc b mode,sta will use rate 54 Mbps when connect with sta b/g/n mode - && (pEntry->HTCapability.MCSSet[0 ] ==0 ) && (pEntry->HTCapability.MCSSet[1 ] ==0 ) -#endif - ) +if (pEntry->RateLen ==4 ) {// B only AP *ppTable = RateSwitchTable11B; *pTableSize = RateSwitchTable11B[0 ];
PATCH 21/33 Staging: rt28x0: MlmeCheckPsmChange() fix
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt28x0: MlmeCheckPsmChange() fix
--- drivers/staging/rt2860/common/mlme.c | 2 -- 1 file changed, 2 deletions(-)
drivers/staging/rt2860/common/mlme.c +0 -2
@@ -2766,7 +2766,6 @@ VOID MlmeCheckPsmChange( (pAd->Mlme.CntlMachine.CurrState == CNTL_IDLE))#endif { -#ifdef RT30xx// add by johnli, use Rx OK data count per second to calculate throughput // If Ttraffic is too high ( > 400 Rx per second), don't go to sleep mode. If tx rate is low, use low criteria // Mode=CCK/MCS=3 => 11 Mbps, Mode=OFDM/MCS=3 => 18 Mbps
@@ -2774,7 +2773,6 @@ VOID MlmeCheckPsmChange( (pAd->RalinkCounters.OneSecRxOkDataCnt < (ULONG)100)) || ((pAd->StaCfg.HTPhyMode.field.MCS > 3) && (pAd->RalinkCounters.OneSecRxOkDataCnt < (ULONG)400))) -#endif {// Get this time NdisGetSystemUpTime (&pAd->Mlme.LastSendNULLpsmTime);
PATCH 22/33 Staging: rt28x0: MlmeAssocReqAction() fixes for wpa_supplicant support
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt28x0: MlmeAssocReqAction() fixes for wpa_supplicant support
--- drivers/staging/rt2860/sta/assoc.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-)
drivers/staging/rt2860/sta/assoc.c +0 -6
@@ -454,9 +454,7 @@ VOID MlmeAssocReqAction( RSNIe =IE_WPA2 ; } -#ifdef RT30xxif (pAd->StaCfg.WpaSupplicantUP !=1 ) -#endif RTMPMakeRSNIE (pAd, pAd->StaCfg.AuthMode, pAd->StaCfg.WepStatus,BSS0 );// Check for WPA PMK cache list
@@ -483,7 +481,6 @@ VOID MlmeAssocReqAction( } } -#ifdef RT30xxif (pAd->StaCfg.WpaSupplicantUP ==1 ) { MakeOutgoingFrame(pOutBuffer + FrameLen, &tmp,
@@ -491,7 +488,6 @@ VOID MlmeAssocReqAction( END_OF_ARGS); }else -#endif { MakeOutgoingFrame(pOutBuffer + FrameLen, &tmp, 1, &RSNIe,
@@ -502,9 +498,7 @@ VOID MlmeAssocReqAction( FrameLen += tmp; -#ifdef RT30xxif (pAd->StaCfg.WpaSupplicantUP !=1 ) -#endif {// Append Variable IE NdisMoveMemory (pAd->StaCfg.ReqVarIEs + VarIesOffset, &RSNIe,1 );
PATCH 23/33 Staging: rt28x0: rt_ioctl_siwencode() fixes
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt28x0: rt_ioctl_siwencode() fixes
--- drivers/staging/rt2860/sta_ioctl.c | 10 ---------- 1 file changed, 10 deletions(-)
drivers/staging/rt2860/sta_ioctl.c +0 -10
@@ -1425,9 +1425,6 @@ int rt_ioctl_siwencode(struct net_device pAdapter->StaCfg.AuthMode = Ndis802_11AuthModeOpen; goto done; }else if ( -#ifndef RT30xx - erq->length == 0 && -#endif (erq->flags &IW_ENCODE_RESTRICTED || erq->flags &IW_ENCODE_OPEN )) {STA_PORT_SECURED (pAdapter); pAdapter->StaCfg.PairCipher = Ndis802_11WEPEnabled;
@@ -1438,9 +1435,6 @@ int rt_ioctl_siwencode(struct net_device pAdapter->StaCfg.AuthMode = Ndis802_11AuthModeShared; else pAdapter->StaCfg.AuthMode = Ndis802_11AuthModeOpen; -#ifndef RT30xx - goto done; -#endif }if (erq->length >0 )
@@ -1459,12 +1453,8 @@ int rt_ioctl_siwencode(struct net_device//Using default key keyIdx = pAdapter->StaCfg.DefaultKeyId; } -#ifdef RT30xxelse - { pAdapter->StaCfg.DefaultKeyId=keyIdx; - } -#endif NdisZeroMemory (pAdapter->SharedKey[BSS0 ][keyIdx].Key,16 );
PATCH 24/33 Staging: rt28x0: LinkUp() fixes
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt28x0: LinkUp() fixes
--- drivers/staging/rt2860/sta/connect.c | 6 ------ 1 file changed, 6 deletions(-)
drivers/staging/rt2860/sta/connect.c +0 -6
@@ -1171,7 +1171,6 @@ VOID LinkUp(OPSTATUS_SET_FLAG (pAd, fOP_STATUS_ADHOC_ON);OPSTATUS_CLEAR_FLAG (pAd, fOP_STATUS_INFRA_ON); -#ifdef RT30xxif ((pAd->CommonCfg.HtCapability.HtCapInfo.ChannelWidth ==BW_40 ) && (pAd->CommonCfg.AddHTInfo.AddHtInfo.ExtChanOffset ==EXTCHA_ABOVE )) {
@@ -1183,7 +1182,6 @@ VOID LinkUp( { pAd->CommonCfg.CentralChannel = pAd->CommonCfg.Channel -2 ; } -#endif #ifdef RT2870 if (pAd->CommonCfg.PhyMode >=PHY_11ABGN_MIXED )AdhocTurnOnQos (pAd);
@@ -1585,9 +1583,7 @@ VOID LinkUp( pAd->MacTab.Size =1 ;// infra mode always set MACtab size =1. pAd->MacTab.Content[BSSID_WCID ].Sst =SST_ASSOC ; pAd->MacTab.Content[BSSID_WCID ].AuthState =SST_ASSOC ; -#ifdef RT30xx pAd->MacTab.Content[BSSID_WCID ].AuthMode = pAd->StaCfg.AuthMode; -#endif pAd->MacTab.Content[BSSID_WCID ].WepStatus = pAd->StaCfg.WepStatus;NdisReleaseSpinLock (&pAd->MacTabLock);
@@ -1712,9 +1708,7 @@ VOID LinkUp(// // if 1. Legacy AP WMM on, or 2. 11n AP, AMPDU disable. Force turn off burst no matter what bEnableTxBurst is. if ( -#ifdef RT30xx !(pAd->CommonCfg.RxStream ==1 && pAd->CommonCfg.TxStream ==1 ) && -#endif (((pAd->StaActive.SupportedPhyInfo.bHtEnable == FALSE) &&OPSTATUS_TEST_FLAG (pAd, fOP_STATUS_WMM_INUSED)) || ((pAd->StaActive.SupportedPhyInfo.bHtEnable == TRUE) && (pAd->CommonCfg.BACapability.field.Policy ==BA_NOTUSE )))) {
PATCH 25/33 Staging: rt3070: remove unused MiniportDataMMRequest()
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt3070: remove unused MiniportDataMMRequest()
Then remove no longer needed MlmeDataHardTransmit().
--- drivers/staging/rt2860/common/cmm_data.c | 126 ------------------------------- drivers/staging/rt2860/rtmp.h | 8 - 2 files changed, 1 insertion(+), 133 deletions(-)
drivers/staging/rt2860/common/cmm_data.c +0 -126
@@ -252,114 +252,6 @@ NDIS_STATUS MiniportMMRequestUnlock( return Status; }#endif -#ifdef RT30xx -NDIS_STATUS MlmeDataHardTransmit ( - IN PRTMP_ADAPTER pAd, - IN UCHAR QueIdx, - IN PNDIS_PACKET pPacket); - -#define MAX_DATAMM_RETRY 3 -/* -======================================================================== - -Routine Description: -API for MLME to transmit management frame to AP (BSS Mode) -or station (IBSS Mode) - -Arguments: -pAd Pointer to our adapter -pData Pointer to the outgoing 802.11 frame -Length Size of outgoing management frame - -Return Value: -NDIS_STATUS_FAILURE -NDIS_STATUS_PENDING -NDIS_STATUS_SUCCESS - -IRQL = PASSIVE_LEVEL -IRQL = DISPATCH_LEVEL - -Note: - -======================================================================== -*/ -NDIS_STATUS MiniportDataMMRequest ( - IN PRTMP_ADAPTER pAd, - IN UCHAR QueIdx, - IN PUCHAR pData, - IN UINT Length) -{ -PNDIS_PACKET pPacket; -NDIS_STATUS Status =NDIS_STATUS_SUCCESS ; -ULONG FreeNum; -int retry =0 ; -UCHAR IrqState; -UCHAR rtmpHwHdr[TXINFO_SIZE +TXWI_SIZE ];//RTMP_HW_HDR_LEN]; - -ASSERT (Length <=MGMT_DMA_BUFFER_SIZE ); - -// 2860C use Tx Ring - IrqState = pAd->irq_disabled; - -do - { -// Reset is in progress, stop immediately -if (RTMP_TEST_FLAG (pAd, fRTMP_ADAPTER_RESET_IN_PROGRESS) || -RTMP_TEST_FLAG (pAd, fRTMP_ADAPTER_HALT_IN_PROGRESS | fRTMP_ADAPTER_NIC_NOT_EXIST)|| - !RTMP_TEST_FLAG (pAd, fRTMP_ADAPTER_START_UP)) - { - Status =NDIS_STATUS_FAILURE ; -break ; - } - -// Check Free priority queue -// Since we use PBF Queue2 for management frame. Its corresponding DMA ring should be using TxRing. - -// 2860C use Tx Ring - -// free Tx(QueIdx) resources - FreeNum =GET_TXRING_FREENO (pAd, QueIdx); - -if ((FreeNum >0 )) - { -// We need to reserve space for rtmp hardware header. i.e., TxWI for RT2860 and TxInfo+TxWI for RT2870 -NdisZeroMemory (&rtmpHwHdr, (TXINFO_SIZE +TXWI_SIZE )); - Status =RTMPAllocateNdisPacket (pAd, &pPacket, (PUCHAR )&rtmpHwHdr, (TXINFO_SIZE +TXWI_SIZE ), pData, Length); -if (Status !=NDIS_STATUS_SUCCESS ) - { -DBGPRINT (RT_DEBUG_WARN , ("MiniportMMRequest (error:: can't allocate NDIS PACKET)\n" )); -break ; - } - -//pAd->CommonCfg.MlmeTransmit.field.MODE = MODE_CCK; -//pAd->CommonCfg.MlmeRate = RATE_2; - - - Status =MlmeDataHardTransmit (pAd, QueIdx, pPacket); -if (Status !=NDIS_STATUS_SUCCESS ) -RTMPFreeNdisPacket (pAd, pPacket); - retry =MAX_DATAMM_RETRY ; - } -else - { - retry ++; - -printk ("retry %d\n" , retry); - pAd->RalinkCounters.MgmtRingFullCount++; - -if (retry >=MAX_DATAMM_RETRY ) - { -DBGPRINT (RT_DEBUG_ERROR , ("Qidx(%d), not enough space in DataRing, MgmtRingFullCount=%ld!\n" , - QueIdx, pAd->RalinkCounters.MgmtRingFullCount)); - } - } - - }while (retry <MAX_DATAMM_RETRY ); - - -return Status; -} -#endif /* RT30xx */ /* ========================================================================
@@ -588,24 +480,6 @@ NDIS_STATUS MlmeHardTransmitTxRing( }#endif /* RT2860 */ -#ifdef RT30xx -NDIS_STATUS MlmeDataHardTransmit ( - IN PRTMP_ADAPTER pAd, - IN UCHAR QueIdx, - IN PNDIS_PACKET pPacket) -{ -if ((pAd->CommonCfg.RadarDetect.RDMode !=RD_NORMAL_MODE ) - ) - { -return NDIS_STATUS_FAILURE ; - } - -#ifdef RT2870 -return MlmeHardTransmitMgmtRing (pAd,QueIdx,pPacket); -#endif // RT2870 // -} -#endif /* RT30xx */ - NDIS_STATUS MlmeHardTransmitMgmtRing( IN PRTMP_ADAPTER pAd, IN UCHAR QueIdx,
drivers/staging/rt2860/rtmp.h +1 -7
@@ -3556,13 +3556,7 @@ NDIS_STATUS MiniportMMRequest( IN UCHAR QueIdx, IN PUCHAR pData, IN UINT Length); -#ifdef RT2870 -NDIS_STATUS MiniportDataMMRequest ( - IN PRTMP_ADAPTER pAd, - IN UCHAR QueIdx, - IN PUCHAR pData, - IN UINT Length); -#endif + VOID RTMPSendNullFrame( IN PRTMP_ADAPTER pAd, IN UCHAR TxRate,
PATCH 26/33 Staging: rt3070: remove unused RT_CMD_SET_* internal commands
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt3070: remove unused RT_CMD_SET_* internal commands
--- drivers/staging/rt2870/common/rtusb_io.c | 33 ------------------------------- drivers/staging/rt2870/rt2870.h | 2 - 2 files changed, 35 deletions(-)
drivers/staging/rt2870/common/rtusb_io.c +0 -33
@@ -1729,39 +1729,6 @@ VOID CMDHandler( } }break ; - -#ifdef RT30xx -//Benson modified for USB interface, avoid in interrupt when write key, 20080724 --> -case RT_CMD_SET_KEY_TABLE ://General call for AsicAddPairwiseKeyEntry() - { -RT_ADD_PAIRWISE_KEY_ENTRY KeyInfo; - KeyInfo = *((PRT_ADD_PAIRWISE_KEY_ENTRY )(pData)); -AsicAddPairwiseKeyEntry (pAd, - KeyInfo.MacAddr, - (UCHAR )KeyInfo.MacTabMatchWCID, - &KeyInfo.CipherKey); - } -break ; -case RT_CMD_SET_RX_WCID_TABLE ://General call for RTMPAddWcidAttributeEntry() - { -PMAC_TABLE_ENTRY pEntry; -UCHAR KeyIdx =0 ; -UCHAR CipherAlg =0 ; -UCHAR ApIdx =0 ; - - pEntry = (PMAC_TABLE_ENTRY )(pData); - -RTMPAddWcidAttributeEntry ( - pAd, - ApIdx, - KeyIdx, - CipherAlg, - pEntry); - } -break ; -//Benson modified for USB interface, avoid in interrupt when write key, 20080724 <-- -#endif -case CMDTHREAD_SET_CLIENT_MAC_ENTRY : {MAC_TABLE_ENTRY *pEntry;
drivers/staging/rt2870/rt2870.h +0 -2
@@ -557,8 +557,6 @@ typedef struct _CMDHandler_TLV {#define CMDTHREAD_SET_ASIC_WCID 0x0D730226 // cmd#define CMDTHREAD_SET_ASIC_WCID_CIPHER 0x0D730227 // cmd#define CMDTHREAD_QKERIODIC_EXECUT 0x0D73023D // cmd -#define RT_CMD_SET_KEY_TABLE 0x0D730228 // cmd -#define RT_CMD_SET_RX_WCID_TABLE 0x0D730229 // cmd#define CMDTHREAD_SET_CLIENT_MAC_ENTRY 0x0D73023E // cmd#define CMDTHREAD_802_11_QUERY_HARDWARE_REGISTER 0x0D710105 // cmd#define CMDTHREAD_802_11_SET_PHY_MODE 0x0D79010C // cmd
PATCH 27/33 Staging: rt2870: remove SHOW_ADHOC_ENTRY_INFO support
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt2870: remove SHOW_ADHOC_ENTRY_INFO support
--- drivers/staging/rt2860/sta_ioctl.c | 61 ------------------------------------- 1 file changed, 61 deletions(-)
drivers/staging/rt2860/sta_ioctl.c +0 -61
@@ -87,10 +87,6 @@ struct iw_priv_args privtab[] = { 0, 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" }, -#if !defined(RT2860) && !defined(RT30xx) - { SHOW_ADHOC_ENTRY_INFO, - 0, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "adhocEntry" }, -#endif/* --- sub-ioctls relations --- */ { RTPRIV_IOCTL_STATISTICS,
@@ -176,12 +172,6 @@ INT Set_ShortRetryLimit_Proc( IN PRTMP_ADAPTER pAdapter, IN PUCHAR arg); -#if !defined(RT2860 ) && !defined(RT30xx) -INT Show_Adhoc_MacTable_Proc ( - IN PRTMP_ADAPTER pAd, - IN PCHAR extra); -#endif - static struct { CHAR *name; INT (*set_proc)(PRTMP_ADAPTER pAdapter, PUCHAR arg);
@@ -1854,12 +1844,6 @@ rt_private_show(struct net_device *dev, wrq->length =strlen (extra) +1 ;// 1: size of '\0' }break ; -#if !defined(RT2860 ) && !defined(RT30xx) -case SHOW_ADHOC_ENTRY_INFO : -Show_Adhoc_MacTable_Proc (pAd, extra); - wrq->length =strlen (extra) +1 ;// 1: size of '\0' -break ; -#endif default :DBGPRINT (RT_DEBUG_TRACE , ("%s - unknow subcmd = %d\n" , __func__, subcmd));break ;
@@ -3820,48 +3804,3 @@ INT Set_ShortRetryLimit_Proc(DBGPRINT (RT_DEBUG_TRACE , ("IF Set_ShortRetryLimit_Proc::(tx_rty_cfg=0x%x)\n" , tx_rty_cfg.word));return TRUE; } - -#if !defined(RT2860 ) && !defined(RT30xx) -INT Show_Adhoc_MacTable_Proc ( - IN PRTMP_ADAPTER pAd, - IN PCHAR 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; -} -#endif /* RT2870 */
PATCH 28/33 Staging: rtxxxx: remove unused AsicAntenna{Select,Setting}()
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rtxxxx: remove unused AsicAntenna{Select,Setting}()
--- drivers/staging/rt2860/common/mlme.c | 92 ------------------------------ drivers/staging/rt2860/common/rtmp_init.c | 6 - drivers/staging/rt2860/rtmp.h | 8 -- 3 files changed, 2 insertions(+), 104 deletions(-)
drivers/staging/rt2860/common/mlme.c +0 -92
@@ -6175,98 +6175,6 @@ VOID AsicLockChannel( { } -/* -========================================================================== -Description: - -IRQL = PASSIVE_LEVEL -IRQL = DISPATCH_LEVEL - -========================================================================== -*/ -VOID AsicAntennaSelect ( - IN PRTMP_ADAPTER pAd, - IN UCHAR Channel) -{ -#ifdef RT30xx -if (pAd->Mlme.OneSecPeriodicRound %2 ==1 ) - { -// patch for AsicSetRxAnt failed - pAd->RxAnt.EvaluatePeriod =0 ; - -// check every 2 second. If rcv-beacon less than 5 in the past 2 second, then AvgRSSI is no longer a -// valid indication of the distance between this AP and its clients. -if (OPSTATUS_TEST_FLAG (pAd, fOP_STATUS_MEDIA_STATE_CONNECTED)) - { -SHORT realavgrssi1; - -// if no traffic then reset average rssi to trigger evaluation -if (pAd->StaCfg.NumOfAvgRssiSample <5 ) - { - pAd->RxAnt.Pair1LastAvgRssi = (-99 ); - pAd->RxAnt.Pair2LastAvgRssi = (-99 ); -DBGPRINT (RT_DEBUG_TRACE , ("MlmePeriodicExec: no traffic/beacon, reset RSSI\n" )); - } - - pAd->StaCfg.NumOfAvgRssiSample =0 ; - realavgrssi1 = (pAd->RxAnt.Pair1AvgRssi[pAd->RxAnt.Pair1PrimaryRxAnt] >>3 ); - -DBGPRINT (RT_DEBUG_TRACE ,("Ant-realrssi0(%d), Lastrssi0(%d), EvaluateStableCnt=%d\n" , realavgrssi1, pAd->RxAnt.Pair1LastAvgRssi, pAd->RxAnt.EvaluateStableCnt)); - -// if the difference between two rssi is larger or less than 5, then evaluate the other antenna -if ((pAd->RxAnt.EvaluateStableCnt <2 ) || (realavgrssi1 > (pAd->RxAnt.Pair1LastAvgRssi +5 )) || (realavgrssi1 < (pAd->RxAnt.Pair1LastAvgRssi -5 ))) - { - pAd->RxAnt.Pair1LastAvgRssi = realavgrssi1; -AsicEvaluateRxAnt (pAd); - } - } -else - { -// if not connected, always switch antenna to try to connect -UCHAR temp; - - temp = pAd->RxAnt.Pair1PrimaryRxAnt; - pAd->RxAnt.Pair1PrimaryRxAnt = pAd->RxAnt.Pair1SecondaryRxAnt; - pAd->RxAnt.Pair1SecondaryRxAnt = temp; - -DBGPRINT (RT_DEBUG_TRACE , ("MlmePeriodicExec: no connect, switch to another one to try connection\n" )); - -AsicSetRxAnt (pAd, pAd->RxAnt.Pair1PrimaryRxAnt); - } - } -#endif /* RT30xx */ -} - -/* -======================================================================== - -Routine Description: -Antenna miscellaneous setting. - -Arguments: -pAd Pointer to our adapter -BandState Indicate current Band State. - -Return Value: -None - -IRQL <= DISPATCH_LEVEL - -Note: -1.) Frame End type control -only valid for G only (RF_2527 & RF_2529) -0: means DPDT, set BBP R4 bit 5 to 1 -1: means SPDT, set BBP R4 bit 5 to 0 - - -======================================================================== -*/ -VOID AsicAntennaSetting ( - IN PRTMP_ADAPTER pAd, - IN ABGBAND_STATE BandState) -{ -} - VOID AsicRfTuningExec( IN PVOID SystemSpecific1, IN PVOID FunctionContext,
drivers/staging/rt2860/common/rtmp_init.c +2 -4
@@ -1940,10 +1940,8 @@ VOID NICInitAsicFromEEPROM( pAd->bAutoTxAgcA = pAd->bAutoTxAgcG = TRUE; else pAd->bAutoTxAgcA = pAd->bAutoTxAgcG = FALSE; -// -// Since BBP has been progamed, to make sure BBP setting will be -// upate inside of AsicAntennaSelect, so reset to UNKNOWN_BAND!! -// + +/* BBP has been programmed so reset to UNKNOWN_BAND */ pAd->CommonCfg.BandState =UNKNOWN_BAND ;RTMP_BBP_IO_READ8_BY_REG_ID (pAd,BBP_R3 , &BBPR3 );
drivers/staging/rt2860/rtmp.h +0 -8
@@ -3720,14 +3720,6 @@ VOID AsicLockChannel( IN PRTMP_ADAPTER pAd, IN UCHAR Channel) ; -VOID AsicAntennaSelect ( - IN PRTMP_ADAPTER pAd, - IN UCHAR Channel); - -VOID AsicAntennaSetting ( - IN PRTMP_ADAPTER pAd, - IN ABGBAND_STATE BandState); - VOID AsicRfTuningExec( IN PVOID SystemSpecific1, IN PVOID FunctionContext,
PATCH 29/33 Staging: rt2870: add eFuse support
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt2870: add eFuse support
rt3070:
* remove unused bEEPROMFile field from RTMP_ADAPTER
rt2870:
* propagate eFuse support from rt3070
--- drivers/staging/rt2860/common/eeprom.c | 7 ++----- drivers/staging/rt2860/common/rtmp_init.c | 10 +++------- drivers/staging/rt2860/rtmp.h | 7 ++----- drivers/staging/rt2860/sta_ioctl.c | 6 ++---- drivers/staging/rt2870/common/rtusb_io.c | 8 -------- drivers/staging/rt2870/rt2870.h | 16 ---------------- 6 files changed, 9 insertions(+), 45 deletions(-)
drivers/staging/rt2860/common/eeprom.c +2 -5
@@ -291,8 +291,7 @@ VOID RTMP_EEPROM_WRITE16(#endif } -//2008/09/11:KH add to support efuse<-- -#ifdef RT30xx +#ifdef RT2870 /* ========================================================================
@@ -1485,6 +1484,4 @@ NTSTATUS eFuseWriteRegistersFromBin( return TRUE; } - -#endif // RT30xx // -//2008/09/11:KH add to support efuse--> +#endif
drivers/staging/rt2860/common/rtmp_init.c +3 -7
@@ -2213,10 +2213,8 @@ NDIS_STATUS NICInitializeAsic(UINT32 MacCsr0 =0 ;NTSTATUS Status;UCHAR Value =0xff ; -#endif // RT2870 // -#ifdef RT30xxUINT32 eFuseCtrl; -#endif // RT30xx // +#endif USHORT KeyIdx;INT i,apidx;
@@ -2528,8 +2526,7 @@ NDIS_STATUS NICInitializeAsic( Counter&=0xffffff00 ; Counter|=0x000001e ;RTMP_IO_WRITE32 (pAd,USB_CYC_CFG , Counter); -#endif // RT2870 // -#ifdef RT30xx + pAd->bUseEfuse=FALSE;RTMP_IO_READ32 (pAd,EFUSE_CTRL , &eFuseCtrl); pAd->bUseEfuse = ( (eFuseCtrl &0x80000000 ) ==0x80000000 ) ?1 :0 ;
@@ -2540,9 +2537,8 @@ NDIS_STATUS NICInitializeAsic( else {DBGPRINT (RT_DEBUG_TRACE , ("NVM is EEPROM\n" )); - } -#endif // RT30xx // +#endif {// for rt2860E and after, init TXOP_CTRL_CFG with 0x583f. This is for extension channel overlapping IOT.
drivers/staging/rt2860/rtmp.h +2 -5
@@ -2939,12 +2939,9 @@ typedef struct _RTMP_ADAPTERUINT8 PM_FlgSuspend; -#ifdef RT30xx -//======efuse +#ifdef RT2870 BOOLEAN bUseEfuse; -BOOLEAN bEEPROMFile; -#endif // RT30xx // - +#endif }RTMP_ADAPTER , *PRTMP_ADAPTER ;//
drivers/staging/rt2860/sta_ioctl.c +2 -4
@@ -239,13 +239,11 @@ static struct { {"ForceGF", Set_ForceGF_Proc}, {"LongRetry", Set_LongRetryLimit_Proc}, {"ShortRetry", Set_ShortRetryLimit_Proc}, -//2008/09/11:KH add to support efuse<-- -#ifdef RT30xx +#ifdef RT2870 {"efuseFreeNumber", set_eFuseGetFreeBlockCount_Proc}, {"efuseDump", set_eFusedump_Proc}, {"efuseLoadFromBin", set_eFuseLoadFromBin_Proc}, -#endif // RT30xx // -//2008/09/11:KH add to support efuse--> +#endif {NULL,} };
drivers/staging/rt2870/common/rtusb_io.c +0 -8
@@ -803,13 +803,9 @@ NTSTATUS RTUSBReadEEPROM( {NTSTATUS Status =STATUS_SUCCESS ; -#ifdef RT30xxif (pAd->bUseEfuse) - { Status =eFuseRead (pAd, Offset, pData, length); - }else -#endif // RT30xx // { Status = RTUSB_VendorRequest( pAd,
@@ -848,13 +844,9 @@ NTSTATUS RTUSBWriteEEPROM( {NTSTATUS Status =STATUS_SUCCESS ; -#ifdef RT30xxif (pAd->bUseEfuse) - { Status =eFuseWrite (pAd, Offset, pData, length); - }else -#endif // RT30xx // { Status = RTUSB_VendorRequest( pAd,
drivers/staging/rt2870/rt2870.h +0 -16
@@ -135,7 +135,6 @@ typedef struct _MGMT_STRUC {/* ----------------- EEPROM Related MACRO ----------------- */ -#ifdef RT30xx#define RT28xx_EEPROM_READ16 (pAd, offset, var) \ do { \ RTUSBReadEEPROM(pAd, offset, (PUCHAR)&(var), 2); \
@@ -150,21 +149,6 @@ typedef struct _MGMT_STRUC { _tmpVar =cpu2le16 (var); \RTUSBWriteEEPROM (pAd, offset, (PUCHAR )&(_tmpVar),2 ); \ }while (0 ) -#endif // RT30xx // -#ifndef RT30xx -#define RT28xx_EEPROM_READ16 (pAd, offset, var) \ - do { \ - RTUSBReadEEPROM(pAd, offset, (PUCHAR)&(var), 2); \ - var = le2cpu16(var); \ - }while(0) - -#define RT28xx_EEPROM_WRITE16 (pAd, offset, var) \ - do{ \ - USHORT _tmpVar; \ - _tmpVar = cpu2le16(var); \ - RTUSBWriteEEPROM(pAd, offset, (PUCHAR)&(_tmpVar), 2); \ - }while(0) -#endif // RT30xx // /* ----------------- TASK/THREAD Related MACRO ----------------- */ #define RT28XX_TASK_THREAD_INIT(pAd, Status) \
PATCH 30/33 Staging: rt2870: add Antenna Diversity support
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt2870: add Antenna Diversity support
rt3070:
* remove non-working AntDiversity config parameter
* remove unused bRxAntDiversity field from COMMON_CONFIG
rt2870:
* propagate Antenna Diversity support from rt3070
--- drivers/staging/rt2860/common/eeprom.c | 16 ++++------------ drivers/staging/rt2860/common/mlme.c | 10 +++++----- drivers/staging/rt2860/common/rtmp_init.c | 2 +- drivers/staging/rt2860/rt_profile.c | 17 ----------------- drivers/staging/rt2860/rtmp.h | 7 ++----- drivers/staging/rt2860/sta/rtmp_data.c | 9 +++------ 6 files changed, 15 insertions(+), 46 deletions(-)
drivers/staging/rt2860/common/eeprom.c +4 -12
@@ -181,14 +181,11 @@ USHORT RTMP_EEPROM_READ16(UINT32 x;USHORT data; -#ifdef RT30xx +#ifdef RT2870 if (pAd->NicConfig2.field.AntDiversity) { pAd->EepromAccess = TRUE; } -//2008/09/11:KH add to support efuse<-- -//2008/09/11:KH add to support efuse--> -{#endif Offset /=2 ;// reset bits and set EECS
@@ -214,7 +211,7 @@ USHORT RTMP_EEPROM_READ16(EEpromCleanup (pAd); -#ifdef RT30xx +#ifdef RT2870 // Antenna and EEPROM access are both using EESK pin, // Therefor we should avoid accessing EESK at the same time // Then restore antenna after EEPROM access
@@ -223,7 +220,6 @@ USHORT RTMP_EEPROM_READ16( pAd->EepromAccess = FALSE; AsicSetRxAnt(pAd, pAd->RxAnt.Pair1PrimaryRxAnt); } -}#endif return data; }//ReadEEprom
@@ -235,14 +231,11 @@ VOID RTMP_EEPROM_WRITE16( {UINT32 x; -#ifdef RT30xx +#ifdef RT2870 if (pAd->NicConfig2.field.AntDiversity) { pAd->EepromAccess = TRUE; } -//2008/09/11:KH add to support efuse<-- -//2008/09/11:KH add to support efuse--> - {#endif Offset /=2 ;
@@ -278,7 +271,7 @@ VOID RTMP_EEPROM_WRITE16(EEpromCleanup (pAd); -#ifdef RT30xx +#ifdef RT2870 // Antenna and EEPROM access are both using EESK pin, // Therefor we should avoid accessing EESK at the same time // Then restore antenna after EEPROM access
@@ -287,7 +280,6 @@ VOID RTMP_EEPROM_WRITE16( pAd->EepromAccess = FALSE; AsicSetRxAnt(pAd, pAd->RxAnt.Pair1PrimaryRxAnt); } -}#endif }
drivers/staging/rt2860/common/mlme.c +5 -5
@@ -8004,7 +8004,7 @@ CHAR RTMPMaxRssi(return larger; } -#ifdef RT30xx +#ifdef RT2870 // Antenna divesity use GPIO3 and EESK pin for control // Antenna and EEPROM access are both using EESK pin, // Therefor we should avoid accessing EESK at the same time
@@ -8052,7 +8052,7 @@ VOID AsicSetRxAnt( DBGPRINT_RAW(RT_DEBUG_TRACE, ("AsicSetRxAnt, switch to aux antenna\n")); } } -#endif /* RT30xx */ +#endif /* ========================================================================
@@ -8078,7 +8078,7 @@ VOID AsicEvaluateRxAnt( fRTMP_ADAPTER_NIC_NOT_EXIST | fRTMP_ADAPTER_BSS_SCAN_IN_PROGRESS) || OPSTATUS_TEST_FLAG(pAd, fOP_STATUS_DOZE) -#ifdef RT30xx +#ifdef RT2870 || (pAd->EepromAccess) #endif )
@@ -8182,9 +8182,9 @@ VOID AsicRxAntEvalTimeout( fRTMP_ADAPTER_RADIO_OFF | fRTMP_ADAPTER_NIC_NOT_EXIST) || OPSTATUS_TEST_FLAG(pAd, fOP_STATUS_DOZE) -#ifdef RT30xx +#ifdef RT2870 || (pAd->EepromAccess) -#endif // RT30xx // +#endif ) return;
drivers/staging/rt2860/common/rtmp_init.c +1 -1
@@ -3415,7 +3415,7 @@ VOID UserCfgInit( } } -#ifdef RT30xx +#ifdef RT2870 pAd->EepromAccess = FALSE;#endif pAd->Antenna.word =0 ;
drivers/staging/rt2860/rt_profile.c +0 -17
@@ -1429,23 +1429,6 @@ NDIS_STATUS RTMPReadParametersHook(DBGPRINT (RT_DEBUG_TRACE , ("TGnWifiTest=%d\n" , pAd->StaCfg.bTGnWifiTest)); } } - -#ifdef RT30xx - { -if (RTMPGetKeyParameter ("AntDiversity" , tmpbuf,10 , buffer)) - { -for (i =0 , macptr =rstrtok (tmpbuf,";" ); macptr; macptr =rstrtok (NULL ,";" ), i++) - { -if (simple_strtol (macptr,0 ,10 ) !=0 )//Enable - pAd->CommonCfg.bRxAntDiversity = TRUE; -else //Disable - pAd->CommonCfg.bRxAntDiversity = FALSE; - -DBGPRINT (RT_DEBUG_ERROR , ("AntDiversity=%d\n" , pAd->CommonCfg.bRxAntDiversity)); - } - } - } -#endif // RT30xx // } }else
drivers/staging/rt2860/rtmp.h +2 -5
@@ -1295,7 +1295,7 @@ typedef struct _BBP_TUNING_STRUCT { typedef struct _SOFT_RX_ANT_DIVERSITY_STRUCT { UCHAR EvaluatePeriod; // 0:not evalute status, 1: evaluate status, 2: switching status -#ifdef RT30xx +#ifdef RT2870 UCHAR EvaluateStableCnt; #endif UCHAR Pair1PrimaryRxAnt; // 0:Ant-E1, 1:Ant-E2
@@ -1899,9 +1899,6 @@ typedef struct _COMMON_CONFIG {BOOLEAN NdisRadioStateOff;//For HCT 12.0, set this flag to TRUE instead of called MlmeRadioOff. ABGBAND_STATE BandState;// For setting BBP used on B/G or A mode. -#ifdef RT30xx -BOOLEAN bRxAntDiversity;// 0:disable, 1:enable Software Rx Antenna Diversity. -#endif // IEEE802.11H--DFS. RADAR_DETECT_STRUCT RadarDetect;
@@ -2667,7 +2664,7 @@ typedef struct _RTMP_ADAPTERULONG EepromVersion;// byte 0: version, byte 1: revision, byte 2~3: unused UCHAR EEPROMAddressNum;// 93c46=6 93c66=8 USHORT EEPROMDefaultValue[NUM_EEPROM_BBP_PARMS ]; -#ifdef RT30xx +#ifdef RT2870 BOOLEAN EepromAccess;#endif ULONG FirmwareVersion;// byte 0: Minor version, byte 1: Major version, otherwise unused.
drivers/staging/rt2860/sta/rtmp_data.c +3 -6
@@ -575,10 +575,7 @@ VOID STAHandleRxMgmtFrame( {// We should collect RSSI not only U2M data but also my beacon - if ( -#ifdef RT30xx - pAd->RxAnt.EvaluatePeriod == 0 && -#endif +if (pAd->RxAnt.EvaluatePeriod ==0 && pHeader->FC.SubType ==SUBTYPE_BEACON &&MAC_ADDR_EQUAL (&pAd->CommonCfg.Bssid, &pHeader->Addr2)) {Update_Rssi_Sample (pAd, &pAd->StaCfg.RssiSample, pRxWI);
@@ -587,7 +584,7 @@ VOID STAHandleRxMgmtFrame( pAd->StaCfg.LastSNR1 = (UCHAR )(pRxWI->SNR1); } -#ifdef RT30xx +#ifdef RT2870 // collect rssi information for antenna diversity if (pAd->NicConfig2.field.AntDiversity) {
@@ -597,7 +594,7 @@ VOID STAHandleRxMgmtFrame( pAd->StaCfg.NumOfAvgRssiSample ++; } } -#endif // RT30xx // +#endif // First check the size, it MUST not exceed the mlme queue size if (pRxWI->MPDUtotalByteCount >MGMT_DMA_BUFFER_SIZE )
PATCH 31/33 Staging: rtxx70: merge rt3070 with rt2870
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rtxx70: merge rt3070 with rt2870
* remove RT30xx ifdefs
* add -DRT3070 to rt2870's EXTRA_CFLAGS
* because of changes in the way that hardware is initialized/accessed rt3070 driver's firmware should be now also used by rt2870 driver (this is also done by newer out-of-tree vendor driver versions, i.e. 2.1.0.0, historically in-kernel driver was based on 1.4.0.0 version)
* change RT28xx_CHIP_NAME to RTxx70
* update rt2870's help entry text
* add MODULE_ALIAS("rt3070sta") to rt2870
* update rt3070's dependencies
--- drivers/staging/rt2860/common/cmm_info.c | 11 --- drivers/staging/rt2860/common/mlme.c | 30 ++------- drivers/staging/rt2860/common/rtmp_init.c | 81 +++++--------------------- drivers/staging/rt2860/rt_main_dev.c | 2 drivers/staging/rt2860/rtmp.h | 4 - drivers/staging/rt2870/2870_main_dev.c | 23 ------- drivers/staging/rt2870/Kconfig | 5 - drivers/staging/rt2870/Makefile | 2 drivers/staging/rt2870/common/cmm_data_2870.c | 30 --------- drivers/staging/rt2870/common/rtusb_io.c | 2 drivers/staging/rt2870/rt2870.h | 9 -- drivers/staging/rt3070/Kconfig | 2 12 files changed, 33 insertions(+), 168 deletions(-)
drivers/staging/rt2860/common/cmm_info.c +0 -11
@@ -1419,17 +1419,6 @@ VOID RTMPSetHT( pAd->CommonCfg.DesiredHtPhy.RxSTBC =0 ; } -#ifndef RT30xx -#ifdef RT2870 -/* Frank recommend ,If not, Tx maybe block in high power. Rx has no problem*/ -if (IS_RT3070 (pAd) && ((pAd->RfIcType ==RFIC_3020 ) || (pAd->RfIcType ==RFIC_2020 ))) - { - pAd->CommonCfg.HtCapability.HtCapInfo.TxSTBC =0 ; - pAd->CommonCfg.DesiredHtPhy.TxSTBC =0 ; - } -#endif // RT2870 // -#endif -if (pHTPhyMode->SHORTGI ==GI_400 ) { pAd->CommonCfg.HtCapability.HtCapInfo.ShortGIfor20 =1 ;
drivers/staging/rt2860/common/mlme.c +7 -23
@@ -5565,8 +5565,7 @@ VOID AsicUpdateProtect( } } -#ifdef RT30xx -// add by johnli, RF power sequence setup +#ifdef RT2870 /* ========================================================================== Description:
@@ -5721,8 +5720,7 @@ VOID RT30xxReverseRFSleepModeSetup( RTMP_IO_WRITE32(pAd, LDO_CFG0, MACValue); } } -// end johnli -#endif // RT30xx // +#endif /* ==========================================================================
@@ -5764,9 +5762,7 @@ VOID AsicSwitchChannel(#ifdef RT2870 // The RF programming sequence is difference between 3xxx and 2xxx if ((IS_RT3070 (pAd) ||IS_RT3090 (pAd)) && ( -#ifdef RT30xx (pAd->RfIcType ==RFIC_3022 ) || (pAd->RfIcType ==RFIC_3021 ) || -#endif (pAd->RfIcType ==RFIC_3020 ) || (pAd->RfIcType ==RFIC_2020 ))) {/* modify by WY for Read RF Reg. error */
@@ -5789,7 +5785,6 @@ VOID AsicSwitchChannel( RFValue = (RFValue &0xE0 ) | TxPwer;RT30xxWriteRFRegister (pAd,RF_R12 , RFValue); -#ifdef RT30xx// Set Tx1 Power RT30xxReadRFRegister (pAd,RF_R13 , &RFValue); RFValue = (RFValue &0xE0 ) | TxPwer2;
@@ -5809,7 +5804,6 @@ VOID AsicSwitchChannel(else if (pAd->Antenna.field.RxPath ==2 ) RFValue |=0x40 ;RT30xxWriteRFRegister (pAd,RF_R01 , RFValue); -#endif // Set RF offset RT30xxReadRFRegister (pAd,RF_R23 , &RFValue);
@@ -5827,9 +5821,8 @@ VOID AsicSwitchChannel( RFValue = pAd->Mlme.CaliBW20RfR24; }RT30xxWriteRFRegister (pAd,RF_R24 , RFValue); -#ifdef RT30xxRT30xxWriteRFRegister (pAd,RF_R31 , RFValue); -#endif +// Enable RF tuning RT30xxReadRFRegister (pAd,RF_R07 , &RFValue); RFValue = RFValue |0x1 ;
@@ -5838,7 +5831,6 @@ VOID AsicSwitchChannel(// latch channel for future usage. pAd->LatchRfRegs.Channel = Channel; -#ifdef RT30xx DBGPRINT(RT_DEBUG_TRACE, ("SwitchChannel#%d(RF=%d, Pwr0=%d, Pwr1=%d, %dT), N=0x%02X, K=0x%02X, R=0x%02X\n", Channel, pAd->RfIcType,
@@ -5848,8 +5840,6 @@ VOID AsicSwitchChannel( FreqItems3020[index].N, FreqItems3020[index].K, FreqItems3020[index].R)); -#endif -break ; } }
@@ -6828,13 +6818,13 @@ VOID AsicSetEdcaParm( Ac2Cfg.field.AcTxop =5 ; } -#ifdef RT30xx +#ifdef RT2870 if (pAd->RfIcType ==RFIC_3020 || pAd->RfIcType ==RFIC_2020 ) {// Tuning for WiFi WMM S3-T07: connexant legacy sta ==> broadcom 11n sta. Ac2Cfg.field.Aifsn =5 ; } -#endif // RT30xx // +#endif } Ac3Cfg.field.AcTxop = pEdcaParm->Txop[QID_AC_VO ];
@@ -6915,11 +6905,10 @@ VOID AsicSetEdcaParm( } AifsnCsr.field.Aifsn3 = Ac3Cfg.field.Aifsn -1 ;//pEdcaParm->Aifsn[QID_AC_VO]; //for TGn wifi test -#ifdef RT30xx +#ifdef RT2870 if (pAd->RfIcType ==RFIC_3020 || pAd->RfIcType ==RFIC_2020 ) AifsnCsr.field.Aifsn2 =0x2 ;//pEdcaParm->Aifsn[QID_AC_VI]; //for WiFi WMM S4-T04. -#endif // RT30xx // - +#endif RTMP_IO_WRITE32 (pAd,WMM_AIFSN_CFG , AifsnCsr.word);NdisMoveMemory (&pAd->CommonCfg.APEdcaParm, pEdcaParm,sizeof (EDCA_PARM ));
@@ -8493,12 +8482,7 @@ VOID AsicStaBbpTuning(#ifdef RT2870 // RT3070 is a no LNA solution, it should have different control regarding to AGC gain control // Otherwise, it will have some throughput side effect when low RSSI -#ifndef RT30xx - if (IS_RT3070(pAd)) -#endif -#ifdef RT30xxif (IS_RT30xx (pAd)) -#endif {if (Rssi >RSSI_FOR_MID_LOW_SENSIBILITY ) {
drivers/staging/rt2860/common/rtmp_init.c +16 -65
208 lines not on this page · raw message
drivers/staging/rt2860/rt_main_dev.c +1 -1
@@ -522,7 +522,7 @@ static int rt28xx_init(IN struct net_devAsicSwitchChannel (pAd, pAd->CommonCfg.Channel, FALSE);AsicLockChannel (pAd, pAd->CommonCfg.Channel); -#ifndef RT30xx +#ifndef RT2870 // 8051 firmware require the signal during booting time. AsicSendCommandToMcu (pAd,0x72 ,0xFF ,0x00 ,0x00 );#endif
drivers/staging/rt2860/rtmp.h +2 -2
@@ -391,14 +391,14 @@ typedef struct _QUEUE_HEADER { (_idx) = (_idx+1 ) % (_RingSize); \ } -#ifdef RT30xx +#ifdef RT2870 // We will have a cost down version which mac version is 0x3090xxxx #define IS_RT3090 (_pAd) ((((_pAd)->MACVersion & 0xffff0000) == 0x30710000) || (((_pAd)->MACVersion & 0xffff0000) == 0x30900000))#else #define IS_RT3090 (_pAd) 0#endif #define IS_RT3070 (_pAd) (((_pAd)->MACVersion & 0xffff0000) == 0x30700000) -#ifdef RT30xx +#ifdef RT2870 #define IS_RT3071 (_pAd) (((_pAd)->MACVersion & 0xffff0000) == 0x30710000)#define IS_RT30xx (_pAd) (((_pAd)->MACVersion & 0xfff00000) == 0x30700000)#endif
drivers/staging/rt2870/2870_main_dev.c +1 -22
@@ -50,6 +50,7 @@ MODULE_LICENSE("GPL");#ifdef MODULE_VERSION MODULE_VERSION (STA_DRIVER_VERSION );#endif +MODULE_ALIAS ("rt3070sta" );/* Kernel thread and vars, which handles packets that are completed. Only * packets that have a "complete" function are sent here. This way, the
@@ -65,19 +66,15 @@ struct usb_device_id rtusb_usb_id[] = { { USB_DEVICE(0x1737, 0x0070) }, /* Linksys */ { USB_DEVICE(0x148F, 0x2870) }, /* Ralink */ { USB_DEVICE(0x148F, 0x3070) }, /* Ralink 3070 */ -#ifdef RT30xx { USB_DEVICE(0x148F, 0x3071) }, /* Ralink 3071 */ { USB_DEVICE(0x148F, 0x3072) }, /* Ralink 3072 */ -#endif { USB_DEVICE(0x0B05, 0x1731) }, /* Asus */ { USB_DEVICE(0x0B05, 0x1732) }, /* Asus */ { USB_DEVICE(0x0B05, 0x1742) }, /* Asus */ { USB_DEVICE(0x0DF6, 0x0017) }, /* Sitecom */ { USB_DEVICE(0x0DF6, 0x002B) }, /* Sitecom */ { USB_DEVICE(0x0DF6, 0x002C) }, /* Sitecom */ -#ifdef RT30xx { USB_DEVICE(0x0DF6, 0x003E) }, /* Sitecom 3070 */ -#endif { USB_DEVICE(0x0DF6, 0x002D) }, /* Sitecom */ { USB_DEVICE(0x0DF6, 0x0039) }, /* Sitecom 2770 */ { USB_DEVICE(0x0DF6, 0x003F) }, /* Sitecom WL-608 */
@@ -88,10 +85,8 @@ struct usb_device_id rtusb_usb_id[] = { { USB_DEVICE(0x2019, 0xAB25) }, /* Planex Communications, Inc. RT3070 */ { USB_DEVICE(0x07D1, 0x3C09) }, /* D-Link */ { USB_DEVICE(0x07D1, 0x3C11) }, /* D-Link */ -#ifdef RT30xx { USB_DEVICE(0x2001, 0x3C09) }, /* D-Link */ { USB_DEVICE(0x2001, 0x3C0A) }, /* D-Link 3072*/ -#endif { USB_DEVICE(0x14B2, 0x3C07) }, /* AL */ { USB_DEVICE(0x14B2, 0x3C12) }, /* AL 3070 */ { USB_DEVICE(0x050D, 0x8053) }, /* Belkin */
@@ -104,34 +99,24 @@ struct usb_device_id rtusb_usb_id[] = { { USB_DEVICE(0x07AA, 0x003F) }, /* Corega */ { USB_DEVICE(0x18C5, 0x0012) }, /* Corega 3070 */ { USB_DEVICE(0x1044, 0x800B) }, /* Gigabyte */ -#ifdef RT30xx { USB_DEVICE(0x1044, 0x800D) }, /* Gigabyte GN-WB32L 3070 */ -#endif { USB_DEVICE(0x15A9, 0x0006) }, /* Sparklan */ { USB_DEVICE(0x083A, 0xB522) }, /* SMC */ { USB_DEVICE(0x083A, 0xA618) }, /* SMC */ -#ifdef RT30xx { USB_DEVICE(0x083A, 0x8522) }, /* Arcadyan */ { USB_DEVICE(0x083A, 0x7512) }, /* Arcadyan 2770 */ -#endif { USB_DEVICE(0x083A, 0x7522) }, /* Arcadyan */ -#ifdef RT30xx { USB_DEVICE(0x083A, 0x7511) }, /* Arcadyan 3070 */ -#endif { USB_DEVICE(0x0CDE, 0x0022) }, /* ZCOM */ { USB_DEVICE(0x0586, 0x3416) }, /* Zyxel */ { USB_DEVICE(0x0CDE, 0x0025) }, /* Zyxel */ { USB_DEVICE(0x1740, 0x9701) }, /* EnGenius */ { USB_DEVICE(0x1740, 0x9702) }, /* EnGenius */ -#ifdef RT30xx { USB_DEVICE(0x1740, 0x9703) }, /* EnGenius 3070 */ -#endif { USB_DEVICE(0x0471, 0x200f) }, /* Philips */ { USB_DEVICE(0x14B2, 0x3C25) }, /* Draytek */ { USB_DEVICE(0x13D3, 0x3247) }, /* AzureWave */ -#ifdef RT30xx { USB_DEVICE(0x13D3, 0x3273) }, /* AzureWave 3070*/ -#endif { USB_DEVICE(0x083A, 0x6618) }, /* Accton */ { USB_DEVICE(0x15c5, 0x0008) }, /* Amit */ { USB_DEVICE(0x0E66, 0x0001) }, /* Hawking */
@@ -146,23 +131,17 @@ struct usb_device_id rtusb_usb_id[] = { { USB_DEVICE(0x07B8, 0x3071) }, /* AboCom 3071 */ { USB_DEVICE(0x07B8, 0x2870) }, /* AboCom */ { USB_DEVICE(0x07B8, 0x2770) }, /* AboCom */ -#ifdef RT30xx { USB_DEVICE(0x07B8, 0x3072) }, /* Abocom 3072 */ -#endif { USB_DEVICE(0x7392, 0x7711) }, /* Edimax 3070 */ { USB_DEVICE(0x5A57, 0x0280) }, /* Zinwell */ { USB_DEVICE(0x5A57, 0x0282) }, /* Zinwell */ -#ifdef RT30xx { USB_DEVICE(0x1A32, 0x0304) }, /* Quanta 3070 */ -#endif { USB_DEVICE(0x0789, 0x0162) }, /* Logitec 2870 */ { USB_DEVICE(0x0789, 0x0163) }, /* Logitec 2870 */ { USB_DEVICE(0x0789, 0x0164) }, /* Logitec 2870 */ { USB_DEVICE(0x7392, 0x7717) }, /* Edimax */ -#ifdef RT30xx { USB_DEVICE(0x1EDA, 0x2310) }, /* AirTies 3070 */ { USB_DEVICE(0x1737, 0x0077) }, /* Linksys WUSB54GC-EU v3 */ -#endif { } /* Terminating entry */ };
drivers/staging/rt2870/Kconfig +2 -3
@@ -1,6 +1,5 @@ config RT2870 - tristate "Ralink 2870 wireless support" + tristate "Ralink 2870/3070 wireless support" depends on USB && X86 && WLAN_80211 ---help--- - This is an experimental driver for the Ralink 2870 wireless chip. - + This is an experimental driver for the Ralink xx70 wireless chips.
drivers/staging/rt2870/Makefile +1 -1
@@ -2,7 +2,7 @@ obj-$(CONFIG_RT2870) += rt2870sta.o # TODO: all of these should be removed EXTRA_CFLAGS += -DLINUX -DAGGREGATION_SUPPORT -DPIGGYBACK_SUPPORT -DWMM_SUPPORT -EXTRA_CFLAGS += -DRT2870 +EXTRA_CFLAGS += -DRT2870 -DRT3070 EXTRA_CFLAGS += -DDBG rt2870sta-objs := \
drivers/staging/rt2870/common/cmm_data_2870.c +0 -30
@@ -810,12 +810,7 @@ VOID RT28xxUsbStaAsicForceWakeup( AutoWakeupCfg.word =0 ;RTMP_IO_WRITE32 (pAd,AUTO_WAKEUP_CFG , AutoWakeupCfg.word); -#ifndef RT30xx -AsicSendCommandToMcu (pAd,0x31 ,0xff ,0x00 ,0x00 ); -#endif -#ifdef RT30xxAsicSendCommandToMcu (pAd,0x31 ,0xff ,0x00 ,0x02 ); -#endif OPSTATUS_CLEAR_FLAG (pAd, fOP_STATUS_DOZE); }
@@ -852,12 +847,7 @@ VOID RT28xxUsbMlmeRadioOn(if (!RTMP_TEST_FLAG (pAd, fRTMP_ADAPTER_RADIO_OFF))return ; -#ifndef RT30xx -AsicSendCommandToMcu (pAd,0x31 ,0xff ,0x00 ,0x00 ); -#endif -#ifdef RT30xxAsicSendCommandToMcu (pAd,0x31 ,0xff ,0x00 ,0x02 ); -#endif RTMPusecDelay (10000 );NICResetFromError (pAd);
@@ -908,22 +898,6 @@ VOID RT28xxUsbMlmeRadioOFF(BssTableInit (&pAd->ScanTab); } -#ifndef RT30xx -// Disable MAC Tx/Rx -RTMP_IO_READ32 (pAd,MAC_SYS_CTRL , &Value); - Value &= (0xfffffff3 ); -RTMP_IO_WRITE32 (pAd,MAC_SYS_CTRL , Value); - -// MAC_SYS_CTRL => value = 0x0 => 40mA -RTMP_IO_WRITE32 (pAd,MAC_SYS_CTRL ,0 ); - -// PWR_PIN_CFG => value = 0x0 => 40mA -RTMP_IO_WRITE32 (pAd,PWR_PIN_CFG ,0 ); - -// TX_PIN_CFG => value = 0x0 => 20mA -RTMP_IO_WRITE32 (pAd,TX_PIN_CFG ,0 ); -#endif -if (pAd->CommonCfg.BBPCurrentBW ==BW_40 ) {// Must using 40MHz.
@@ -935,13 +909,11 @@ VOID RT28xxUsbMlmeRadioOFF(AsicTurnOffRFClk (pAd, pAd->CommonCfg.Channel); } -#ifdef RT30xx// Disable Tx/Rx DMA RTUSBReadMACRegister (pAd,WPDMA_GLO_CFG , &GloCfg.word);// disable DMA GloCfg.field.EnableTxDMA =0 ; GloCfg.field.EnableRxDMA =0 ;RTUSBWriteMACRegister (pAd,WPDMA_GLO_CFG , GloCfg.word);// abort all TX rings -#endif // Waiting for DMA idle i =0 ;
@@ -954,12 +926,10 @@ VOID RT28xxUsbMlmeRadioOFF(RTMPusecDelay (1000 ); }while (i++ <100 ); -#ifdef RT30xx// Disable MAC Tx/Rx RTMP_IO_READ32 (pAd,MAC_SYS_CTRL , &Value); Value &= (0xfffffff3 );RTMP_IO_WRITE32 (pAd,MAC_SYS_CTRL , Value); -#endif AsicSendCommandToMcu (pAd,0x30 ,0xff ,0xff ,0x02 ); }
drivers/staging/rt2870/common/rtusb_io.c +0 -2
@@ -110,11 +110,9 @@ NTSTATUS RTUSBFirmwareWrite( Status =RTUSBWriteMACRegister (pAd,0x701c ,0xffffffff ); Status =RTUSBFirmwareRun (pAd); -#ifdef RT30xxRTMPusecDelay (10000 );RTUSBWriteMACRegister (pAd,H2M_MAILBOX_CSR ,0 );AsicSendCommandToMcu (pAd,0x72 ,0x00 ,0x00 ,0x00 );//reset rf by MCU supported by new firmware -#endif return Status; }
drivers/staging/rt2870/rt2870.h +2 -7
@@ -349,11 +349,8 @@ extern UCHAR EpToQueue[6]; {RTUSB_SET_BULK_FLAG (pAd, fRTUSB_BULK_OUT_PSPOLL); \RTUSBKickBulkOut (pAd); } -#ifdef RT30xx -#define RT28xx_CHIP_NAME "RT3070" -#else -#define RT28xx_CHIP_NAME "RT2870" -#endif +#define RT28xx_CHIP_NAME "RTxx70" +#define USB_CYC_CFG 0x02a4#define STATUS_SUCCESS 0x00#define STATUS_UNSUCCESSFUL 0x01
@@ -462,9 +459,7 @@ typedef struct _RT_SET_ASIC_WCID {ULONG WCID ;// mechanism for rekeying: 0:disable, 1: time-based, 2: packet-based ULONG SetTid;// time-based: seconds, packet-based: kilo-packets ULONG DeleteTid;// time-based: seconds, packet-based: kilo-packets -#ifndef RT30xxUCHAR Addr[MAC_ADDR_LEN ];// avoid in interrupt when write key -#endif }RT_SET_ASIC_WCID ,*PRT_SET_ASIC_WCID ; typedef struct _RT_SET_ASIC_WCID_ATTRI {
drivers/staging/rt3070/Kconfig +1 -1
@@ -1,6 +1,6 @@ config RT3070 tristate "Ralink 3070 wireless support" - depends on USB && X86 && WLAN_80211 + depends on USB && X86 && WLAN_80211 && !RT2870 ---help--- This is an experimental driver for the Ralink 3070 wireless chip.
PATCH 32/33 Staging: rt2870: remove old firmware
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: rt2870: remove old firmware
--- drivers/staging/rt2870/common/firmware.h | 558 ------------------------------- 1 file changed, 558 deletions(-)
drivers/staging/rt2870/common/firmware.h deleted +0 -558
@@ -1,558 +0,0 @@ -/* -Copyright (c) 2007, Ralink Technology Corporation -All rights reserved. - -Redistribution. Redistribution and use in binary form, without -modification, are permitted provided that the following conditions are -met: - -* Redistributions must reproduce the above copyright notice and the -following disclaimer in the documentation and/or other materials -provided with the distribution. -* Neither the name of Ralink Technology Corporation nor the names of its -suppliers may be used to endorse or promote products derived from this -software without specific prior written permission. -* No reverse engineering, decompilation, or disassembly of this software -is permitted. - -Limited patent license. Ralink Technology Corporation grants a world-wide, -royalty-free, non-exclusive license under patents it now or hereafter -owns or controls to make, have made, use, import, offer to sell and -sell ("Utilize") this software, but solely to the extent that any -such patent is necessary to Utilize the software alone, or in -combination with an operating system licensed under an approved Open -Source license as listed by the Open Source Initiative at -http://opensource.org/licenses. The patent license shall not apply to -any other combinations which include this software. No hardware per -se is licensed hereunder. - -DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND -CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR -TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE -USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. -*/ -/* AUTO GEN PLEASE DO NOT MODIFY IT */ -/* AUTO GEN PLEASE DO NOT MODIFY IT */ - - -UCHAR FirmwareImage [] = { -0xff ,0xff ,0xff ,0x02 ,0x10 ,0x28 ,0x02 ,0x10 ,0x32 ,0x02 ,0x10 ,0x78 ,0x02 ,0x12 ,0x79 ,0x02 , -0x12 ,0x7a ,0x02 ,0x12 ,0x99 ,0x02 ,0x12 ,0x9e ,0x12 ,0x12 ,0x9a ,0x22 ,0x02 ,0x16 ,0x36 ,0x02 , -0x17 ,0x0c ,0x02 ,0x13 ,0x89 ,0x02 ,0x12 ,0x9f ,0x30 ,0x05 ,0x06 ,0x20 ,0x0d ,0x03 ,0x12 ,0x17 , -0xae ,0x22 ,0x90 ,0x01 ,0x8c ,0xe0 ,0x30 ,0xe3 ,0x1b ,0xe5 ,0x4c ,0x30 ,0xe0 ,0x04 ,0x7f ,0x40 , -0x80 ,0x02 ,0x7f ,0x00 ,0x90 ,0x10 ,0x2f ,0xef ,0xf0 ,0x90 ,0x01 ,0x8c ,0x74 ,0x08 ,0xf0 ,0xe4 , -0x90 ,0x01 ,0xa7 ,0xf0 ,0x90 ,0x01 ,0x8c ,0xe0 ,0x30 ,0xe0 ,0x1c ,0x90 ,0x01 ,0x80 ,0xe0 ,0xb4 , -0x02 ,0x15 ,0xa3 ,0xe0 ,0xb4 ,0x01 ,0x10 ,0x90 ,0x01 ,0x84 ,0xe0 ,0xb4 ,0x81 ,0x09 ,0x90 ,0x01 , -0x8c ,0x74 ,0x01 ,0xf0 ,0x12 ,0x0d ,0xc8 ,0x22 ,0x90 ,0x04 ,0x14 ,0xe0 ,0x20 ,0xe7 ,0x03 ,0x02 , -0x12 ,0x6e ,0x90 ,0x70 ,0x12 ,0xe0 ,0xf5 ,0x56 ,0x90 ,0x04 ,0x04 ,0xe0 ,0x12 ,0x0a ,0x9d ,0x10 , -0xb7 ,0x31 ,0x10 ,0xe2 ,0x50 ,0x11 ,0x08 ,0x51 ,0x11 ,0x13 ,0x52 ,0x11 ,0x13 ,0x53 ,0x11 ,0x13 , -0x54 ,0x11 ,0x54 ,0x55 ,0x11 ,0x79 ,0x70 ,0x11 ,0xa4 ,0x71 ,0x11 ,0xd2 ,0x72 ,0x12 ,0x25 ,0x73 , -0x12 ,0x46 ,0x80 ,0x00 ,0x00 ,0x12 ,0x6e ,0x20 ,0x02 ,0x03 ,0x30 ,0x03 ,0x1d ,0x7d ,0x02 ,0xaf , -0x56 ,0x12 ,0x0b ,0x91 ,0x90 ,0x04 ,0x14 ,0x74 ,0x80 ,0xf0 ,0xe4 ,0x90 ,0x70 ,0x13 ,0xf0 ,0xe5 , -0x56 ,0xf4 ,0x70 ,0x03 ,0x02 ,0x12 ,0x6e ,0x02 ,0x12 ,0x67 ,0x85 ,0x56 ,0x41 ,0xd2 ,0x02 ,0x02 , -0x12 ,0x6e ,0x90 ,0x70 ,0x10 ,0xe0 ,0x54 ,0x7f ,0x64 ,0x02 ,0x60 ,0x03 ,0x02 ,0x12 ,0x6e ,0x90 , -0x70 ,0x11 ,0xe0 ,0x64 ,0x08 ,0x60 ,0x08 ,0xe0 ,0x64 ,0x20 ,0x60 ,0x03 ,0x02 ,0x12 ,0x6e ,0x75 , -0x4e ,0x03 ,0x75 ,0x4f ,0x20 ,0x02 ,0x12 ,0x6e ,0x90 ,0x70 ,0x11 ,0xe0 ,0x24 ,0xff ,0x92 ,0x47 , -0x02 ,0x12 ,0x6e ,0x90 ,0x04 ,0x04 ,0xe0 ,0x25 ,0xe0 ,0x24 ,0x5d ,0xf5 ,0x57 ,0x90 ,0x70 ,0x10 , -0xe0 ,0xff ,0x74 ,0x47 ,0x25 ,0x57 ,0xf8 ,0xc6 ,0xef ,0xc6 ,0x90 ,0x70 ,0x11 ,0xe0 ,0xff ,0x74 , -0x48 ,0x25 ,0x57 ,0xf8 ,0xc6 ,0xef ,0xc6 ,0xe4 ,0xfd ,0xaf ,0x56 ,0x12 ,0x0b ,0x91 ,0x90 ,0x04 , -0x14 ,0x74 ,0x80 ,0xf0 ,0xe4 ,0x90 ,0x70 ,0x13 ,0xf0 ,0xe5 ,0x56 ,0xf4 ,0x70 ,0x03 ,0x02 ,0x12 , -0x6e ,0x02 ,0x12 ,0x67 ,0xe5 ,0x47 ,0x64 ,0x07 ,0x60 ,0x0b ,0xe5 ,0x47 ,0x64 ,0x08 ,0x60 ,0x05 , -0xe5 ,0x47 ,0xb4 ,0x09 ,0x08 ,0x90 ,0x70 ,0x11 ,0xe0 ,0x54 ,0x0f ,0xf5 ,0x3a ,0xe4 ,0xfd ,0xaf , -0x56 ,0x12 ,0x0b ,0x91 ,0xd2 ,0x04 ,0x02 ,0x12 ,0x6e ,0x90 ,0x70 ,0x10 ,0xe0 ,0xfe ,0x90 ,0x70 , -0x11 ,0xe0 ,0xfd ,0xed ,0xf8 ,0xe6 ,0xf5 ,0x57 ,0xfd ,0xaf ,0x56 ,0x12 ,0x0b ,0x91 ,0x90 ,0x04 , -0x14 ,0x74 ,0x80 ,0xf0 ,0xe4 ,0x90 ,0x70 ,0x13 ,0xf0 ,0xe5 ,0x56 ,0xf4 ,0x70 ,0x03 ,0x02 ,0x12 , -0x6e ,0x02 ,0x12 ,0x67 ,0x90 ,0x70 ,0x10 ,0xe0 ,0xfe ,0x90 ,0x70 ,0x11 ,0xe0 ,0xfd ,0xed ,0xf5 , -0x82 ,0x8e ,0x83 ,0xe0 ,0xf5 ,0x57 ,0xfd ,0xaf ,0x56 ,0x12 ,0x0b ,0x91 ,0x90 ,0x04 ,0x14 ,0x74 , -0x80 ,0xf0 ,0xe4 ,0x90 ,0x70 ,0x13 ,0xf0 ,0xe5 ,0x56 ,0xf4 ,0x70 ,0x03 ,0x02 ,0x12 ,0x6e ,0x02 , -0x12 ,0x67 ,0x90 ,0x10 ,0x02 ,0xe0 ,0xb4 ,0x70 ,0x1e ,0xa3 ,0xe0 ,0xb4 ,0x30 ,0x19 ,0x90 ,0x05 , -0x08 ,0xe0 ,0x44 ,0x01 ,0xf0 ,0xfd ,0x90 ,0x05 ,0x05 ,0xe0 ,0x54 ,0xfb ,0xf0 ,0x44 ,0x04 ,0xf0 , -0xed ,0x54 ,0xfe ,0x90 ,0x05 ,0x08 ,0xf0 ,0xe4 ,0xf5 ,0x4e ,0xf5 ,0x4f ,0x75 ,0x3a ,0xff ,0xad , -0x57 ,0xaf ,0x56 ,0x12 ,0x0b ,0x91 ,0x90 ,0x04 ,0x14 ,0x74 ,0x80 ,0xf0 ,0xe4 ,0x90 ,0x70 ,0x13 , -0xf0 ,0xe5 ,0x56 ,0xf4 ,0x60 ,0x07 ,0x90 ,0x70 ,0x25 ,0xe0 ,0x44 ,0x01 ,0xf0 ,0x90 ,0x70 ,0x40 , -0xe5 ,0x3a ,0xf0 ,0x80 ,0x49 ,0x90 ,0x70 ,0x10 ,0xe0 ,0x24 ,0xff ,0x92 ,0x93 ,0xe4 ,0xfd ,0xaf , -0x56 ,0x12 ,0x0b ,0x91 ,0x90 ,0x04 ,0x14 ,0x74 ,0x80 ,0xf0 ,0xe4 ,0x90 ,0x70 ,0x13 ,0xf0 ,0xe5 , -0x56 ,0xf4 ,0x60 ,0x2a ,0x80 ,0x21 ,0x90 ,0x70 ,0x10 ,0xe0 ,0x24 ,0xff ,0x92 ,0x4a ,0xd2 ,0x05 , -0xad ,0x57 ,0xaf ,0x56 ,0x12 ,0x0b ,0x91 ,0x90 ,0x04 ,0x14 ,0x74 ,0x80 ,0xf0 ,0xe4 ,0x90 ,0x70 , -0x13 ,0xf0 ,0xe5 ,0x56 ,0xf4 ,0x60 ,0x07 ,0x90 ,0x70 ,0x25 ,0xe0 ,0x44 ,0x01 ,0xf0 ,0x90 ,0x70 , -0x42 ,0xe5 ,0x3a ,0xf0 ,0xa3 ,0x74 ,0xab ,0xf0 ,0x22 ,0x22 ,0xe5 ,0x53 ,0x70 ,0x1a ,0x30 ,0x60 , -0x09 ,0xb2 ,0x4d ,0x30 ,0x4d ,0x04 ,0x05 ,0x46 ,0xc2 ,0x04 ,0xe5 ,0x4f ,0x45 ,0x4e ,0x60 ,0x08 , -0xe5 ,0x4f ,0x15 ,0x4f ,0x70 ,0x02 ,0x15 ,0x4e ,0x22 ,0x22 ,0xc2 ,0x42 ,0xd3 ,0x22 ,0x22 ,0xc2 , -0x4b ,0xc2 ,0x4c ,0xe5 ,0x44 ,0x12 ,0x0a ,0x9d ,0x12 ,0xc1 ,0x00 ,0x13 ,0x54 ,0x04 ,0x13 ,0x50 , -0x08 ,0x13 ,0x2b ,0x10 ,0x12 ,0xd5 ,0x20 ,0x12 ,0xf5 ,0x60 ,0x13 ,0x06 ,0xa0 ,0x00 ,0x00 ,0x13 , -0x56 ,0x85 ,0x48 ,0x43 ,0x85 ,0x4a ,0x42 ,0x85 ,0x4c ,0x5e ,0xe5 ,0x47 ,0x64 ,0x06 ,0x60 ,0x03 , -0x02 ,0x13 ,0x56 ,0x80 ,0x1b ,0xe5 ,0x48 ,0xc4 ,0x54 ,0x0f ,0xf5 ,0x43 ,0xe5 ,0x4a ,0xc4 ,0x54 , -0x0f ,0xf5 ,0x42 ,0xe5 ,0x4c ,0xc4 ,0x54 ,0x0f ,0xf5 ,0x5e ,0xe5 ,0x47 ,0x64 ,0x06 ,0x70 ,0x66 , -0x53 ,0x43 ,0x0f ,0x80 ,0x61 ,0x85 ,0x49 ,0x43 ,0x85 ,0x4b ,0x42 ,0x85 ,0x4d ,0x5e ,0xe5 ,0x47 , -0x64 ,0x06 ,0x70 ,0x52 ,0x80 ,0x1b ,0xe5 ,0x49 ,0xc4 ,0x54 ,0x0f ,0xf5 ,0x43 ,0xe5 ,0x4b ,0xc4 , -0x54 ,0x0f ,0xf5 ,0x42 ,0xe5 ,0x4d ,0xc4 ,0x54 ,0x0f ,0xf5 ,0x5e ,0xe5 ,0x47 ,0x64 ,0x06 ,0x70 , -0x35 ,0xe5 ,0x43 ,0x54 ,0x0f ,0x44 ,0x10 ,0xf5 ,0x43 ,0x80 ,0x2b ,0xe5 ,0x47 ,0xb4 ,0x04 ,0x06 , -0x53 ,0x5e ,0xfb ,0x75 ,0x42 ,0x09 ,0xe5 ,0x47 ,0xb4 ,0x05 ,0x06 ,0x43 ,0x5e ,0x04 ,0x75 ,0x42 , -0x09 ,0xe5 ,0x47 ,0xb4 ,0x06 ,0x10 ,0xe5 ,0x43 ,0x54 ,0x0f ,0x44 ,0x30 ,0xf5 ,0x43 ,0x80 ,0x06 , -0xd2 ,0x4b ,0x80 ,0x02 ,0xd2 ,0x4c ,0xe4 ,0xf5 ,0x25 ,0xe5 ,0x42 ,0xc4 ,0x54 ,0xf0 ,0xff ,0xe5 , -0x43 ,0x54 ,0x0f ,0x4f ,0xf5 ,0x5f ,0x90 ,0x70 ,0x44 ,0xf0 ,0xa3 ,0xe5 ,0x5e ,0xf0 ,0xa3 ,0xe5 , -0x4a ,0xf0 ,0xa3 ,0xe5 ,0x48 ,0xf0 ,0xa3 ,0xe5 ,0x4c ,0xf0 ,0xa3 ,0xe5 ,0x44 ,0xf0 ,0xa3 ,0xe5 , -0x42 ,0xf0 ,0xa3 ,0xe5 ,0x43 ,0xf0 ,0xd2 ,0x60 ,0x22 ,0xe5 ,0x47 ,0x60 ,0x10 ,0x24 ,0xc0 ,0x70 , -0x03 ,0x12 ,0x16 ,0x16 ,0x12 ,0x13 ,0x9e ,0xc2 ,0xaf ,0xc2 ,0x04 ,0xd2 ,0xaf ,0x22 ,0xc2 ,0xaf , -0x90 ,0x04 ,0x14 ,0xe0 ,0x54 ,0x0e ,0x60 ,0x04 ,0xd2 ,0x18 ,0x80 ,0x08 ,0xe5 ,0x4e ,0x45 ,0x4f , -0x24 ,0xff ,0x92 ,0x18 ,0xd2 ,0xaf ,0x90 ,0x04 ,0x14 ,0xe0 ,0xa2 ,0xe4 ,0x92 ,0x19 ,0x74 ,0x1e , -0xf0 ,0xe5 ,0x5f ,0x54 ,0x0f ,0xf5 ,0x2d ,0xe5 ,0x25 ,0x70 ,0x13 ,0x30 ,0x18 ,0x05 ,0xe5 ,0x5f , -0x20 ,0xe5 ,0x0b ,0x30 ,0x19 ,0x19 ,0xe5 ,0x5f ,0x54 ,0x30 ,0xff ,0xbf ,0x30 ,0x11 ,0xe5 ,0x25 , -0x70 ,0x05 ,0x75 ,0x25 ,0x0c ,0x80 ,0x02 ,0x15 ,0x25 ,0xd2 ,0x6c ,0xd2 ,0x6d ,0x80 ,0x0f ,0xe5 , -0x5f ,0x30 ,0xe6 ,0x06 ,0xc2 ,0x6c ,0xd2 ,0x6d ,0x80 ,0x04 ,0xd2 ,0x6c ,0xc2 ,0x6d ,0xe5 ,0x47 , -0x64 ,0x03 ,0x70 ,0x21 ,0x30 ,0x4b ,0x06 ,0xc2 ,0x6c ,0xd2 ,0x6d ,0x80 ,0x18 ,0xe5 ,0x25 ,0x70 , -0x03 ,0x30 ,0x4c ,0x11 ,0xc2 ,0x4c ,0xe5 ,0x25 ,0x70 ,0x05 ,0x75 ,0x25 ,0x07 ,0x80 ,0x02 ,0x15 , -0x25 ,0xd2 ,0x6c ,0xd2 ,0x6d ,0xe5 ,0x47 ,0xb4 ,0x09 ,0x14 ,0xe5 ,0x44 ,0x20 ,0xe3 ,0x0b ,0xe5 , -0x3a ,0x64 ,0x02 ,0x60 ,0x05 ,0xe5 ,0x3a ,0xb4 ,0x03 ,0x04 ,0xc2 ,0x6c ,0xd2 ,0x6d ,0x90 ,0x70 , -0x46 ,0xe5 ,0x2d ,0xf0 ,0x20 ,0x69 ,0x07 ,0xe5 ,0x5e ,0x20 ,0xe0 ,0x02 ,0xb2 ,0x68 ,0x20 ,0x6b , -0x07 ,0xe5 ,0x5e ,0x20 ,0xe1 ,0x02 ,0xb2 ,0x6a ,0x20 ,0x6d ,0x07 ,0xe5 ,0x5e ,0x20 ,0xe2 ,0x02 , -0xb2 ,0x6c ,0x90 ,0x70 ,0x47 ,0xe5 ,0x2d ,0xf0 ,0x75 ,0x2e ,0x40 ,0x20 ,0x69 ,0x04 ,0xa2 ,0x68 , -0x80 ,0x26 ,0x30 ,0x68 ,0x06 ,0xe5 ,0x46 ,0xa2 ,0xe2 ,0x80 ,0x1d ,0xe5 ,0x5e ,0x20 ,0xe2 ,0x04 , -0x7f ,0x01 ,0x80 ,0x02 ,0x7f ,0x00 ,0xe5 ,0x46 ,0x54 ,0xf0 ,0xfe ,0xbe ,0xf0 ,0x04 ,0x7e ,0x01 , -0x80 ,0x02 ,0x7e ,0x00 ,0xee ,0x6f ,0x24 ,0xff ,0x92 ,0x73 ,0x92 ,0x72 ,0x20 ,0x6b ,0x04 ,0xa2 , -0x6a ,0x80 ,0x26 ,0x30 ,0x6a ,0x06 ,0xe5 ,0x46 ,0xa2 ,0xe2 ,0x80 ,0x1d ,0xe5 ,0x5e ,0x20 ,0xe0 , -0x04 ,0x7f ,0x01 ,0x80 ,0x02 ,0x7f ,0x00 ,0xe5 ,0x46 ,0x54 ,0xf0 ,0xfe ,0xbe ,0xf0 ,0x04 ,0x7e , -0x01 ,0x80 ,0x02 ,0x7e ,0x00 ,0xee ,0x6f ,0x24 ,0xff ,0x92 ,0x75 ,0x92 ,0x74 ,0x20 ,0x6d ,0x04 , -0xa2 ,0x6c ,0x80 ,0x26 ,0x30 ,0x6c ,0x06 ,0xe5 ,0x46 ,0xa2 ,0xe2 ,0x80 ,0x1d ,0xe5 ,0x5e ,0x20 , -0xe1 ,0x04 ,0x7f ,0x01 ,0x80 ,0x02 ,0x7f ,0x00 ,0xe5 ,0x46 ,0x54 ,0xf0 ,0xfe ,0xbe ,0xf0 ,0x04 , -0x7e ,0x01 ,0x80 ,0x02 ,0x7e ,0x00 ,0xee ,0x6f ,0x24 ,0xff ,0x92 ,0x71 ,0x92 ,0x70 ,0x90 ,0x10 , -0x2f ,0xe5 ,0x2e ,0xf0 ,0xe5 ,0x47 ,0x64 ,0x06 ,0x70 ,0x4c ,0x90 ,0x02 ,0x29 ,0xe0 ,0x54 ,0xfe , -0xf0 ,0xe5 ,0x43 ,0xc4 ,0x54 ,0x0f ,0x14 ,0x60 ,0x14 ,0x24 ,0xfe ,0x60 ,0x23 ,0x24 ,0x03 ,0x60 , -0x03 ,0x02 ,0x16 ,0x05 ,0x90 ,0x02 ,0x28 ,0xe0 ,0x30 ,0x47 ,0x0f ,0x80 ,0x07 ,0x90 ,0x02 ,0x28 , -0xe0 ,0x20 ,0x47 ,0x06 ,0x54 ,0xfe ,0xf0 ,0x02 ,0x16 ,0x05 ,0x44 ,0x01 ,0xf0 ,0x02 ,0x16 ,0x05 , -0xe5 ,0x46 ,0x30 ,0xe2 ,0x04 ,0x7f ,0x01 ,0x80 ,0x02 ,0x7f ,0x00 ,0x90 ,0x02 ,0x28 ,0xe0 ,0x54 , -0xfe ,0x4f ,0xf0 ,0x02 ,0x16 ,0x05 ,0xe5 ,0x47 ,0x64 ,0x07 ,0x60 ,0x0f ,0xe5 ,0x47 ,0x64 ,0x08 , -0x60 ,0x09 ,0xe5 ,0x47 ,0x64 ,0x09 ,0x60 ,0x03 ,0x02 ,0x16 ,0x05 ,0xe4 ,0xf5 ,0x27 ,0x90 ,0x02 , -0x29 ,0xe0 ,0x54 ,0xfc ,0xf0 ,0xe5 ,0x3a ,0x14 ,0x60 ,0x2d ,0x14 ,0x60 ,0x2e ,0x14 ,0x60 ,0x36 , -0x24 ,0xfc ,0x60 ,0x5f ,0x24 ,0xf9 ,0x60 ,0x1f ,0x24 ,0x0e ,0x70 ,0x69 ,0xe5 ,0x46 ,0x13 ,0x13 , -0x54 ,0x3f ,0x75 ,0xf0 ,0x01 ,0x84 ,0xaf ,0xf0 ,0x20 ,0x47 ,0x04 ,0x7e ,0x01 ,0x80 ,0x02 ,0x7e , -0x00 ,0xef ,0x6e ,0x24 ,0xff ,0x80 ,0x45 ,0xa2 ,0x47 ,0x80 ,0x41 ,0xe5 ,0x46 ,0x30 ,0xe2 ,0x03 , -0xd3 ,0x80 ,0x27 ,0xc3 ,0x80 ,0x24 ,0xe5 ,0x46 ,0x30 ,0xe2 ,0x0d ,0x54 ,0x38 ,0xc3 ,0x94 ,0x30 , -0x50 ,0x06 ,0x7e ,0x00 ,0x7f ,0x01 ,0x80 ,0x04 ,0x7e ,0x00 ,0x7f ,0x00 ,0x20 ,0x47 ,0x04 ,0x7d , -0x01 ,0x80 ,0x02 ,0x7d ,0x00 ,0xef ,0x6d ,0x4e ,0x24 ,0xff ,0x92 ,0x38 ,0xa2 ,0x47 ,0xb3 ,0x92 , -0x39 ,0x80 ,0x19 ,0xe5 ,0x46 ,0x30 ,0xe2 ,0x03 ,0xd3 ,0x80 ,0x01 ,0xc3 ,0x92 ,0x39 ,0xa2 ,0x47 , -0xb3 ,0x92 ,0x38 ,0x80 ,0x07 ,0xa2 ,0x47 ,0xb3 ,0x92 ,0x38 ,0x92 ,0x39 ,0x90 ,0x02 ,0x28 ,0xe0 , -0x54 ,0xfc ,0x45 ,0x27 ,0xf0 ,0x90 ,0x70 ,0x9c ,0xe5 ,0x3a ,0xf0 ,0xa3 ,0xe5 ,0x47 ,0xf0 ,0x90 , -0x70 ,0x41 ,0xe5 ,0x3a ,0xf0 ,0x22 ,0xe4 ,0x90 ,0x02 ,0x29 ,0xf0 ,0x30 ,0x47 ,0x04 ,0xaf ,0x45 , -0x80 ,0x04 ,0xe5 ,0x45 ,0xf4 ,0xff ,0x90 ,0x02 ,0x28 ,0xef ,0xf0 ,0x22 ,0x8f ,0x50 ,0xd2 ,0x59 , -0x22 ,0x8f ,0x54 ,0xd2 ,0x58 ,0x22 ,0xe4 ,0xf5 ,0x62 ,0xc2 ,0xaf ,0xe5 ,0x51 ,0x14 ,0x60 ,0x46 , -0x14 ,0x60 ,0x62 ,0x24 ,0x02 ,0x60 ,0x03 ,0x02 ,0x16 ,0xf0 ,0xd2 ,0x59 ,0x75 ,0x55 ,0x01 ,0x90 , -0x02 ,0xa2 ,0xe0 ,0x54 ,0x7f ,0xf0 ,0xa3 ,0xe0 ,0x20 ,0xe7 ,0x22 ,0x90 ,0x04 ,0x34 ,0xe0 ,0xb4 , -0x02 ,0x1b ,0xa3 ,0xe0 ,0xb4 ,0x02 ,0x16 ,0xa3 ,0xe0 ,0xb4 ,0x02 ,0x11 ,0x7f ,0x20 ,0x12 ,0x16 , -0x2c ,0x90 ,0x10 ,0x04 ,0xe0 ,0x54 ,0xf3 ,0xf0 ,0x75 ,0x51 ,0x01 ,0x80 ,0x73 ,0xe5 ,0x50 ,0x70 , -0x05 ,0x75 ,0x62 ,0x03 ,0x80 ,0x6a ,0x90 ,0x12 ,0x00 ,0xe0 ,0x54 ,0x03 ,0x70 ,0x11 ,0x7f ,0x20 , -0x12 ,0x16 ,0x2c ,0x90 ,0x02 ,0xa2 ,0xe0 ,0x54 ,0xbf ,0xf0 ,0x75 ,0x51 ,0x02 ,0x80 ,0x51 ,0xe5 , -0x50 ,0x70 ,0x02 ,0x80 ,0x46 ,0x90 ,0x02 ,0xa3 ,0xe0 ,0x20 ,0xe6 ,0x3b ,0x90 ,0x04 ,0x37 ,0xe0 , -0x64 ,0x22 ,0x70 ,0x33 ,0x90 ,0x01 ,0x8a ,0x74 ,0x7e ,0xf0 ,0x90 ,0x01 ,0x96 ,0xf0 ,0x90 ,0x12 , -0x04 ,0x74 ,0x0a ,0xf0 ,0x90 ,0x13 ,0x28 ,0xe0 ,0x54 ,0xf0 ,0xf0 ,0xa3 ,0xe0 ,0x54 ,0xf0 ,0xf0 , -0xa3 ,0xe0 ,0x54 ,0xfa ,0xf0 ,0x90 ,0x04 ,0x01 ,0xe0 ,0x54 ,0xf9 ,0xf0 ,0x75 ,0x62 ,0x01 ,0x75 , -0x55 ,0x02 ,0xe4 ,0xf5 ,0x51 ,0x80 ,0x09 ,0xe5 ,0x50 ,0x70 ,0x05 ,0x75 ,0x62 ,0x03 ,0xf5 ,0x51 , -0xe5 ,0x62 ,0x60 ,0x15 ,0xc2 ,0x01 ,0xe4 ,0xf5 ,0x51 ,0xc2 ,0x59 ,0xad ,0x62 ,0xaf ,0x40 ,0x12 , -0x17 ,0x7a ,0xe5 ,0x62 ,0xb4 ,0x03 ,0x02 ,0xd2 ,0x03 ,0xd2 ,0xaf ,0x22 ,0xc2 ,0xaf ,0x30 ,0x01 , -0x12 ,0xe4 ,0x90 ,0x01 ,0x96 ,0xf0 ,0xf5 ,0x51 ,0xc2 ,0x59 ,0xc2 ,0x01 ,0x7d ,0x02 ,0xaf ,0x40 , -0x12 ,0x17 ,0x7a ,0xe5 ,0x52 ,0x14 ,0x60 ,0x09 ,0x04 ,0x70 ,0x4c ,0x75 ,0x52 ,0x01 ,0x75 ,0x55 , -0x03 ,0x90 ,0x04 ,0x01 ,0xe0 ,0x44 ,0x0e ,0xf0 ,0x90 ,0x13 ,0x28 ,0xe0 ,0x44 ,0x0f ,0xf0 ,0xa3 , -0xe0 ,0x44 ,0x0f ,0xf0 ,0xa3 ,0xe0 ,0x44 ,0x05 ,0xf0 ,0x90 ,0x12 ,0x04 ,0x74 ,0x03 ,0xf0 ,0x90 , -0x02 ,0xa2 ,0xe0 ,0x44 ,0xc0 ,0xf0 ,0x90 ,0x10 ,0x04 ,0xe0 ,0x44 ,0x0c ,0xf0 ,0xe4 ,0xf5 ,0x52 , -0xf5 ,0x55 ,0x30 ,0x02 ,0x0b ,0xc2 ,0x02 ,0x7d ,0x01 ,0xaf ,0x41 ,0x12 ,0x17 ,0x7a ,0x80 ,0x02 , -0xc2 ,0x03 ,0xe4 ,0x90 ,0x01 ,0x96 ,0xf0 ,0xd2 ,0xaf ,0x22 ,0xef ,0xf4 ,0x60 ,0x2d ,0xe4 ,0xfe , -0x74 ,0x14 ,0x2e ,0xf5 ,0x82 ,0xe4 ,0x34 ,0x70 ,0xf5 ,0x83 ,0xe0 ,0xb4 ,0xff ,0x19 ,0x74 ,0x14 , -0x2e ,0xf5 ,0x82 ,0xe4 ,0x34 ,0x70 ,0xf5 ,0x83 ,0xef ,0xf0 ,0x74 ,0x1c ,0x2e ,0xf5 ,0x82 ,0xe4 , -0x34 ,0x70 ,0xf5 ,0x83 ,0xed ,0xf0 ,0x22 ,0x0e ,0xbe ,0x04 ,0xd5 ,0x22 ,0x22 ,0x22 ,0x90 ,0x70 , -0x2a ,0xe0 ,0x30 ,0xe1 ,0x4d ,0xc2 ,0xaf ,0x90 ,0x70 ,0x28 ,0xe0 ,0x90 ,0x10 ,0x1c ,0xf0 ,0x90 , -0x70 ,0x29 ,0xe0 ,0x90 ,0x10 ,0x1d ,0xf0 ,0x90 ,0x70 ,0x2a ,0xe0 ,0x90 ,0x10 ,0x1e ,0xf0 ,0x90 , -0x10 ,0x1c ,0xe0 ,0xf5 ,0x62 ,0x90 ,0x10 ,0x1e ,0xe0 ,0x20 ,0xe1 ,0xf3 ,0x90 ,0x10 ,0x1c ,0xe0 , -0x90 ,0x70 ,0x28 ,0xf0 ,0x90 ,0x10 ,0x1d ,0xe0 ,0x90 ,0x70 ,0x29 ,0xf0 ,0x90 ,0x10 ,0x1e ,0xe0 , -0x90 ,0x70 ,0x2a ,0xf0 ,0x30 ,0x4a ,0x07 ,0x90 ,0x70 ,0x24 ,0xe0 ,0x44 ,0x01 ,0xf0 ,0xc2 ,0x05 , -0xd2 ,0xaf ,0x22 ,0x22 ,0x22 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x0a ,0x69 ,0x77 , -0xff ,0xff ,0xff ,0x02 ,0x10 ,0x28 ,0x02 ,0x10 ,0x32 ,0x02 ,0x10 ,0x78 ,0x02 ,0x12 ,0x25 ,0x02 , -0x12 ,0x26 ,0x02 ,0x12 ,0x39 ,0x02 ,0x12 ,0x3e ,0x12 ,0x12 ,0x3a ,0x22 ,0x02 ,0x15 ,0x72 ,0x02 , -0x16 ,0x48 ,0x02 ,0x13 ,0x29 ,0x02 ,0x12 ,0x3f ,0x30 ,0x05 ,0x06 ,0x20 ,0x0d ,0x03 ,0x12 ,0x16 , -0xea ,0x22 ,0x90 ,0x01 ,0x8c ,0xe0 ,0x30 ,0xe3 ,0x1b ,0xe5 ,0x4c ,0x30 ,0xe0 ,0x04 ,0x7f ,0x40 , -0x80 ,0x02 ,0x7f ,0x00 ,0x90 ,0x10 ,0x2f ,0xef ,0xf0 ,0x90 ,0x01 ,0x8c ,0x74 ,0x08 ,0xf0 ,0xe4 , -0x90 ,0x01 ,0xa7 ,0xf0 ,0x90 ,0x01 ,0x8c ,0xe0 ,0x30 ,0xe0 ,0x1c ,0x90 ,0x01 ,0x80 ,0xe0 ,0xb4 , -0x02 ,0x15 ,0xa3 ,0xe0 ,0xb4 ,0x01 ,0x10 ,0x90 ,0x01 ,0x84 ,0xe0 ,0xb4 ,0x81 ,0x09 ,0x90 ,0x01 , -0x8c ,0x74 ,0x01 ,0xf0 ,0x12 ,0x0d ,0xdd ,0x22 ,0x90 ,0x04 ,0x14 ,0xe0 ,0x20 ,0xe7 ,0x03 ,0x02 , -0x12 ,0x1a ,0x90 ,0x70 ,0x12 ,0xe0 ,0xf5 ,0x56 ,0x90 ,0x04 ,0x04 ,0xe0 ,0x12 ,0x0a ,0xb6 ,0x10 , -0xb4 ,0x31 ,0x10 ,0xdf ,0x50 ,0x11 ,0x05 ,0x51 ,0x11 ,0x10 ,0x52 ,0x11 ,0x10 ,0x53 ,0x11 ,0x10 , -0x54 ,0x11 ,0x51 ,0x55 ,0x11 ,0x70 ,0x70 ,0x11 ,0x9a ,0x71 ,0x11 ,0xc4 ,0x72 ,0x11 ,0xf2 ,0x80 , -0x00 ,0x00 ,0x12 ,0x1a ,0x20 ,0x02 ,0x03 ,0x30 ,0x03 ,0x1d ,0x7d ,0x02 ,0xaf ,0x56 ,0x12 ,0x0b , -0xaa ,0x90 ,0x04 ,0x14 ,0x74 ,0x80 ,0xf0 ,0xe4 ,0x90 ,0x70 ,0x13 ,0xf0 ,0xe5 ,0x56 ,0xf4 ,0x70 , -0x03 ,0x02 ,0x12 ,0x1a ,0x02 ,0x12 ,0x13 ,0x85 ,0x56 ,0x41 ,0xd2 ,0x02 ,0x02 ,0x12 ,0x1a ,0x90 , -0x70 ,0x10 ,0xe0 ,0x54 ,0x7f ,0x64 ,0x02 ,0x60 ,0x03 ,0x02 ,0x12 ,0x1a ,0x90 ,0x70 ,0x11 ,0xe0 , -0x64 ,0x08 ,0x60 ,0x08 ,0xe0 ,0x64 ,0x20 ,0x60 ,0x03 ,0x02 ,0x12 ,0x1a ,0x75 ,0x4e ,0x03 ,0x75 , -0x4f ,0x20 ,0x02 ,0x12 ,0x1a ,0x90 ,0x70 ,0x11 ,0xe0 ,0x24 ,0xff ,0x92 ,0x47 ,0x02 ,0x12 ,0x1a , -0x90 ,0x04 ,0x04 ,0xe0 ,0x25 ,0xe0 ,0x24 ,0x5d ,0xf5 ,0x57 ,0x90 ,0x70 ,0x10 ,0xe0 ,0xff ,0x74 , -0x47 ,0x25 ,0x57 ,0xf8 ,0xc6 ,0xef ,0xc6 ,0x90 ,0x70 ,0x11 ,0xe0 ,0xff ,0x74 ,0x48 ,0x25 ,0x57 , -0xf8 ,0xc6 ,0xef ,0xc6 ,0xe4 ,0xfd ,0xaf ,0x56 ,0x12 ,0x0b ,0xaa ,0x90 ,0x04 ,0x14 ,0x74 ,0x80 , -0xf0 ,0xe4 ,0x90 ,0x70 ,0x13 ,0xf0 ,0xe5 ,0x56 ,0xf4 ,0x70 ,0x03 ,0x02 ,0x12 ,0x1a ,0x02 ,0x12 , -0x13 ,0xe5 ,0x47 ,0x64 ,0x07 ,0x60 ,0x05 ,0xe5 ,0x47 ,0xb4 ,0x08 ,0x08 ,0x90 ,0x70 ,0x11 ,0xe0 , -0x54 ,0x07 ,0xf5 ,0x3a ,0xe4 ,0xfd ,0xaf ,0x56 ,0x12 ,0x0b ,0xaa ,0xd2 ,0x04 ,0x02 ,0x12 ,0x1a , -0x90 ,0x70 ,0x10 ,0xe0 ,0xfe ,0x90 ,0x70 ,0x11 ,0xe0 ,0xfd ,0xed ,0xf8 ,0xe6 ,0xf5 ,0x57 ,0xfd , -0xaf ,0x56 ,0x12 ,0x0b ,0xaa ,0x90 ,0x04 ,0x14 ,0x74 ,0x80 ,0xf0 ,0xe4 ,0x90 ,0x70 ,0x13 ,0xf0 , -0xe5 ,0x56 ,0xf4 ,0x70 ,0x03 ,0x02 ,0x12 ,0x1a ,0x80 ,0x79 ,0x90 ,0x70 ,0x10 ,0xe0 ,0xfe ,0x90 , -0x70 ,0x11 ,0xe0 ,0xfd ,0xed ,0xf5 ,0x82 ,0x8e ,0x83 ,0xe0 ,0xf5 ,0x57 ,0xfd ,0xaf ,0x56 ,0x12 , -0x0b ,0xaa ,0x90 ,0x04 ,0x14 ,0x74 ,0x80 ,0xf0 ,0xe4 ,0x90 ,0x70 ,0x13 ,0xf0 ,0xe5 ,0x56 ,0xf4 , -0x60 ,0x58 ,0x80 ,0x4f ,0xe4 ,0xf5 ,0x4e ,0xf5 ,0x4f ,0x75 ,0x3a ,0xff ,0xad ,0x57 ,0xaf ,0x56 , -0x12 ,0x0b ,0xaa ,0x90 ,0x04 ,0x14 ,0x74 ,0x80 ,0xf0 ,0xe4 ,0x90 ,0x70 ,0x13 ,0xf0 ,0xe5 ,0x56 , -0xf4 ,0x60 ,0x07 ,0x90 ,0x70 ,0x25 ,0xe0 ,0x44 ,0x01 ,0xf0 ,0x90 ,0x70 ,0x40 ,0xe5 ,0x3a ,0xf0 , -0x80 ,0x28 ,0x90 ,0x70 ,0x10 ,0xe0 ,0x24 ,0xff ,0x92 ,0x4a ,0xd2 ,0x05 ,0xad ,0x57 ,0xaf ,0x56 , -0x12 ,0x0b ,0xaa ,0x90 ,0x04 ,0x14 ,0x74 ,0x80 ,0xf0 ,0xe4 ,0x90 ,0x70 ,0x13 ,0xf0 ,0xe5 ,0x56 , -0xf4 ,0x60 ,0x07 ,0x90 ,0x70 ,0x25 ,0xe0 ,0x44 ,0x01 ,0xf0 ,0x90 ,0x70 ,0x42 ,0xe5 ,0x3a ,0xf0 , -0xa3 ,0x74 ,0xab ,0xf0 ,0x22 ,0x22 ,0xe5 ,0x53 ,0x70 ,0x0e ,0xe5 ,0x4f ,0x45 ,0x4e ,0x60 ,0x08 , -0xe5 ,0x4f ,0x15 ,0x4f ,0x70 ,0x02 ,0x15 ,0x4e ,0x22 ,0x22 ,0xc2 ,0x42 ,0xd3 ,0x22 ,0x22 ,0xc2 , -0x4b ,0xc2 ,0x4c ,0xe5 ,0x44 ,0x12 ,0x0a ,0xb6 ,0x12 ,0x61 ,0x00 ,0x12 ,0xf4 ,0x04 ,0x12 ,0xf0 , -0x08 ,0x12 ,0xcb ,0x10 ,0x12 ,0x75 ,0x20 ,0x12 ,0x95 ,0x60 ,0x12 ,0xa6 ,0xa0 ,0x00 ,0x00 ,0x12 , -0xf6 ,0x85 ,0x48 ,0x43 ,0x85 ,0x4a ,0x42 ,0x85 ,0x4c ,0x5e ,0xe5 ,0x47 ,0x64 ,0x06 ,0x60 ,0x03 , -0x02 ,0x12 ,0xf6 ,0x80 ,0x1b ,0xe5 ,0x48 ,0xc4 ,0x54 ,0x0f ,0xf5 ,0x43 ,0xe5 ,0x4a ,0xc4 ,0x54 , -0x0f ,0xf5 ,0x42 ,0xe5 ,0x4c ,0xc4 ,0x54 ,0x0f ,0xf5 ,0x5e ,0xe5 ,0x47 ,0x64 ,0x06 ,0x70 ,0x66 , -0x53 ,0x43 ,0x0f ,0x80 ,0x61 ,0x85 ,0x49 ,0x43 ,0x85 ,0x4b ,0x42 ,0x85 ,0x4d ,0x5e ,0xe5 ,0x47 , -0x64 ,0x06 ,0x70 ,0x52 ,0x80 ,0x1b ,0xe5 ,0x49 ,0xc4 ,0x54 ,0x0f ,0xf5 ,0x43 ,0xe5 ,0x4b ,0xc4 , -0x54 ,0x0f ,0xf5 ,0x42 ,0xe5 ,0x4d ,0xc4 ,0x54 ,0x0f ,0xf5 ,0x5e ,0xe5 ,0x47 ,0x64 ,0x06 ,0x70 , -0x35 ,0xe5 ,0x43 ,0x54 ,0x0f ,0x44 ,0x10 ,0xf5 ,0x43 ,0x80 ,0x2b ,0xe5 ,0x47 ,0xb4 ,0x04 ,0x06 , -0x53 ,0x5e ,0xfb ,0x75 ,0x42 ,0x09 ,0xe5 ,0x47 ,0xb4 ,0x05 ,0x06 ,0x43 ,0x5e ,0x04 ,0x75 ,0x42 , -0x09 ,0xe5 ,0x47 ,0xb4 ,0x06 ,0x10 ,0xe5 ,0x43 ,0x54 ,0x0f ,0x44 ,0x30 ,0xf5 ,0x43 ,0x80 ,0x06 , -0xd2 ,0x4b ,0x80 ,0x02 ,0xd2 ,0x4c ,0xe4 ,0xf5 ,0x25 ,0xe5 ,0x42 ,0xc4 ,0x54 ,0xf0 ,0xff ,0xe5 , -0x43 ,0x54 ,0x0f ,0x4f ,0xf5 ,0x5f ,0x90 ,0x70 ,0x44 ,0xf0 ,0xa3 ,0xe5 ,0x5e ,0xf0 ,0xa3 ,0xe5 , -0x4a ,0xf0 ,0xa3 ,0xe5 ,0x48 ,0xf0 ,0xa3 ,0xe5 ,0x4c ,0xf0 ,0xa3 ,0xe5 ,0x44 ,0xf0 ,0xa3 ,0xe5 , -0x42 ,0xf0 ,0xa3 ,0xe5 ,0x43 ,0xf0 ,0xd2 ,0x60 ,0x22 ,0xe5 ,0x47 ,0x60 ,0x10 ,0x24 ,0xc0 ,0x70 , -0x03 ,0x12 ,0x15 ,0x52 ,0x12 ,0x13 ,0x3e ,0xc2 ,0xaf ,0xc2 ,0x04 ,0xd2 ,0xaf ,0x22 ,0xc2 ,0xaf , -0x90 ,0x04 ,0x14 ,0xe0 ,0x54 ,0x0e ,0x60 ,0x04 ,0xd2 ,0x18 ,0x80 ,0x08 ,0xe5 ,0x4e ,0x45 ,0x4f , -0x24 ,0xff ,0x92 ,0x18 ,0xd2 ,0xaf ,0x90 ,0x04 ,0x14 ,0xe0 ,0xa2 ,0xe4 ,0x92 ,0x19 ,0x74 ,0x1e , -0xf0 ,0xe5 ,0x5f ,0x54 ,0x0f ,0xf5 ,0x2d ,0xe5 ,0x25 ,0x70 ,0x13 ,0x30 ,0x18 ,0x05 ,0xe5 ,0x5f , -0x20 ,0xe5 ,0x0b ,0x30 ,0x19 ,0x19 ,0xe5 ,0x5f ,0x54 ,0x30 ,0xff ,0xbf ,0x30 ,0x11 ,0xe5 ,0x25 , -0x70 ,0x05 ,0x75 ,0x25 ,0x0c ,0x80 ,0x02 ,0x15 ,0x25 ,0xd2 ,0x6c ,0xd2 ,0x6d ,0x80 ,0x0f ,0xe5 , -0x5f ,0x30 ,0xe6 ,0x06 ,0xc2 ,0x6c ,0xd2 ,0x6d ,0x80 ,0x04 ,0xd2 ,0x6c ,0xc2 ,0x6d ,0xe5 ,0x47 , -0x64 ,0x03 ,0x70 ,0x21 ,0x30 ,0x4b ,0x06 ,0xc2 ,0x6c ,0xd2 ,0x6d ,0x80 ,0x18 ,0xe5 ,0x25 ,0x70 , -0x03 ,0x30 ,0x4c ,0x11 ,0xc2 ,0x4c ,0xe5 ,0x25 ,0x70 ,0x05 ,0x75 ,0x25 ,0x07 ,0x80 ,0x02 ,0x15 , -0x25 ,0xd2 ,0x6c ,0xd2 ,0x6d ,0x90 ,0x70 ,0x46 ,0xe5 ,0x2d ,0xf0 ,0x20 ,0x69 ,0x07 ,0xe5 ,0x5e , -0x20 ,0xe0 ,0x02 ,0xb2 ,0x68 ,0x20 ,0x6b ,0x07 ,0xe5 ,0x5e ,0x20 ,0xe1 ,0x02 ,0xb2 ,0x6a ,0x20 , -0x6d ,0x07 ,0xe5 ,0x5e ,0x20 ,0xe2 ,0x02 ,0xb2 ,0x6c ,0x90 ,0x70 ,0x47 ,0xe5 ,0x2d ,0xf0 ,0x75 , -0x2e ,0x40 ,0x20 ,0x69 ,0x04 ,0xa2 ,0x68 ,0x80 ,0x15 ,0x30 ,0x68 ,0x06 ,0xe5 ,0x46 ,0xa2 ,0xe3 , -0x80 ,0x0c ,0xe5 ,0x46 ,0x54 ,0xf0 ,0xff ,0xbf ,0xf0 ,0x03 ,0xd3 ,0x80 ,0x01 ,0xc3 ,0x92 ,0x73 , -0x92 ,0x72 ,0x20 ,0x6b ,0x04 ,0xa2 ,0x6a ,0x80 ,0x15 ,0x30 ,0x6a ,0x06 ,0xe5 ,0x46 ,0xa2 ,0xe3 , -0x80 ,0x0c ,0xe5 ,0x46 ,0x54 ,0xf0 ,0xff ,0xbf ,0xf0 ,0x03 ,0xd3 ,0x80 ,0x01 ,0xc3 ,0x92 ,0x75 , -0x92 ,0x74 ,0x20 ,0x6d ,0x04 ,0xa2 ,0x6c ,0x80 ,0x15 ,0x30 ,0x6c ,0x06 ,0xe5 ,0x46 ,0xa2 ,0xe3 , -0x80 ,0x0c ,0xe5 ,0x46 ,0x54 ,0xf0 ,0xff ,0xbf ,0xf0 ,0x03 ,0xd3 ,0x80 ,0x01 ,0xc3 ,0x92 ,0x71 , -0x92 ,0x70 ,0x90 ,0x10 ,0x2f ,0xe5 ,0x2e ,0xf0 ,0xe5 ,0x47 ,0x64 ,0x06 ,0x70 ,0x4c ,0x90 ,0x02 , -0x29 ,0xe0 ,0x54 ,0xfe ,0xf0 ,0xe5 ,0x43 ,0xc4 ,0x54 ,0x0f ,0x14 ,0x60 ,0x14 ,0x24 ,0xfe ,0x60 , -0x23 ,0x24 ,0x03 ,0x60 ,0x03 ,0x02 ,0x15 ,0x41 ,0x90 ,0x02 ,0x28 ,0xe0 ,0x30 ,0x47 ,0x0f ,0x80 , -0x07 ,0x90 ,0x02 ,0x28 ,0xe0 ,0x20 ,0x47 ,0x06 ,0x54 ,0xfe ,0xf0 ,0x02 ,0x15 ,0x41 ,0x44 ,0x01 , -0xf0 ,0x02 ,0x15 ,0x41 ,0xe5 ,0x46 ,0x30 ,0xe3 ,0x04 ,0x7f ,0x01 ,0x80 ,0x02 ,0x7f ,0x00 ,0x90 , -0x02 ,0x28 ,0xe0 ,0x54 ,0xfe ,0x4f ,0xf0 ,0x02 ,0x15 ,0x41 ,0xe5 ,0x47 ,0x64 ,0x07 ,0x60 ,0x09 , -0xe5 ,0x47 ,0x64 ,0x08 ,0x60 ,0x03 ,0x02 ,0x15 ,0x41 ,0xe4 ,0xf5 ,0x27 ,0x90 ,0x02 ,0x29 ,0xe0 , -0x54 ,0xfc ,0xf0 ,0xe5 ,0x3a ,0x14 ,0x60 ,0x26 ,0x14 ,0x60 ,0x2e ,0x14 ,0x60 ,0x36 ,0x24 ,0x03 , -0x70 ,0x5f ,0xe5 ,0x46 ,0x13 ,0x13 ,0x13 ,0x54 ,0x1f ,0x75 ,0xf0 ,0x03 ,0x84 ,0xaf ,0xf0 ,0x20 , -0x47 ,0x04 ,0x7e ,0x01 ,0x80 ,0x02 ,0x7e ,0x00 ,0xef ,0x6e ,0x24 ,0xff ,0x80 ,0x02 ,0xa2 ,0x47 , -0x92 ,0x39 ,0xa2 ,0x47 ,0xb3 ,0x92 ,0x38 ,0x80 ,0x3f ,0xe5 ,0x46 ,0x30 ,0xe3 ,0x03 ,0xd3 ,0x80 , -0x27 ,0xc3 ,0x80 ,0x24 ,0xe5 ,0x46 ,0x30 ,0xe3 ,0x0d ,0x54 ,0x70 ,0xc3 ,0x94 ,0x60 ,0x50 ,0x06 , -0x7e ,0x00 ,0x7f ,0x01 ,0x80 ,0x04 ,0x7e ,0x00 ,0x7f ,0x00 ,0x20 ,0x47 ,0x04 ,0x7d ,0x01 ,0x80 , -0x02 ,0x7d ,0x00 ,0xef ,0x6d ,0x4e ,0x24 ,0xff ,0x92 ,0x38 ,0xa2 ,0x47 ,0xb3 ,0x92 ,0x39 ,0x80 , -0x07 ,0xa2 ,0x47 ,0xb3 ,0x92 ,0x38 ,0x92 ,0x39 ,0x90 ,0x02 ,0x28 ,0xe0 ,0x54 ,0xfc ,0x45 ,0x27 , -0xf0 ,0x90 ,0x70 ,0x9c ,0xe5 ,0x3a ,0xf0 ,0xa3 ,0xe5 ,0x47 ,0xf0 ,0x90 ,0x70 ,0x41 ,0xe5 ,0x3a , -0xf0 ,0x22 ,0xe4 ,0x90 ,0x02 ,0x29 ,0xf0 ,0x30 ,0x47 ,0x04 ,0xaf ,0x45 ,0x80 ,0x04 ,0xe5 ,0x45 , -0xf4 ,0xff ,0x90 ,0x02 ,0x28 ,0xef ,0xf0 ,0x22 ,0x8f ,0x50 ,0xd2 ,0x59 ,0x22 ,0x8f ,0x54 ,0xd2 , -0x58 ,0x22 ,0xe4 ,0xf5 ,0x62 ,0xc2 ,0xaf ,0xe5 ,0x51 ,0x14 ,0x60 ,0x46 ,0x14 ,0x60 ,0x62 ,0x24 , -0x02 ,0x60 ,0x03 ,0x02 ,0x16 ,0x2c ,0xd2 ,0x59 ,0x75 ,0x55 ,0x01 ,0x90 ,0x02 ,0xa2 ,0xe0 ,0x54 , -0x7f ,0xf0 ,0xa3 ,0xe0 ,0x20 ,0xe7 ,0x22 ,0x90 ,0x04 ,0x34 ,0xe0 ,0xb4 ,0x02 ,0x1b ,0xa3 ,0xe0 , -0xb4 ,0x02 ,0x16 ,0xa3 ,0xe0 ,0xb4 ,0x02 ,0x11 ,0x7f ,0x20 ,0x12 ,0x15 ,0x68 ,0x90 ,0x10 ,0x04 , -0xe0 ,0x54 ,0xf3 ,0xf0 ,0x75 ,0x51 ,0x01 ,0x80 ,0x73 ,0xe5 ,0x50 ,0x70 ,0x05 ,0x75 ,0x62 ,0x03 , -0x80 ,0x6a ,0x90 ,0x12 ,0x00 ,0xe0 ,0x54 ,0x03 ,0x70 ,0x11 ,0x7f ,0x20 ,0x12 ,0x15 ,0x68 ,0x90 , -0x02 ,0xa2 ,0xe0 ,0x54 ,0xbf ,0xf0 ,0x75 ,0x51 ,0x02 ,0x80 ,0x51 ,0xe5 ,0x50 ,0x70 ,0x02 ,0x80 , -0x46 ,0x90 ,0x02 ,0xa3 ,0xe0 ,0x20 ,0xe6 ,0x3b ,0x90 ,0x04 ,0x37 ,0xe0 ,0x64 ,0x22 ,0x70 ,0x33 , -0x90 ,0x01 ,0x8a ,0x74 ,0x7e ,0xf0 ,0x90 ,0x01 ,0x96 ,0xf0 ,0x90 ,0x12 ,0x04 ,0x74 ,0x0a ,0xf0 , -0x90 ,0x13 ,0x28 ,0xe0 ,0x54 ,0xf0 ,0xf0 ,0xa3 ,0xe0 ,0x54 ,0xf0 ,0xf0 ,0xa3 ,0xe0 ,0x54 ,0xfa , -0xf0 ,0x90 ,0x04 ,0x01 ,0xe0 ,0x54 ,0xf9 ,0xf0 ,0x75 ,0x62 ,0x01 ,0x75 ,0x55 ,0x02 ,0xe4 ,0xf5 , -0x51 ,0x80 ,0x09 ,0xe5 ,0x50 ,0x70 ,0x05 ,0x75 ,0x62 ,0x03 ,0xf5 ,0x51 ,0xe5 ,0x62 ,0x60 ,0x15 , -0xc2 ,0x01 ,0xe4 ,0xf5 ,0x51 ,0xc2 ,0x59 ,0xad ,0x62 ,0xaf ,0x40 ,0x12 ,0x16 ,0xb6 ,0xe5 ,0x62 , -0xb4 ,0x03 ,0x02 ,0xd2 ,0x03 ,0xd2 ,0xaf ,0x22 ,0xc2 ,0xaf ,0x30 ,0x01 ,0x12 ,0xe4 ,0x90 ,0x01 , -0x96 ,0xf0 ,0xf5 ,0x51 ,0xc2 ,0x59 ,0xc2 ,0x01 ,0x7d ,0x02 ,0xaf ,0x40 ,0x12 ,0x16 ,0xb6 ,0xe5 , -0x52 ,0x14 ,0x60 ,0x09 ,0x04 ,0x70 ,0x4c ,0x75 ,0x52 ,0x01 ,0x75 ,0x55 ,0x03 ,0x90 ,0x04 ,0x01 , -0xe0 ,0x44 ,0x0e ,0xf0 ,0x90 ,0x13 ,0x28 ,0xe0 ,0x44 ,0x0f ,0xf0 ,0xa3 ,0xe0 ,0x44 ,0x0f ,0xf0 , -0xa3 ,0xe0 ,0x44 ,0x05 ,0xf0 ,0x90 ,0x12 ,0x04 ,0x74 ,0x03 ,0xf0 ,0x90 ,0x02 ,0xa2 ,0xe0 ,0x44 , -0xc0 ,0xf0 ,0x90 ,0x10 ,0x04 ,0xe0 ,0x44 ,0x0c ,0xf0 ,0xe4 ,0xf5 ,0x52 ,0xf5 ,0x55 ,0x30 ,0x02 , -0x0b ,0xc2 ,0x02 ,0x7d ,0x01 ,0xaf ,0x41 ,0x12 ,0x16 ,0xb6 ,0x80 ,0x02 ,0xc2 ,0x03 ,0xe4 ,0x90 , -0x01 ,0x96 ,0xf0 ,0xd2 ,0xaf ,0x22 ,0xef ,0xf4 ,0x60 ,0x2d ,0xe4 ,0xfe ,0x74 ,0x14 ,0x2e ,0xf5 , -0x82 ,0xe4 ,0x34 ,0x70 ,0xf5 ,0x83 ,0xe0 ,0xb4 ,0xff ,0x19 ,0x74 ,0x14 ,0x2e ,0xf5 ,0x82 ,0xe4 , -0x34 ,0x70 ,0xf5 ,0x83 ,0xef ,0xf0 ,0x74 ,0x1c ,0x2e ,0xf5 ,0x82 ,0xe4 ,0x34 ,0x70 ,0xf5 ,0x83 , -0xed ,0xf0 ,0x22 ,0x0e ,0xbe ,0x04 ,0xd5 ,0x22 ,0x22 ,0x22 ,0x90 ,0x70 ,0x2a ,0xe0 ,0x30 ,0xe1 , -0x4d ,0xc2 ,0xaf ,0x90 ,0x70 ,0x28 ,0xe0 ,0x90 ,0x10 ,0x1c ,0xf0 ,0x90 ,0x70 ,0x29 ,0xe0 ,0x90 , -0x10 ,0x1d ,0xf0 ,0x90 ,0x70 ,0x2a ,0xe0 ,0x90 ,0x10 ,0x1e ,0xf0 ,0x90 ,0x10 ,0x1c ,0xe0 ,0xf5 , -0x62 ,0x90 ,0x10 ,0x1e ,0xe0 ,0x20 ,0xe1 ,0xf3 ,0x90 ,0x10 ,0x1c ,0xe0 ,0x90 ,0x70 ,0x28 ,0xf0 , -0x90 ,0x10 ,0x1d ,0xe0 ,0x90 ,0x70 ,0x29 ,0xf0 ,0x90 ,0x10 ,0x1e ,0xe0 ,0x90 ,0x70 ,0x2a ,0xf0 , -0x30 ,0x4a ,0x07 ,0x90 ,0x70 ,0x24 ,0xe0 ,0x44 ,0x01 ,0xf0 ,0xc2 ,0x05 ,0xd2 ,0xaf ,0x22 ,0x22 , -0x22 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x01 ,0xe9 ,0x00 , } ;
PATCH 33/33 Staging: remove no longer needed rt3070 driver
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] Staging: remove no longer needed rt3070 driver
rt2870 handles now all rt2870/rt3070 chipsets.
--- drivers/staging/Kconfig | 2 - drivers/staging/Makefile | 1 drivers/staging/rt3070/2870_main_dev.c | 1 drivers/staging/rt3070/Kconfig | 6 --- drivers/staging/rt3070/Makefile | 43 ------------------------- drivers/staging/rt3070/action.h | 1 drivers/staging/rt3070/aironet.h | 1 drivers/staging/rt3070/ap.h | 1 drivers/staging/rt3070/chlist.h | 1 drivers/staging/rt3070/common/2870_rtmp_init.c | 1 drivers/staging/rt3070/common/action.c | 1 drivers/staging/rt3070/common/ba_action.c | 1 drivers/staging/rt3070/common/cmm_data.c | 1 drivers/staging/rt3070/common/cmm_data_2870.c | 1 drivers/staging/rt3070/common/cmm_info.c | 1 drivers/staging/rt3070/common/cmm_sanity.c | 1 drivers/staging/rt3070/common/cmm_sync.c | 1 drivers/staging/rt3070/common/cmm_wpa.c | 1 drivers/staging/rt3070/common/dfs.c | 1 drivers/staging/rt3070/common/eeprom.c | 1 drivers/staging/rt3070/common/md5.c | 1 drivers/staging/rt3070/common/mlme.c | 1 drivers/staging/rt3070/common/rtmp_init.c | 1 drivers/staging/rt3070/common/rtmp_tkip.c | 1 drivers/staging/rt3070/common/rtmp_wep.c | 1 drivers/staging/rt3070/common/rtusb_bulk.c | 1 drivers/staging/rt3070/common/rtusb_data.c | 1 drivers/staging/rt3070/common/rtusb_io.c | 1 drivers/staging/rt3070/common/spectrum.c | 1 drivers/staging/rt3070/dfs.h | 1 drivers/staging/rt3070/md5.h | 1 drivers/staging/rt3070/mlme.h | 1 drivers/staging/rt3070/oid.h | 1 drivers/staging/rt3070/rt2870.h | 1 drivers/staging/rt3070/rt28xx.h | 1 drivers/staging/rt3070/rt_config.h | 1 drivers/staging/rt3070/rt_linux.c | 1 drivers/staging/rt3070/rt_linux.h | 1 drivers/staging/rt3070/rt_main_dev.c | 1 drivers/staging/rt3070/rt_profile.c | 1 drivers/staging/rt3070/rtmp.h | 1 drivers/staging/rt3070/rtmp_ckipmic.h | 1 drivers/staging/rt3070/rtmp_def.h | 1 drivers/staging/rt3070/rtmp_type.h | 1 drivers/staging/rt3070/spectrum.h | 1 drivers/staging/rt3070/spectrum_def.h | 1 drivers/staging/rt3070/sta/aironet.c | 1 drivers/staging/rt3070/sta/assoc.c | 1 drivers/staging/rt3070/sta/auth.c | 1 drivers/staging/rt3070/sta/auth_rsp.c | 1 drivers/staging/rt3070/sta/connect.c | 2 - drivers/staging/rt3070/sta/rtmp_data.c | 1 drivers/staging/rt3070/sta/sanity.c | 1 drivers/staging/rt3070/sta/sync.c | 1 drivers/staging/rt3070/sta/wpa.c | 1 drivers/staging/rt3070/sta_ioctl.c | 1 drivers/staging/rt3070/wpa.h | 1 57 files changed, 106 deletions(-)
drivers/staging/Kconfig +0 -2
@@ -73,8 +73,6 @@ source "drivers/staging/rt2860/Kconfig" source "drivers/staging/rt2870/Kconfig" -source "drivers/staging/rt3070/Kconfig" - source "drivers/staging/rt3090/Kconfig" source "drivers/staging/comedi/Kconfig"
drivers/staging/Makefile +0 -1
@@ -19,7 +19,6 @@ obj-$(CONFIG_AGNX) += agnx/ obj-$(CONFIG_OTUS) += otus/ obj-$(CONFIG_RT2860) += rt2860/ obj-$(CONFIG_RT2870) += rt2870/ -obj-$(CONFIG_RT3070) += rt3070/ obj-$(CONFIG_RT3090) += rt3090/ obj-$(CONFIG_COMEDI) += comedi/ obj-$(CONFIG_ASUS_OLED) += asus_oled/
drivers/staging/rt3070/2870_main_dev.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../rt2870/2870_main_dev.c"
drivers/staging/rt3070/Kconfig deleted +0 -6
@@ -1,6 +0,0 @@ -config RT3070 - tristate "Ralink 3070 wireless support" - depends on USB && X86 && WLAN_80211 && !RT2870 - ---help--- - This is an experimental driver for the Ralink 3070 wireless chip. -
drivers/staging/rt3070/Makefile deleted +0 -43
43 lines not on this page · raw message
drivers/staging/rt3070/action.h deleted +0 -1
@@ -1 +0,0 @@ -#include "../rt2870/common/action.h"
drivers/staging/rt3070/aironet.h deleted +0 -1
@@ -1 +0,0 @@ -#include "../rt2870/aironet.h"
drivers/staging/rt3070/ap.h deleted +0 -1
@@ -1 +0,0 @@ -#include "../rt2870/ap.h"
drivers/staging/rt3070/chlist.h deleted +0 -1
@@ -1 +0,0 @@ -#include "../rt2870/chlist.h"
drivers/staging/rt3070/common/2870_rtmp_init.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/common/2870_rtmp_init.c"
drivers/staging/rt3070/common/action.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/common/action.c"
drivers/staging/rt3070/common/ba_action.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/common/ba_action.c"
drivers/staging/rt3070/common/cmm_data.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/common/cmm_data.c"
drivers/staging/rt3070/common/cmm_data_2870.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/common/cmm_data_2870.c"
drivers/staging/rt3070/common/cmm_info.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/common/cmm_info.c"
drivers/staging/rt3070/common/cmm_sanity.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/common/cmm_sanity.c"
drivers/staging/rt3070/common/cmm_sync.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/common/cmm_sync.c"
drivers/staging/rt3070/common/cmm_wpa.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/common/cmm_wpa.c"
drivers/staging/rt3070/common/dfs.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/common/dfs.c"
drivers/staging/rt3070/common/eeprom.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/common/eeprom.c"
drivers/staging/rt3070/common/md5.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/common/md5.c"
drivers/staging/rt3070/common/mlme.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/common/mlme.c"
drivers/staging/rt3070/common/rtmp_init.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/common/rtmp_init.c"
drivers/staging/rt3070/common/rtmp_tkip.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/common/rtmp_tkip.c"
drivers/staging/rt3070/common/rtmp_wep.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/common/rtmp_wep.c"
drivers/staging/rt3070/common/rtusb_bulk.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/common/rtusb_bulk.c"
drivers/staging/rt3070/common/rtusb_data.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/common/rtusb_data.c"
drivers/staging/rt3070/common/rtusb_io.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/common/rtusb_io.c"
drivers/staging/rt3070/common/spectrum.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/common/spectrum.c"
drivers/staging/rt3070/dfs.h deleted +0 -1
@@ -1 +0,0 @@ -#include "../rt2870/dfs.h"
drivers/staging/rt3070/md5.h deleted +0 -1
@@ -1 +0,0 @@ -#include "../rt2870/md5.h"
drivers/staging/rt3070/mlme.h deleted +0 -1
@@ -1 +0,0 @@ -#include "../rt2870/mlme.h"
drivers/staging/rt3070/oid.h deleted +0 -1
@@ -1 +0,0 @@ -#include "../rt2870/oid.h"
drivers/staging/rt3070/rt2870.h deleted +0 -1
@@ -1 +0,0 @@ -#include "../rt2870/rt2870.h"
drivers/staging/rt3070/rt28xx.h deleted +0 -1
@@ -1 +0,0 @@ -#include "../rt2870/rt28xx.h"
drivers/staging/rt3070/rt_config.h deleted +0 -1
@@ -1 +0,0 @@ -#include "../rt2870/rt_config.h"
drivers/staging/rt3070/rt_linux.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../rt2870/rt_linux.c"
drivers/staging/rt3070/rt_linux.h deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/rt_linux.h"
drivers/staging/rt3070/rt_main_dev.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../rt2870/rt_main_dev.c"
drivers/staging/rt3070/rt_profile.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../rt2870/rt_profile.c"
drivers/staging/rt3070/rtmp.h deleted +0 -1
@@ -1 +0,0 @@ -#include "../rt2870/rtmp.h"
drivers/staging/rt3070/rtmp_ckipmic.h deleted +0 -1
@@ -1 +0,0 @@ -#include "../rt2870/rtmp_ckipmic.h"
drivers/staging/rt3070/rtmp_def.h deleted +0 -1
@@ -1 +0,0 @@ -#include "../rt2870/rtmp_def.h"
drivers/staging/rt3070/rtmp_type.h deleted +0 -1
@@ -1 +0,0 @@ -#include "../rt2870/rtmp_type.h"
drivers/staging/rt3070/spectrum.h deleted +0 -1
@@ -1 +0,0 @@ -#include "../rt2870/spectrum.h"
drivers/staging/rt3070/spectrum_def.h deleted +0 -1
@@ -1 +0,0 @@ -#include "../rt2870/spectrum_def.h"
drivers/staging/rt3070/sta/aironet.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/sta/aironet.c"
drivers/staging/rt3070/sta/assoc.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/sta/assoc.c"
drivers/staging/rt3070/sta/auth.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/sta/auth.c"
drivers/staging/rt3070/sta/auth_rsp.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/sta/auth_rsp.c"
drivers/staging/rt3070/sta/connect.c deleted +0 -2
@@ -1,2 +0,0 @@ -#include "../../rt2870/sta/connect.c" -
drivers/staging/rt3070/sta/rtmp_data.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/sta/rtmp_data.c"
drivers/staging/rt3070/sta/sanity.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/sta/sanity.c"
drivers/staging/rt3070/sta/sync.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/sta/sync.c"
drivers/staging/rt3070/sta/wpa.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../../rt2870/sta/wpa.c"
drivers/staging/rt3070/sta_ioctl.c deleted +0 -1
@@ -1 +0,0 @@ -#include "../rt2870/sta_ioctl.c"
drivers/staging/rt3070/wpa.h deleted +0 -1
@@ -1 +0,0 @@ -#include "../rt2870/wpa.h"
Quoted 10 lines · Bartlomiej Zolnierkiewicz
Hi,
The final part of rt2870 and rt3070 merge.
It adds RT3070 chipset support to rt2870 driver and removes no longer needed rt3070 driver (yes, it means one Ralink driver less in the staging tree!).
[ in the process many bugs in all Ralink drivers were fixed, RT2870 chipset
support was converted to use the new firmware and ~1.5 KLOC were removed ]
Wonderful work, thanks so much for doing this. I'll merge these into my tree when I get home tomorrow.
thanks again,
greg k-h
Quoted 4 lines · Bartlomiej Zolnierkiewicz
Hi,
The final part of rt2870 and rt3070 merge.
Quoted 8 lines
It adds RT3070 chipset support to rt2870 driver and removes no longer needed rt3070 driver (yes, it means one Ralink driver less in the staging tree!).
[ in the process many bugs in all Ralink drivers were fixed, RT2870 chipset
support was converted to use the new firmware and ~1.5 KLOC were removed ]I tested it on RT2860 and RT3070 chipsets already but I would need some help from people with RT2870 hardware to verify those changes (Mike? Marcin?).
I tested this patchset on WUSB54GC-V3 (1737:0077) and it works fine so far. Unfortunately it's not rt2870 you are looking for. With rt2800usb driver I get:
phy0 -> rt2x00_set_chip: Info - Chipset detected - rt: 1600, rf: 0006, rev: 30700200. so it's rt3070 chipset.
Marcin
Quoted 11 lines · On Sunday 23 August 2009 19:33:24 Marcin Slusarz wrote:
Quoted 10 lines · Bartlomiej Zolnierkiewicz
Hi,
The final part of rt2870 and rt3070 merge.
It adds RT3070 chipset support to rt2870 driver and removes no longer needed rt3070 driver (yes, it means one Ralink driver less in the staging tree!).
[ in the process many bugs in all Ralink drivers were fixed, RT2870 chipset
support was converted to use the new firmware and ~1.5 KLOC were removed ]
Quoted 7 lines
Quoted 2 lines
I tested it on RT2860 and RT3070 chipsets already but I would need some help from people with RT2870 hardware to verify those changes (Mike? Marcin?).
I tested this patchset on WUSB54GC-V3 (1737:0077) and it works fine so far. Unfortunately it's not rt2870 you are looking for. With rt2800usb driver I get:
phy0 ->rt2x00_set_chip: Info - Chipset detected - rt: 1600, rf: 0006, rev: 30700200. so it's rt3070 chipset.
Thanks, more testing for all Ralink changes that went into staging tree is still needed and appreciated.
Quoted 2 lines · Bartlomiej Zolnierkiewicz
I tested it on RT2860 and RT3070 chipsets already but I would need some help from people with RT2870 hardware to verify those changes (Mike? Marcin?).
I gave it a spin over java this morning, works fine here. This message brought to you by my 2870.
-Mike
Quoted 7 lines · On Monday 24 August 2009 07:54:28 Mike Galbraith wrote:
Quoted 2 lines · Bartlomiej Zolnierkiewicz
I tested it on RT2860 and RT3070 chipsets already but I would need some help from people with RT2870 hardware to verify those changes (Mike? Marcin?).
I gave it a spin over java this morning, works fine here. This message brought to you by my 2870.
Thanks!
I'll keep you guys in the loop for the future changes as well. ;)