diff options
-rw-r--r-- | drivers/staging/winbond/Makefile | 1 | ||||
-rw-r--r-- | drivers/staging/winbond/adapter.h | 3 | ||||
-rw-r--r-- | drivers/staging/winbond/mds.c | 7 | ||||
-rw-r--r-- | drivers/staging/winbond/mds_f.h | 1 | ||||
-rw-r--r-- | drivers/staging/winbond/mto.c | 335 | ||||
-rw-r--r-- | drivers/staging/winbond/sme_api.c | 15 | ||||
-rw-r--r-- | drivers/staging/winbond/sme_api.h | 3 | ||||
-rw-r--r-- | drivers/staging/winbond/wblinux.c | 19 | ||||
-rw-r--r-- | drivers/staging/winbond/wblinux_f.h | 3 |
9 files changed, 0 insertions, 387 deletions
diff --git a/drivers/staging/winbond/Makefile b/drivers/staging/winbond/Makefile index 29c98bf1bc9..ed3180c25d4 100644 --- a/drivers/staging/winbond/Makefile +++ b/drivers/staging/winbond/Makefile | |||
@@ -7,7 +7,6 @@ w35und-objs := $(DRIVER_DIR)/wbusb.o $(DRIVER_DIR)/wb35reg.o $(DRIVER_DIR)/wb35r | |||
7 | phy_calibration.o \ | 7 | phy_calibration.o \ |
8 | reg.o \ | 8 | reg.o \ |
9 | rxisr.o \ | 9 | rxisr.o \ |
10 | sme_api.o \ | ||
11 | wbhal.o \ | 10 | wbhal.o \ |
12 | wblinux.o \ | 11 | wblinux.o \ |
13 | 12 | ||
diff --git a/drivers/staging/winbond/adapter.h b/drivers/staging/winbond/adapter.h index e67e034e938..11df483c890 100644 --- a/drivers/staging/winbond/adapter.h +++ b/drivers/staging/winbond/adapter.h | |||
@@ -15,10 +15,7 @@ | |||
15 | #define OS_CURRENT_TX_BYTE( _A ) _A->TxByteCount | 15 | #define OS_CURRENT_TX_BYTE( _A ) _A->TxByteCount |
16 | #define OS_EVENT_INDICATE( _A, _B, _F ) | 16 | #define OS_EVENT_INDICATE( _A, _B, _F ) |
17 | #define OS_PMKID_STATUS_EVENT( _A ) | 17 | #define OS_PMKID_STATUS_EVENT( _A ) |
18 | #define OS_RECEIVE_PACKET_INDICATE( _A, _D ) WBLinux_ReceivePacket( _A, _D ) | ||
19 | #define OS_RECEIVE_802_1X_PACKET_INDICATE( _A, _D ) EAP_ReceivePacket( _A, _D ) | 18 | #define OS_RECEIVE_802_1X_PACKET_INDICATE( _A, _D ) EAP_ReceivePacket( _A, _D ) |
20 | #define OS_GET_PACKET( _A, _D ) WBLINUX_GetNextPacket( _A, _D ) | ||
21 | #define OS_GET_PACKET_COMPLETE( _A, _D ) WBLINUX_GetNextPacketCompleted( _A, _D ) | ||
22 | #define OS_SEND_RESULT( _A, _ID, _R ) | 19 | #define OS_SEND_RESULT( _A, _ID, _R ) |
23 | 20 | ||
24 | #define WBLINUX_PACKET_ARRAY_SIZE (ETHERNET_TX_DESCRIPTORS*4) | 21 | #define WBLINUX_PACKET_ARRAY_SIZE (ETHERNET_TX_DESCRIPTORS*4) |
diff --git a/drivers/staging/winbond/mds.c b/drivers/staging/winbond/mds.c index 94f28ffff48..e680157c6ad 100644 --- a/drivers/staging/winbond/mds.c +++ b/drivers/staging/winbond/mds.c | |||
@@ -629,10 +629,3 @@ Mds_DurationSet( struct wb35_adapter * adapter, PDESCRIPTOR pDes, u8 *buffer | |||
629 | //--end 20061009 add | 629 | //--end 20061009 add |
630 | 630 | ||
631 | } | 631 | } |
632 | |||
633 | void MDS_EthernetPacketReceive( struct wb35_adapter * adapter, PRXLAYER1 pRxLayer1 ) | ||
634 | { | ||
635 | OS_RECEIVE_PACKET_INDICATE( adapter, pRxLayer1 ); | ||
636 | } | ||
637 | |||
638 | |||
diff --git a/drivers/staging/winbond/mds_f.h b/drivers/staging/winbond/mds_f.h index f243d7455c8..2e0f7a84a48 100644 --- a/drivers/staging/winbond/mds_f.h +++ b/drivers/staging/winbond/mds_f.h | |||
@@ -28,6 +28,5 @@ u16 MDS_GetPacketSize( struct wb35_adapter *adapter ); | |||
28 | void MDS_GetNextPacket( struct wb35_adapter *adapter, PDESCRIPTOR pDes ); | 28 | void MDS_GetNextPacket( struct wb35_adapter *adapter, PDESCRIPTOR pDes ); |
29 | void MDS_GetNextPacketComplete( struct wb35_adapter *adapter, PDESCRIPTOR pDes ); | 29 | void MDS_GetNextPacketComplete( struct wb35_adapter *adapter, PDESCRIPTOR pDes ); |
30 | void MDS_SendResult( struct wb35_adapter *adapter, u8 PacketId, unsigned char SendOK ); | 30 | void MDS_SendResult( struct wb35_adapter *adapter, u8 PacketId, unsigned char SendOK ); |
31 | void MDS_EthernetPacketReceive( struct wb35_adapter *adapter, PRXLAYER1 pRxLayer1 ); | ||
32 | 31 | ||
33 | #endif | 32 | #endif |
diff --git a/drivers/staging/winbond/mto.c b/drivers/staging/winbond/mto.c index c68c7f68597..612a95c554c 100644 --- a/drivers/staging/winbond/mto.c +++ b/drivers/staging/winbond/mto.c | |||
@@ -209,7 +209,6 @@ static int rate_tbl[13] = {0,1,2,5,11,6,9,12,18,24,36,48,54}; | |||
209 | static int TotalTxPkt = 0; | 209 | static int TotalTxPkt = 0; |
210 | static int TotalTxPktRetry = 0; | 210 | static int TotalTxPktRetry = 0; |
211 | static int TxPktPerAnt[3] = {0,0,0}; | 211 | static int TxPktPerAnt[3] = {0,0,0}; |
212 | static int RXRSSIANT[3] ={-70,-70,-70}; | ||
213 | static int TxPktRetryPerAnt[3] = {0,0,0}; | 212 | static int TxPktRetryPerAnt[3] = {0,0,0}; |
214 | //static int TxDominateFlag=false; | 213 | //static int TxDominateFlag=false; |
215 | static u8 old_antenna[4]={1 ,0 ,1 ,0}; | 214 | static u8 old_antenna[4]={1 ,0 ,1 ,0}; |
@@ -236,15 +235,11 @@ static RSSI2RATE RSSI2RateTbl[RSSI2RATE_SIZE] = | |||
236 | {-920, 11}, // 5.5M | 235 | {-920, 11}, // 5.5M |
237 | {-950, 4}, // 2M | 236 | {-950, 4}, // 2M |
238 | }; | 237 | }; |
239 | static u8 untogglecount; | ||
240 | static u8 last_rate_ant; //this is used for antenna backoff-hh | 238 | static u8 last_rate_ant; //this is used for antenna backoff-hh |
241 | 239 | ||
242 | u8 boSparseTxTraffic = false; | 240 | u8 boSparseTxTraffic = false; |
243 | 241 | ||
244 | void MTO_Init(MTO_FUNC_INPUT); | 242 | void MTO_Init(MTO_FUNC_INPUT); |
245 | void AntennaToggleInitiator(MTO_FUNC_INPUT); | ||
246 | void AntennaToggleState(MTO_FUNC_INPUT); | ||
247 | void TxPwrControl(MTO_FUNC_INPUT); | ||
248 | void GetFreshAntennaData(MTO_FUNC_INPUT); | 243 | void GetFreshAntennaData(MTO_FUNC_INPUT); |
249 | void TxRateReductionCtrl(MTO_FUNC_INPUT); | 244 | void TxRateReductionCtrl(MTO_FUNC_INPUT); |
250 | /** 1.1.31.1000 Turbo modify */ | 245 | /** 1.1.31.1000 Turbo modify */ |
@@ -258,7 +253,6 @@ u8 CalcNewRate(MTO_FUNC_INPUT, u8 old_rate, u32 retry_cnt, u32 tx_frag_cnt); | |||
258 | u8 GetMaxRateLevelFromRSSI(void); | 253 | u8 GetMaxRateLevelFromRSSI(void); |
259 | u8 MTO_GetTxFallbackRate(MTO_FUNC_INPUT); | 254 | u8 MTO_GetTxFallbackRate(MTO_FUNC_INPUT); |
260 | int Divide(int a, int b); | 255 | int Divide(int a, int b); |
261 | void multiagc(MTO_FUNC_INPUT, u8 high_gain_mode); | ||
262 | 256 | ||
263 | //=========================================================================== | 257 | //=========================================================================== |
264 | // MTO_Init -- | 258 | // MTO_Init -- |
@@ -544,27 +538,6 @@ void GetDTO_RxInfo(int index, MTO_FUNC_INPUT) | |||
544 | TotalTxPktRetry = 0; | 538 | TotalTxPktRetry = 0; |
545 | } | 539 | } |
546 | 540 | ||
547 | void OutputDebugInfo(int index1, int index2) | ||
548 | { | ||
549 | #ifdef _PE_DTO_DUMP_ | ||
550 | WBDEBUG(("[HHDTO]:Total Rx (%d)\t\t(%d) \n ", DTO_Rx_Info[0][index1], DTO_Rx_Info[0][index2])); | ||
551 | WBDEBUG(("[HHDTO]:RECEIVE RSSI: (%d)\t\t(%d) \n ", RXRSSIANT[index1], RXRSSIANT[index2])); | ||
552 | WBDEBUG(("[HHDTO]:TX packet correct rate: (%d)%%\t\t(%d)%% \n ",Divide(TxPktPerAnt[index1]*100,TxPktRetryPerAnt[index1]), Divide(TxPktPerAnt[index2]*100,TxPktRetryPerAnt[index2]))); | ||
553 | #endif | ||
554 | { | ||
555 | int tmp1, tmp2; | ||
556 | #ifdef _PE_DTO_DUMP_ | ||
557 | WBDEBUG(("[HHDTO]:Total Tx (%d)\t\t(%d) \n ", TxPktPerAnt[index1], TxPktPerAnt[index2])); | ||
558 | WBDEBUG(("[HHDTO]:Total Tx retry (%d)\t\t(%d) \n ", TxPktRetryPerAnt[index1], TxPktRetryPerAnt[index2])); | ||
559 | #endif | ||
560 | tmp1 = TxPktPerAnt[index1] + DTO_Rx_Info[0][index1]; | ||
561 | tmp2 = TxPktPerAnt[index2] + DTO_Rx_Info[0][index2]; | ||
562 | #ifdef _PE_DTO_DUMP_ | ||
563 | WBDEBUG(("[HHDTO]:Total Tx+RX (%d)\t\t(%d) \n ", tmp1, tmp2)); | ||
564 | #endif | ||
565 | } | ||
566 | } | ||
567 | |||
568 | unsigned char TxDominate(int index) | 541 | unsigned char TxDominate(int index) |
569 | { | 542 | { |
570 | int tmp; | 543 | int tmp; |
@@ -637,314 +610,6 @@ void GetFreshAntennaData(MTO_FUNC_INPUT) | |||
637 | 610 | ||
638 | int WB_PCR[2]; //packet correct rate | 611 | int WB_PCR[2]; //packet correct rate |
639 | 612 | ||
640 | void AntennaToggleState(MTO_FUNC_INPUT) | ||
641 | { | ||
642 | int decideantflag = 0; | ||
643 | u8 x; | ||
644 | s32 rssi; | ||
645 | |||
646 | if(MTO_ANT_DIVERSITY_ENABLE() != 1) | ||
647 | return; | ||
648 | x = hal_get_antenna_number(MTO_HAL()); | ||
649 | switch(MTO_TOGGLE_STATE()) | ||
650 | { | ||
651 | |||
652 | //Missing..... | ||
653 | case TOGGLE_STATE_IDLE: | ||
654 | case TOGGLE_STATE_BKOFF: | ||
655 | break;; | ||
656 | |||
657 | case TOGGLE_STATE_WAIT0://======== | ||
658 | GetDTO_RxInfo(x, MTO_FUNC_INPUT_DATA); | ||
659 | sme_get_rssi(MTO_FUNC_INPUT_DATA, &rssi); | ||
660 | RXRSSIANT[x] = rssi; | ||
661 | #ifdef _PE_DTO_DUMP_ | ||
662 | WBDEBUG(("[HHDTO] **wait0==== Collecting Ant%d--rssi=%d\n", x,RXRSSIANT[x])); | ||
663 | #endif | ||
664 | |||
665 | //change antenna and reset the data at changed antenna | ||
666 | x = (~x) & 0x01; | ||
667 | MTO_ANT_SEL() = x; | ||
668 | hal_set_antenna_number(MTO_HAL(), MTO_ANT_SEL()); | ||
669 | LOCAL_ANTENNA_NO() = x; | ||
670 | |||
671 | MTO_TOGGLE_STATE() = TOGGLE_STATE_WAIT1;//go to wait1 | ||
672 | ResetDTO_RxInfo(x, MTO_FUNC_INPUT_DATA); | ||
673 | break; | ||
674 | case TOGGLE_STATE_WAIT1://=====wait1 | ||
675 | //MTO_CNT_ANT(x) = hal_get_bss_pk_cnt(MTO_HAL()); | ||
676 | //RXRSSIANT[x] = hal_get_rssi(MTO_HAL()); | ||
677 | sme_get_rssi(MTO_FUNC_INPUT_DATA, &rssi); | ||
678 | RXRSSIANT[x] = rssi; | ||
679 | GetDTO_RxInfo(x, MTO_FUNC_INPUT_DATA); | ||
680 | #ifdef _PE_DTO_DUMP_ | ||
681 | WBDEBUG(("[HHDTO] **wait1==== Collecting Ant%d--rssi=%d\n", x,RXRSSIANT[x])); | ||
682 | #endif | ||
683 | MTO_TOGGLE_STATE() = TOGGLE_STATE_MAKEDESISION; | ||
684 | break; | ||
685 | case TOGGLE_STATE_MAKEDESISION: | ||
686 | #ifdef _PE_DTO_DUMP_ | ||
687 | WBDEBUG(("[HHDTO]:Ant--0-----------------1---\n")); | ||
688 | OutputDebugInfo(ANT0,ANT1); | ||
689 | #endif | ||
690 | //PDEBUG(("[HHDTO] **decision====\n ")); | ||
691 | |||
692 | //=====following is the decision produrce | ||
693 | // | ||
694 | // first: compare the rssi if difference >10 | ||
695 | // select the larger one | ||
696 | // ,others go to second | ||
697 | // second: comapre the tx+rx packet count if difference >100 | ||
698 | // use larger total packets antenna | ||
699 | // third::compare the tx PER if packets>20 | ||
700 | // if difference >5% using the bigger one | ||
701 | // | ||
702 | // fourth:compare the RX PER if packets>20 | ||
703 | // if PER difference <5% | ||
704 | // using old antenna | ||
705 | // | ||
706 | // | ||
707 | if (abs(RXRSSIANT[ANT0]-RXRSSIANT[ANT1]) > MTOPARA_RSSI_TH_FOR_ANTDIV())//====rssi_th | ||
708 | { | ||
709 | if (RXRSSIANT[ANT0]>RXRSSIANT[ANT1]) | ||
710 | { | ||
711 | decideantflag=1; | ||
712 | MTO_ANT_MAC() = ANT0; | ||
713 | } | ||
714 | else | ||
715 | { | ||
716 | decideantflag=1; | ||
717 | MTO_ANT_MAC() = ANT1; | ||
718 | } | ||
719 | #ifdef _PE_DTO_DUMP_ | ||
720 | WBDEBUG(("Select antenna by RSSI\n")); | ||
721 | #endif | ||
722 | } | ||
723 | else if (abs(TxPktPerAnt[ANT0] + DTO_Rx_Info[0][ANT0]-TxPktPerAnt[ANT1]-DTO_Rx_Info[0][ANT1])<50)//=====total packet_th | ||
724 | { | ||
725 | #ifdef _PE_DTO_DUMP_ | ||
726 | WBDEBUG(("Total tx/rx is close\n")); | ||
727 | #endif | ||
728 | if (TxDominate(ANT0) && TxDominate(ANT1)) | ||
729 | { | ||
730 | if ((TxPktPerAnt[ANT0]>10) && (TxPktPerAnt[ANT1]>10))//====tx packet_th | ||
731 | { | ||
732 | WB_PCR[ANT0]=Divide(TxPktPerAnt[ANT0]*100,TxPktRetryPerAnt[ANT0]); | ||
733 | WB_PCR[ANT1]=Divide(TxPktPerAnt[ANT1]*100,TxPktRetryPerAnt[ANT1]); | ||
734 | if (abs(WB_PCR[ANT0]-WB_PCR[ANT1])>5)// tx PER_th | ||
735 | { | ||
736 | #ifdef _PE_DTO_DUMP_ | ||
737 | WBDEBUG(("Decide by Tx correct rate\n")); | ||
738 | #endif | ||
739 | if (WB_PCR[ANT0]>WB_PCR[ANT1]) | ||
740 | { | ||
741 | decideantflag=1; | ||
742 | MTO_ANT_MAC() = ANT0; | ||
743 | } | ||
744 | else | ||
745 | { | ||
746 | decideantflag=1; | ||
747 | MTO_ANT_MAC() = ANT1; | ||
748 | } | ||
749 | } | ||
750 | else | ||
751 | { | ||
752 | decideantflag=0; | ||
753 | untogglecount++; | ||
754 | MTO_ANT_MAC() = old_antenna[0]; | ||
755 | } | ||
756 | } | ||
757 | else | ||
758 | { | ||
759 | decideantflag=0; | ||
760 | MTO_ANT_MAC() = old_antenna[0]; | ||
761 | } | ||
762 | } | ||
763 | else if ((DTO_Rx_Info[0][ANT0]>10)&&(DTO_Rx_Info[0][ANT1]>10))//rx packet th | ||
764 | { | ||
765 | #ifdef _PE_DTO_DUMP_ | ||
766 | WBDEBUG(("Decide by Rx\n")); | ||
767 | #endif | ||
768 | if (abs(DTO_Rx_Info[0][ANT0] - DTO_Rx_Info[0][ANT1])>50) | ||
769 | { | ||
770 | if (DTO_Rx_Info[0][ANT0] > DTO_Rx_Info[0][ANT1]) | ||
771 | { | ||
772 | decideantflag=1; | ||
773 | MTO_ANT_MAC() = ANT0; | ||
774 | } | ||
775 | else | ||
776 | { | ||
777 | decideantflag=1; | ||
778 | MTO_ANT_MAC() = ANT1; | ||
779 | } | ||
780 | } | ||
781 | else | ||
782 | { | ||
783 | decideantflag=0; | ||
784 | untogglecount++; | ||
785 | MTO_ANT_MAC() = old_antenna[0]; | ||
786 | } | ||
787 | } | ||
788 | else | ||
789 | { | ||
790 | decideantflag=0; | ||
791 | MTO_ANT_MAC() = old_antenna[0]; | ||
792 | } | ||
793 | } | ||
794 | else if ((TxPktPerAnt[ANT0]+DTO_Rx_Info[0][ANT0])>(TxPktPerAnt[ANT1]+DTO_Rx_Info[0][ANT1]))//use more packekts | ||
795 | { | ||
796 | #ifdef _PE_DTO_DUMP_ | ||
797 | WBDEBUG(("decide by total tx/rx : ANT 0\n")); | ||
798 | #endif | ||
799 | |||
800 | decideantflag=1; | ||
801 | MTO_ANT_MAC() = ANT0; | ||
802 | } | ||
803 | else | ||
804 | { | ||
805 | #ifdef _PE_DTO_DUMP_ | ||
806 | WBDEBUG(("decide by total tx/rx : ANT 1\n")); | ||
807 | #endif | ||
808 | decideantflag=1; | ||
809 | MTO_ANT_MAC() = ANT1; | ||
810 | |||
811 | } | ||
812 | //this is force ant toggle | ||
813 | if (decideantflag==1) | ||
814 | untogglecount=0; | ||
815 | |||
816 | untogglecount=untogglecount%4; | ||
817 | if (untogglecount==3) //change antenna | ||
818 | MTO_ANT_MAC() = ((~old_antenna[0]) & 0x1); | ||
819 | #ifdef _PE_DTO_DUMP_ | ||
820 | WBDEBUG(("[HHDTO]:==================untoggle-count=%d",untogglecount)); | ||
821 | #endif | ||
822 | |||
823 | |||
824 | |||
825 | |||
826 | //PDEBUG(("[HHDTO] **********************************DTO ENABLE=%d",MTO_ANT_DIVERSITY_ENABLE())); | ||
827 | if(MTO_ANT_DIVERSITY_ENABLE() == 1) | ||
828 | { | ||
829 | MTO_ANT_SEL() = MTO_ANT_MAC(); | ||
830 | hal_set_antenna_number(MTO_HAL(), MTO_ANT_SEL()); | ||
831 | LOCAL_ANTENNA_NO() = MTO_ANT_SEL(); | ||
832 | #ifdef _PE_DTO_DUMP_ | ||
833 | WBDEBUG(("[HHDTO] ==decision==*******antflag=%d******************selected antenna=%d\n",decideantflag,MTO_ANT_SEL())); | ||
834 | #endif | ||
835 | } | ||
836 | if (decideantflag) | ||
837 | { | ||
838 | old_antenna[3]=old_antenna[2];//store antenna info | ||
839 | old_antenna[2]=old_antenna[1]; | ||
840 | old_antenna[1]=old_antenna[0]; | ||
841 | old_antenna[0]= MTO_ANT_MAC(); | ||
842 | } | ||
843 | #ifdef _PE_DTO_DUMP_ | ||
844 | WBDEBUG(("[HHDTO]:**old antenna=[%d][%d][%d][%d]\n",old_antenna[0],old_antenna[1],old_antenna[2],old_antenna[3])); | ||
845 | #endif | ||
846 | if (old_antenna[0]!=old_antenna[1]) | ||
847 | AntennaToggleBkoffTimer=0; | ||
848 | else if (old_antenna[1]!=old_antenna[2]) | ||
849 | AntennaToggleBkoffTimer=1; | ||
850 | else if (old_antenna[2]!=old_antenna[3]) | ||
851 | AntennaToggleBkoffTimer=2; | ||
852 | else | ||
853 | AntennaToggleBkoffTimer=4; | ||
854 | |||
855 | #ifdef _PE_DTO_DUMP_ | ||
856 | WBDEBUG(("[HHDTO]:**back off timer=%d",AntennaToggleBkoffTimer)); | ||
857 | #endif | ||
858 | |||
859 | ResetDTO_RxInfo(MTO_ANT_MAC(), MTO_FUNC_INPUT_DATA); | ||
860 | if (AntennaToggleBkoffTimer==0 && decideantflag) | ||
861 | MTO_TOGGLE_STATE() = TOGGLE_STATE_WAIT0; | ||
862 | else | ||
863 | MTO_TOGGLE_STATE() = TOGGLE_STATE_IDLE; | ||
864 | break; | ||
865 | } | ||
866 | |||
867 | } | ||
868 | |||
869 | void multiagc(MTO_FUNC_INPUT, u8 high_gain_mode ) | ||
870 | { | ||
871 | s32 rssi; | ||
872 | hw_data_t *pHwData = MTO_HAL(); | ||
873 | |||
874 | sme_get_rssi(MTO_FUNC_INPUT_DATA, &rssi); | ||
875 | |||
876 | if( (RF_WB_242 == pHwData->phy_type) || | ||
877 | (RF_WB_242_1 == pHwData->phy_type) ) // 20060619.5 Add | ||
878 | { | ||
879 | if (high_gain_mode==1) | ||
880 | { | ||
881 | //hw_set_dxx_reg(phw_data, 0x0C, 0xf8f52230); | ||
882 | //hw_set_dxx_reg(phw_data, 0x20, 0x06C43440); | ||
883 | Wb35Reg_Write( pHwData, 0x100C, 0xF2F32232 ); // 940916 0xf8f52230 ); | ||
884 | Wb35Reg_Write( pHwData, 0x1020, 0x04cb3440 ); // 940915 0x06C43440 | ||
885 | } | ||
886 | else if (high_gain_mode==0) | ||
887 | { | ||
888 | //hw_set_dxx_reg(phw_data, 0x0C, 0xEEEE000D); | ||
889 | //hw_set_dxx_reg(phw_data, 0x20, 0x06c41440); | ||
890 | Wb35Reg_Write( pHwData, 0x100C, 0xEEEE000D ); | ||
891 | Wb35Reg_Write( pHwData, 0x1020, 0x04cb1440 ); // 940915 0x06c41440 | ||
892 | } | ||
893 | #ifdef _PE_DTO_DUMP_ | ||
894 | WBDEBUG(("[HHDTOAGC] **rssi=%d, high gain mode=%d", rssi, high_gain_mode)); | ||
895 | #endif | ||
896 | } | ||
897 | } | ||
898 | |||
899 | void TxPwrControl(MTO_FUNC_INPUT) | ||
900 | { | ||
901 | s32 rssi; | ||
902 | hw_data_t *pHwData = MTO_HAL(); | ||
903 | |||
904 | sme_get_rssi(MTO_FUNC_INPUT_DATA, &rssi); | ||
905 | if( (RF_WB_242 == pHwData->phy_type) || | ||
906 | (RF_WB_242_1 == pHwData->phy_type) ) // 20060619.5 Add | ||
907 | { | ||
908 | static u8 high_gain_mode; //this is for winbond RF switch LNA | ||
909 | //using different register setting | ||
910 | |||
911 | if (high_gain_mode==1) | ||
912 | { | ||
913 | if( rssi > MTO_DATA().RSSI_high ) | ||
914 | { | ||
915 | //hw_set_dxx_reg(phw_data, 0x0C, 0xf8f52230); | ||
916 | //hw_set_dxx_reg(phw_data, 0x20, 0x05541640); | ||
917 | high_gain_mode=0; | ||
918 | } | ||
919 | else | ||
920 | { | ||
921 | //hw_set_dxx_reg(phw_data, 0x0C, 0xf8f51830); | ||
922 | //hw_set_dxx_reg(phw_data, 0x20, 0x05543E40); | ||
923 | high_gain_mode=1; | ||
924 | } | ||
925 | } | ||
926 | else //if (high_gain_mode==0) | ||
927 | { | ||
928 | if( rssi < MTO_DATA().RSSI_low ) | ||
929 | { | ||
930 | //hw_set_dxx_reg(phw_data, 0x0C, 0xf8f51830); | ||
931 | //hw_set_dxx_reg(phw_data, 0x20, 0x05543E40); | ||
932 | high_gain_mode=1; | ||
933 | } | ||
934 | else | ||
935 | { | ||
936 | //hw_set_dxx_reg(phw_data, 0x0C, 0xf8f52230); | ||
937 | //hw_set_dxx_reg(phw_data, 0x20, 0x05541640); | ||
938 | high_gain_mode=0; | ||
939 | } | ||
940 | } | ||
941 | |||
942 | // Always high gain 20051014. Using the initial value only. | ||
943 | multiagc(MTO_FUNC_INPUT_DATA, high_gain_mode); | ||
944 | } | ||
945 | } | ||
946 | |||
947 | |||
948 | u8 CalcNewRate(MTO_FUNC_INPUT, u8 old_rate, u32 retry_cnt, u32 tx_frag_cnt) | 613 | u8 CalcNewRate(MTO_FUNC_INPUT, u8 old_rate, u32 retry_cnt, u32 tx_frag_cnt) |
949 | { | 614 | { |
950 | int i; | 615 | int i; |
diff --git a/drivers/staging/winbond/sme_api.c b/drivers/staging/winbond/sme_api.c deleted file mode 100644 index 6452d156431..00000000000 --- a/drivers/staging/winbond/sme_api.c +++ /dev/null | |||
@@ -1,15 +0,0 @@ | |||
1 | //------------------------------------------------------------------------------------ | ||
2 | // sme_api.c | ||
3 | // | ||
4 | // Copyright(C) 2002 Winbond Electronics Corp. | ||
5 | // | ||
6 | // | ||
7 | //------------------------------------------------------------------------------------ | ||
8 | #include "os_common.h" | ||
9 | #include <linux/kernel.h> | ||
10 | |||
11 | s8 sme_get_rssi(void *pcore_data, s32 *prssi) | ||
12 | { | ||
13 | BUG(); | ||
14 | return 0; | ||
15 | } | ||
diff --git a/drivers/staging/winbond/sme_api.h b/drivers/staging/winbond/sme_api.h index 33183dae59f..188a2532bbf 100644 --- a/drivers/staging/winbond/sme_api.h +++ b/drivers/staging/winbond/sme_api.h | |||
@@ -56,9 +56,6 @@ s8 sme_set_fragment_threshold(void *pcore_data, u32 threshold); | |||
56 | s8 sme_get_rts_threshold(void *pcore_data, u32 *pthreshold); | 56 | s8 sme_get_rts_threshold(void *pcore_data, u32 *pthreshold); |
57 | s8 sme_set_rts_threshold(void *pcore_data, u32 threshold); | 57 | s8 sme_set_rts_threshold(void *pcore_data, u32 threshold); |
58 | 58 | ||
59 | // OID_802_11_RSSI | ||
60 | s8 sme_get_rssi(void *pcore_data, s32 *prssi); | ||
61 | |||
62 | // OID_802_11_CONFIGURATION | 59 | // OID_802_11_CONFIGURATION |
63 | s8 sme_get_beacon_period(void *pcore_data, u16 *pbeacon_period); | 60 | s8 sme_get_beacon_period(void *pcore_data, u16 *pbeacon_period); |
64 | s8 sme_set_beacon_period(void *pcore_data, u16 beacon_period); | 61 | s8 sme_set_beacon_period(void *pcore_data, u16 beacon_period); |
diff --git a/drivers/staging/winbond/wblinux.c b/drivers/staging/winbond/wblinux.c index 1054098a641..d6894f9da83 100644 --- a/drivers/staging/winbond/wblinux.c +++ b/drivers/staging/winbond/wblinux.c | |||
@@ -24,25 +24,6 @@ WBLINUX_Initial(struct wb35_adapter * adapter) | |||
24 | } | 24 | } |
25 | 25 | ||
26 | void | 26 | void |
27 | WBLinux_ReceivePacket(struct wb35_adapter * adapter, PRXLAYER1 pRxLayer1) | ||
28 | { | ||
29 | BUG(); | ||
30 | } | ||
31 | |||
32 | |||
33 | void | ||
34 | WBLINUX_GetNextPacket(struct wb35_adapter * adapter, PDESCRIPTOR pDes) | ||
35 | { | ||
36 | BUG(); | ||
37 | } | ||
38 | |||
39 | void | ||
40 | WBLINUX_GetNextPacketCompleted(struct wb35_adapter * adapter, PDESCRIPTOR pDes) | ||
41 | { | ||
42 | BUG(); | ||
43 | } | ||
44 | |||
45 | void | ||
46 | WBLINUX_Destroy(struct wb35_adapter * adapter) | 27 | WBLINUX_Destroy(struct wb35_adapter * adapter) |
47 | { | 28 | { |
48 | WBLINUX_stop( adapter ); | 29 | WBLINUX_stop( adapter ); |
diff --git a/drivers/staging/winbond/wblinux_f.h b/drivers/staging/winbond/wblinux_f.h index a2b7e4cd09a..ed2676b22f6 100644 --- a/drivers/staging/winbond/wblinux_f.h +++ b/drivers/staging/winbond/wblinux_f.h | |||
@@ -9,11 +9,8 @@ | |||
9 | // | 9 | // |
10 | // wblinux_f.h | 10 | // wblinux_f.h |
11 | // | 11 | // |
12 | void WBLinux_ReceivePacket( struct wb35_adapter *adapter, PRXLAYER1 pRxLayer1 ); | ||
13 | unsigned char WBLINUX_Initial( struct wb35_adapter *adapter ); | 12 | unsigned char WBLINUX_Initial( struct wb35_adapter *adapter ); |
14 | int wb35_start_xmit(struct sk_buff *skb, struct net_device *netdev ); | 13 | int wb35_start_xmit(struct sk_buff *skb, struct net_device *netdev ); |
15 | void WBLINUX_GetNextPacket( struct wb35_adapter *adapter, PDESCRIPTOR pDes ); | ||
16 | void WBLINUX_GetNextPacketCompleted( struct wb35_adapter *adapter, PDESCRIPTOR pDes ); | ||
17 | void WBLINUX_stop( struct wb35_adapter *adapter ); | 14 | void WBLINUX_stop( struct wb35_adapter *adapter ); |
18 | void WBLINUX_Destroy( struct wb35_adapter *adapter ); | 15 | void WBLINUX_Destroy( struct wb35_adapter *adapter ); |
19 | void wb35_set_multicast( struct net_device *netdev ); | 16 | void wb35_set_multicast( struct net_device *netdev ); |