Merge tag 'for-linus-3.16-merge-window' of git://git.kernel.org/pub/scm/linux/kernel...
[deliverable/linux.git] / drivers / staging / vt6656 / baseband.c
index 39bdd4b496e13156e1d6f84d555c55d60fc3efe0..694e34a5ff9048f135e2304198e75a9ffe4f06f8 100644 (file)
 #include "mac.h"
 #include "baseband.h"
 #include "rf.h"
-#include "control.h"
+#include "usbpipe.h"
 #include "datarate.h"
 
-static int          msglevel                =MSG_LEVEL_INFO;
-//static int          msglevel                =MSG_LEVEL_DEBUG;
-
 static u8 abyVT3184_AGC[] = {
     0x00,   //0
     0x00,   //1
@@ -635,20 +632,6 @@ static u8 abyVT3184_VT3226D0[] = {
 static const u16 awcFrameTime[MAX_RATE] =
 {10, 20, 55, 110, 24, 36, 48, 72, 96, 144, 192, 216};
 
-/*
-static
-unsigned long
-s_ulGetLowSQ3(PSDevice pDevice);
-
-static
-unsigned long
-s_ulGetRatio(PSDevice pDevice);
-
-static
-void
-s_vClearSQ3Value(PSDevice pDevice);
-*/
-
 /*
  * Description: Calculate data frame transmitting time
  *
@@ -882,7 +865,7 @@ void BBvSetAntennaMode(struct vnt_private *priv, u8 antenna_mode)
                break;
        }
 
-       CONTROLnsRequestOut(priv, MESSAGE_TYPE_SET_ANTMD,
+       vnt_control_out(priv, MESSAGE_TYPE_SET_ANTMD,
                (u16)antenna_mode, 0, 0, NULL);
 }
 
@@ -903,14 +886,14 @@ void BBvSetAntennaMode(struct vnt_private *priv, u8 antenna_mode)
 int BBbVT3184Init(struct vnt_private *priv)
 {
        int status;
-       u16 lenght;
+       u16 length;
        u8 *addr;
        u8 *agc;
-       u16 lenght_agc;
+       u16 length_agc;
        u8 array[256];
        u8 data;
 
-       status = CONTROLnsRequestIn(priv, MESSAGE_TYPE_READ, 0,
+       status = vnt_control_in(priv, MESSAGE_TYPE_READ, 0,
                MESSAGE_REQUEST_EEPROM, EEP_MAX_CONTEXT_SIZE,
                                                priv->abyEEPROM);
        if (status != STATUS_SUCCESS)
@@ -924,20 +907,20 @@ int BBbVT3184Init(struct vnt_private *priv)
                        (priv->abyEEPROM[EEP_OFS_ZONETYPE] != 0x00)) {
                        priv->abyEEPROM[EEP_OFS_ZONETYPE] = 0;
                        priv->abyEEPROM[EEP_OFS_MAXCHANNEL] = 0x0B;
-                       DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO
-                                               "Init Zone Type :USA\n");
+
+                       dev_dbg(&priv->usb->dev, "Init Zone Type :USA\n");
                } else if ((priv->config_file.ZoneType == 1) &&
                        (priv->abyEEPROM[EEP_OFS_ZONETYPE] != 0x01)) {
                        priv->abyEEPROM[EEP_OFS_ZONETYPE] = 0x01;
                        priv->abyEEPROM[EEP_OFS_MAXCHANNEL] = 0x0D;
-                       DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO
-                                               "Init Zone Type :Japan\n");
+
+                       dev_dbg(&priv->usb->dev, "Init Zone Type :Japan\n");
                } else if ((priv->config_file.ZoneType == 2) &&
                        (priv->abyEEPROM[EEP_OFS_ZONETYPE] != 0x02)) {
                        priv->abyEEPROM[EEP_OFS_ZONETYPE] = 0x02;
                        priv->abyEEPROM[EEP_OFS_MAXCHANNEL] = 0x0D;
-                       DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO
-                                               "Init Zone Type :Europe\n");
+
+                       dev_dbg(&priv->usb->dev, "Init Zone Type :Europe\n");
                } else {
                        if (priv->config_file.ZoneType !=
                                        priv->abyEEPROM[EEP_OFS_ZONETYPE])
@@ -957,18 +940,17 @@ int BBbVT3184Init(struct vnt_private *priv)
 
        priv->byRFType = priv->abyEEPROM[EEP_OFS_RFTYPE];
 
-       DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Zone Type %x\n",
-                                                       priv->byZoneType);
+       dev_dbg(&priv->usb->dev, "Zone Type %x\n", priv->byZoneType);
 
-       DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"RF Type %d\n", priv->byRFType);
+       dev_dbg(&priv->usb->dev, "RF Type %d\n", priv->byRFType);
 
        if ((priv->byRFType == RF_AL2230) ||
                                (priv->byRFType == RF_AL2230S)) {
                priv->byBBRxConf = abyVT3184_AL2230[10];
-               lenght = sizeof(abyVT3184_AL2230);
+               length = sizeof(abyVT3184_AL2230);
                addr = abyVT3184_AL2230;
                agc = abyVT3184_AGC;
-               lenght_agc = sizeof(abyVT3184_AGC);
+               length_agc = sizeof(abyVT3184_AGC);
 
                priv->abyBBVGA[0] = 0x1C;
                priv->abyBBVGA[1] = 0x10;
@@ -980,10 +962,10 @@ int BBbVT3184Init(struct vnt_private *priv)
                priv->ldBmThreshold[3] = 0;
        } else if (priv->byRFType == RF_AIROHA7230) {
                priv->byBBRxConf = abyVT3184_AL2230[10];
-               lenght = sizeof(abyVT3184_AL2230);
+               length = sizeof(abyVT3184_AL2230);
                addr = abyVT3184_AL2230;
                agc = abyVT3184_AGC;
-               lenght_agc = sizeof(abyVT3184_AGC);
+               length_agc = sizeof(abyVT3184_AGC);
 
                addr[0xd7] = 0x06;
 
@@ -998,10 +980,10 @@ int BBbVT3184Init(struct vnt_private *priv)
        } else if ((priv->byRFType == RF_VT3226) ||
                        (priv->byRFType == RF_VT3226D0)) {
                priv->byBBRxConf = abyVT3184_VT3226D0[10];
-               lenght = sizeof(abyVT3184_VT3226D0);
+               length = sizeof(abyVT3184_VT3226D0);
                addr = abyVT3184_VT3226D0;
                agc = abyVT3184_AGC;
-               lenght_agc = sizeof(abyVT3184_AGC);
+               length_agc = sizeof(abyVT3184_AGC);
 
                priv->abyBBVGA[0] = 0x20;
                priv->abyBBVGA[1] = 0x10;
@@ -1015,10 +997,10 @@ int BBbVT3184Init(struct vnt_private *priv)
                MACvRegBitsOn(priv, MAC_REG_SOFTPWRCTL2, SOFTPWRCTL_RFLEOPT);
        } else if ((priv->byRFType == RF_VT3342A0)) {
                priv->byBBRxConf = abyVT3184_VT3226D0[10];
-               lenght = sizeof(abyVT3184_VT3226D0);
+               length = sizeof(abyVT3184_VT3226D0);
                addr = abyVT3184_VT3226D0;
                agc = abyVT3184_AGC;
-               lenght_agc = sizeof(abyVT3184_AGC);
+               length_agc = sizeof(abyVT3184_AGC);
 
                priv->abyBBVGA[0] = 0x20;
                priv->abyBBVGA[1] = 0x10;
@@ -1034,40 +1016,39 @@ int BBbVT3184Init(struct vnt_private *priv)
                return true;
        }
 
-       memcpy(array, addr, lenght);
+       memcpy(array, addr, length);
 
-       CONTROLnsRequestOut(priv, MESSAGE_TYPE_WRITE, 0,
-               MESSAGE_REQUEST_BBREG, lenght, array);
+       vnt_control_out(priv, MESSAGE_TYPE_WRITE, 0,
+               MESSAGE_REQUEST_BBREG, length, array);
 
-       memcpy(array, agc, lenght_agc);
+       memcpy(array, agc, length_agc);
 
-       CONTROLnsRequestOut(priv, MESSAGE_TYPE_WRITE, 0,
-               MESSAGE_REQUEST_BBAGC, lenght_agc, array);
+       vnt_control_out(priv, MESSAGE_TYPE_WRITE, 0,
+               MESSAGE_REQUEST_BBAGC, length_agc, array);
 
        if ((priv->byRFType == RF_VT3226) ||
                (priv->byRFType == RF_VT3342A0)) {
-               ControlvWriteByte(priv, MESSAGE_REQUEST_MACREG,
+               vnt_control_out_u8(priv, MESSAGE_REQUEST_MACREG,
                                                MAC_REG_ITRTMSET, 0x23);
                MACvRegBitsOn(priv, MAC_REG_PAPEDELAY, 0x01);
        } else if (priv->byRFType == RF_VT3226D0) {
-               ControlvWriteByte(priv, MESSAGE_REQUEST_MACREG,
+               vnt_control_out_u8(priv, MESSAGE_REQUEST_MACREG,
                                                MAC_REG_ITRTMSET, 0x11);
                MACvRegBitsOn(priv, MAC_REG_PAPEDELAY, 0x01);
        }
 
-       ControlvWriteByte(priv, MESSAGE_REQUEST_BBREG, 0x04, 0x7f);
-       ControlvWriteByte(priv, MESSAGE_REQUEST_BBREG, 0x0d, 0x01);
-
-       RFbRFTableDownload(priv);
+       vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x04, 0x7f);
+       vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x0d, 0x01);
 
+       vnt_rf_table_download(priv);
 
        /* Fix for TX USB resets from vendors driver */
-       CONTROLnsRequestIn(priv, MESSAGE_TYPE_READ, USB_REG4,
+       vnt_control_in(priv, MESSAGE_TYPE_READ, USB_REG4,
                MESSAGE_REQUEST_MEM, sizeof(data), &data);
 
        data |= 0x2;
 
-       CONTROLnsRequestOut(priv, MESSAGE_TYPE_WRITE, USB_REG4,
+       vnt_control_out(priv, MESSAGE_TYPE_WRITE, USB_REG4,
                MESSAGE_REQUEST_MEM, sizeof(data), &data);
 
        return true;
@@ -1094,18 +1075,18 @@ void BBvSetShortSlotTime(struct vnt_private *priv)
        else
                priv->byBBRxConf |= 0x20;
 
-       ControlvReadByte(priv, MESSAGE_REQUEST_BBREG, 0xe7, &bb_vga);
+       vnt_control_in_u8(priv, MESSAGE_REQUEST_BBREG, 0xe7, &bb_vga);
 
        if (bb_vga == priv->abyBBVGA[0])
                priv->byBBRxConf |= 0x20;
 
-       ControlvWriteByte(priv, MESSAGE_REQUEST_BBREG, 0x0a, priv->byBBRxConf);
+       vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x0a, priv->byBBRxConf);
 }
 
 void BBvSetVGAGainOffset(struct vnt_private *priv, u8 data)
 {
 
-       ControlvWriteByte(priv, MESSAGE_REQUEST_BBREG, 0xE7, data);
+       vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0xE7, data);
 
        /* patch for 3253B0 Baseband with Cardbus module */
        if (priv->bShortSlotTime)
@@ -1113,7 +1094,7 @@ void BBvSetVGAGainOffset(struct vnt_private *priv, u8 data)
        else
                priv->byBBRxConf |= 0x20; /* 0010 0000 */
 
-       ControlvWriteByte(priv, MESSAGE_REQUEST_BBREG, 0x0a, priv->byBBRxConf);
+       vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x0a, priv->byBBRxConf);
 }
 
 /*
@@ -1130,614 +1111,279 @@ void BBvSetVGAGainOffset(struct vnt_private *priv, u8 data)
  */
 void BBvSetDeepSleep(struct vnt_private *priv)
 {
-       ControlvWriteByte(priv, MESSAGE_REQUEST_BBREG, 0x0c, 0x17);/* CR12 */
-       ControlvWriteByte(priv, MESSAGE_REQUEST_BBREG, 0x0d, 0xB9);/* CR13 */
+       vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x0c, 0x17);/* CR12 */
+       vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x0d, 0xB9);/* CR13 */
 }
 
 void BBvExitDeepSleep(struct vnt_private *priv)
 {
-       ControlvWriteByte(priv, MESSAGE_REQUEST_BBREG, 0x0c, 0x00);/* CR12 */
-       ControlvWriteByte(priv, MESSAGE_REQUEST_BBREG, 0x0d, 0x01);/* CR13 */
-}
-
-static unsigned long s_ulGetLowSQ3(struct vnt_private *pDevice)
-{
-       int ii;
-       unsigned long ulSQ3 = 0;
-       unsigned long ulMaxPacket;
-
-    ulMaxPacket = pDevice->aulPktNum[RATE_54M];
-       if (pDevice->aulPktNum[RATE_54M] != 0)
-        ulSQ3 = pDevice->aulSQ3Val[RATE_54M] / pDevice->aulPktNum[RATE_54M];
-
-       for (ii = RATE_48M; ii >= RATE_6M; ii--)
-               if (pDevice->aulPktNum[ii] > ulMaxPacket) {
-            ulMaxPacket = pDevice->aulPktNum[ii];
-            ulSQ3 = pDevice->aulSQ3Val[ii] / pDevice->aulPktNum[ii];
-        }
-
-    return ulSQ3;
-}
-
-static unsigned long s_ulGetRatio(struct vnt_private *pDevice)
-{
-       int ii, jj;
-       unsigned long ulRatio = 0;
-       unsigned long ulMaxPacket;
-       unsigned long ulPacketNum;
-
-    //This is a thousand-ratio
-    ulMaxPacket = pDevice->aulPktNum[RATE_54M];
-    if ( pDevice->aulPktNum[RATE_54M] != 0 ) {
-        ulPacketNum = pDevice->aulPktNum[RATE_54M];
-        ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
-        ulRatio += TOP_RATE_54M;
-    }
-       for (ii = RATE_48M; ii >= RATE_1M; ii--)
-        if ( pDevice->aulPktNum[ii] > ulMaxPacket ) {
-            ulPacketNum = 0;
-            for ( jj=RATE_54M;jj>=ii;jj--)
-                ulPacketNum += pDevice->aulPktNum[jj];
-            ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
-            ulRatio += TOP_RATE_48M;
-            ulMaxPacket = pDevice->aulPktNum[ii];
-        }
-
-    return ulRatio;
-}
-
-static void s_vClearSQ3Value(struct vnt_private *pDevice)
-{
-    int ii;
-    pDevice->uDiversityCnt = 0;
-
-    for ( ii=RATE_1M;ii<MAX_RATE;ii++) {
-        pDevice->aulPktNum[ii] = 0;
-        pDevice->aulSQ3Val[ii] = 0;
-    }
-}
-
-/*
- * Description: Antenna Diversity
- *
- * Parameters:
- *  In:
- *      pDevice          - Device Structure
- *      byRSR            - RSR from received packet
- *      bySQ3            - SQ3 value from received packet
- *  Out:
- *      none
- *
- * Return Value: none
- *
- */
-
-void BBvAntennaDiversity(struct vnt_private *pDevice,
-       u8 byRxRate, u8 bySQ3)
-{
-
-    pDevice->uDiversityCnt++;
-    DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"pDevice->uDiversityCnt = %d\n", (int)pDevice->uDiversityCnt);
-
-    if (byRxRate == 2) {
-        pDevice->aulPktNum[RATE_1M]++;
-    }
-    else if (byRxRate==4) {
-        pDevice->aulPktNum[RATE_2M]++;
-    }
-    else if (byRxRate==11) {
-        pDevice->aulPktNum[RATE_5M]++;
-    }
-    else if (byRxRate==22) {
-        pDevice->aulPktNum[RATE_11M]++;
-    }
-    else if(byRxRate==12){
-        pDevice->aulPktNum[RATE_6M]++;
-        pDevice->aulSQ3Val[RATE_6M] += bySQ3;
-    }
-    else if(byRxRate==18){
-        pDevice->aulPktNum[RATE_9M]++;
-        pDevice->aulSQ3Val[RATE_9M] += bySQ3;
-    }
-    else if(byRxRate==24){
-        pDevice->aulPktNum[RATE_12M]++;
-        pDevice->aulSQ3Val[RATE_12M] += bySQ3;
-    }
-    else if(byRxRate==36){
-        pDevice->aulPktNum[RATE_18M]++;
-        pDevice->aulSQ3Val[RATE_18M] += bySQ3;
-    }
-    else if(byRxRate==48){
-        pDevice->aulPktNum[RATE_24M]++;
-        pDevice->aulSQ3Val[RATE_24M] += bySQ3;
-    }
-    else if(byRxRate==72){
-        pDevice->aulPktNum[RATE_36M]++;
-        pDevice->aulSQ3Val[RATE_36M] += bySQ3;
-    }
-    else if(byRxRate==96){
-        pDevice->aulPktNum[RATE_48M]++;
-        pDevice->aulSQ3Val[RATE_48M] += bySQ3;
-    }
-    else if(byRxRate==108){
-        pDevice->aulPktNum[RATE_54M]++;
-        pDevice->aulSQ3Val[RATE_54M] += bySQ3;
-    }
-
-    if (pDevice->byAntennaState == 0) {
-
-        if (pDevice->uDiversityCnt > pDevice->ulDiversityNValue) {
-            DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"ulDiversityNValue=[%d],54M-[%d]\n",(int)pDevice->ulDiversityNValue, (int)pDevice->aulPktNum[RATE_54M]);
-
-            pDevice->ulSQ3_State0 = s_ulGetLowSQ3(pDevice);
-            pDevice->ulRatio_State0 = s_ulGetRatio(pDevice);
-            DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"SQ3_State0, SQ3= [%08x] rate = [%08x]\n",(int)pDevice->ulSQ3_State0,(int)pDevice->ulRatio_State0);
-
-            if ( ((pDevice->aulPktNum[RATE_54M] < pDevice->ulDiversityNValue/2) &&
-                  (pDevice->ulSQ3_State0 > pDevice->ulSQ3TH) ) ||
-                 (pDevice->ulSQ3_State0 == 0 ) )  {
-
-                if ( pDevice->byTMax == 0 )
-                    return;
-
-               bScheduleCommand((void *) pDevice,
-                                WLAN_CMD_CHANGE_ANTENNA,
-                                NULL);
-
-                pDevice->byAntennaState = 1;
-
-                del_timer(&pDevice->TimerSQ3Tmax3);
-                del_timer(&pDevice->TimerSQ3Tmax2);
-                pDevice->TimerSQ3Tmax1.expires =  RUN_AT(pDevice->byTMax * HZ);
-                add_timer(&pDevice->TimerSQ3Tmax1);
-
-            } else {
-                pDevice->TimerSQ3Tmax3.expires =  RUN_AT(pDevice->byTMax3 * HZ);
-                add_timer(&pDevice->TimerSQ3Tmax3);
-            }
-            s_vClearSQ3Value(pDevice);
-
-        }
-    } else { //byAntennaState == 1
-
-        if (pDevice->uDiversityCnt > pDevice->ulDiversityMValue) {
-
-            del_timer(&pDevice->TimerSQ3Tmax1);
-            pDevice->ulSQ3_State1 = s_ulGetLowSQ3(pDevice);
-            pDevice->ulRatio_State1 = s_ulGetRatio(pDevice);
-            DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"SQ3_State1, rate0 = %08x,rate1 = %08x\n",(int)pDevice->ulRatio_State0,(int)pDevice->ulRatio_State1);
-
-            if ( ((pDevice->ulSQ3_State1 == 0) && (pDevice->ulSQ3_State0 != 0)) ||
-                 ((pDevice->ulSQ3_State1 == 0) && (pDevice->ulSQ3_State0 == 0) && (pDevice->ulRatio_State1 < pDevice->ulRatio_State0)) ||
-                 ((pDevice->ulSQ3_State1 != 0) && (pDevice->ulSQ3_State0 != 0) && (pDevice->ulSQ3_State0 < pDevice->ulSQ3_State1))
-               ) {
-
-               bScheduleCommand((void *) pDevice,
-                                WLAN_CMD_CHANGE_ANTENNA,
-                                NULL);
-
-                pDevice->TimerSQ3Tmax3.expires =  RUN_AT(pDevice->byTMax3 * HZ);
-                pDevice->TimerSQ3Tmax2.expires =  RUN_AT(pDevice->byTMax2 * HZ);
-                add_timer(&pDevice->TimerSQ3Tmax3);
-                add_timer(&pDevice->TimerSQ3Tmax2);
-
-            }
-            pDevice->byAntennaState = 0;
-            s_vClearSQ3Value(pDevice);
-        }
-    } //byAntennaState
+       vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x0c, 0x00);/* CR12 */
+       vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0x0d, 0x01);/* CR13 */
 }
 
-/*+
- *
- * Description:
- *  Timer for SQ3 antenna diversity
- *
- * Parameters:
- *  In:
- *      pvSysSpec1
- *      hDeviceContext - Pointer to the adapter
- *      pvSysSpec2
- *      pvSysSpec3
- *  Out:
- *      none
- *
- * Return Value: none
- *
--*/
-
-void TimerSQ3CallBack(struct vnt_private *pDevice)
+void BBvUpdatePreEDThreshold(struct vnt_private *priv, int scanning)
 {
+       u8 cr_201 = 0x0, cr_206 = 0x0;
+       u8 ed_inx = priv->byBBPreEDIndex;
+
+       switch (priv->byRFType) {
+       case RF_AL2230:
+       case RF_AL2230S:
+       case RF_AIROHA7230:
+               if (scanning) { /* Max sensitivity */
+                       ed_inx = 0;
+                       cr_206 = 0x30;
+                       break;
+               }
 
-    DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"TimerSQ3CallBack...");
-    spin_lock_irq(&pDevice->lock);
-
-    bScheduleCommand((void *) pDevice, WLAN_CMD_CHANGE_ANTENNA, NULL);
-    pDevice->byAntennaState = 0;
-    s_vClearSQ3Value(pDevice);
-    pDevice->TimerSQ3Tmax3.expires =  RUN_AT(pDevice->byTMax3 * HZ);
-    pDevice->TimerSQ3Tmax2.expires =  RUN_AT(pDevice->byTMax2 * HZ);
-    add_timer(&pDevice->TimerSQ3Tmax3);
-    add_timer(&pDevice->TimerSQ3Tmax2);
-
-    spin_unlock_irq(&pDevice->lock);
-}
-
-/*+
- *
- * Description:
- *  Timer for SQ3 antenna diversity
- *
- * Parameters:
- *  In:
- *      pvSysSpec1
- *      hDeviceContext - Pointer to the adapter
- *      pvSysSpec2
- *      pvSysSpec3
- *  Out:
- *      none
- *
- * Return Value: none
- *
--*/
+               if (priv->byBBPreEDRSSI <= 45) {
+                       ed_inx = 20;
+                       cr_201 = 0xff;
+               } else if (priv->byBBPreEDRSSI <= 46) {
+                       ed_inx = 19;
+                       cr_201 = 0x1a;
+               } else if (priv->byBBPreEDRSSI <= 47) {
+                       ed_inx = 18;
+                       cr_201 = 0x15;
+               } else if (priv->byBBPreEDRSSI <= 49) {
+                       ed_inx = 17;
+                       cr_201 = 0xe;
+               } else if (priv->byBBPreEDRSSI <= 51) {
+                       ed_inx = 16;
+                       cr_201 = 0x9;
+               } else if (priv->byBBPreEDRSSI <= 53) {
+                       ed_inx = 15;
+                       cr_201 = 0x6;
+               } else if (priv->byBBPreEDRSSI <= 55) {
+                       ed_inx = 14;
+                       cr_201 = 0x3;
+               } else if (priv->byBBPreEDRSSI <= 56) {
+                       ed_inx = 13;
+                       cr_201 = 0x2;
+                       cr_206 = 0xa0;
+               } else if (priv->byBBPreEDRSSI <= 57) {
+                       ed_inx = 12;
+                       cr_201 = 0x2;
+                       cr_206 = 0x20;
+               } else if (priv->byBBPreEDRSSI <= 58) {
+                       ed_inx = 11;
+                       cr_201 = 0x1;
+                       cr_206 = 0xa0;
+               } else if (priv->byBBPreEDRSSI <= 59) {
+                       ed_inx = 10;
+                       cr_201 = 0x1;
+                       cr_206 = 0x54;
+               } else if (priv->byBBPreEDRSSI <= 60) {
+                       ed_inx = 9;
+                       cr_201 = 0x1;
+                       cr_206 = 0x18;
+               } else if (priv->byBBPreEDRSSI <= 61) {
+                       ed_inx = 8;
+                       cr_206 = 0xe3;
+               } else if (priv->byBBPreEDRSSI <= 62) {
+                       ed_inx = 7;
+                       cr_206 = 0xb9;
+               } else if (priv->byBBPreEDRSSI <= 63) {
+                       ed_inx = 6;
+                       cr_206 = 0x93;
+               } else if (priv->byBBPreEDRSSI <= 64) {
+                       ed_inx = 5;
+                       cr_206 = 0x79;
+               } else if (priv->byBBPreEDRSSI <= 65) {
+                       ed_inx = 4;
+                       cr_206 = 0x62;
+               } else if (priv->byBBPreEDRSSI <= 66) {
+                       ed_inx = 3;
+                       cr_206 = 0x51;
+               } else if (priv->byBBPreEDRSSI <= 67) {
+                       ed_inx = 2;
+                       cr_206 = 0x43;
+               } else if (priv->byBBPreEDRSSI <= 68) {
+                       ed_inx = 1;
+                       cr_206 = 0x36;
+               } else {
+                       ed_inx = 0;
+                       cr_206 = 0x30;
+               }
+               break;
 
-void TimerSQ3Tmax3CallBack(struct vnt_private *pDevice)
-{
+       case RF_VT3226:
+       case RF_VT3226D0:
+               if (scanning)   { /* Max sensitivity */
+                       ed_inx = 0;
+                       cr_206 = 0x24;
+                       break;
+               }
 
-    DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"TimerSQ3Tmax3CallBack...");
-    spin_lock_irq(&pDevice->lock);
+               if (priv->byBBPreEDRSSI <= 41) {
+                       ed_inx = 22;
+                       cr_201 = 0xff;
+               } else if (priv->byBBPreEDRSSI <= 42) {
+                       ed_inx = 21;
+                       cr_201 = 0x36;
+               } else if (priv->byBBPreEDRSSI <= 43) {
+                       ed_inx = 20;
+                       cr_201 = 0x26;
+               } else if (priv->byBBPreEDRSSI <= 45) {
+                       ed_inx = 19;
+                       cr_201 = 0x18;
+               } else if (priv->byBBPreEDRSSI <= 47) {
+                       ed_inx = 18;
+                       cr_201 = 0x11;
+               } else if (priv->byBBPreEDRSSI <= 49) {
+                       ed_inx = 17;
+                       cr_201 = 0xa;
+               } else if (priv->byBBPreEDRSSI <= 51) {
+                       ed_inx = 16;
+                       cr_201 = 0x7;
+               } else if (priv->byBBPreEDRSSI <= 53) {
+                       ed_inx = 15;
+                       cr_201 = 0x4;
+               } else if (priv->byBBPreEDRSSI <= 55) {
+                       ed_inx = 14;
+                       cr_201 = 0x2;
+                       cr_206 = 0xc0;
+               } else if (priv->byBBPreEDRSSI <= 56) {
+                       ed_inx = 13;
+                       cr_201 = 0x2;
+                       cr_206 = 0x30;
+               } else if (priv->byBBPreEDRSSI <= 57) {
+                       ed_inx = 12;
+                       cr_201 = 0x1;
+                       cr_206 = 0xb0;
+               } else if (priv->byBBPreEDRSSI <= 58) {
+                       ed_inx = 11;
+                       cr_201 = 0x1;
+                       cr_206 = 0x70;
+               } else if (priv->byBBPreEDRSSI <= 59) {
+                       ed_inx = 10;
+                       cr_201 = 0x1;
+                       cr_206 = 0x30;
+               } else if (priv->byBBPreEDRSSI <= 60) {
+                       ed_inx = 9;
+                       cr_206 = 0xea;
+               } else if (priv->byBBPreEDRSSI <= 61) {
+                       ed_inx = 8;
+                       cr_206 = 0xc0;
+               } else if (priv->byBBPreEDRSSI <= 62) {
+                       ed_inx = 7;
+                       cr_206 = 0x9c;
+               } else if (priv->byBBPreEDRSSI <= 63) {
+                       ed_inx = 6;
+                       cr_206 = 0x80;
+               } else if (priv->byBBPreEDRSSI <= 64) {
+                       ed_inx = 5;
+                       cr_206 = 0x68;
+               } else if (priv->byBBPreEDRSSI <= 65) {
+                       ed_inx = 4;
+                       cr_206 = 0x52;
+               } else if (priv->byBBPreEDRSSI <= 66) {
+                       ed_inx = 3;
+                       cr_206 = 0x43;
+               } else if (priv->byBBPreEDRSSI <= 67) {
+                       ed_inx = 2;
+                       cr_206 = 0x36;
+               } else if (priv->byBBPreEDRSSI <= 68) {
+                       ed_inx = 1;
+                       cr_206 = 0x2d;
+               } else {
+                       ed_inx = 0;
+                       cr_206 = 0x24;
+               }
+               break;
 
-    pDevice->ulRatio_State0 = s_ulGetRatio(pDevice);
-    DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"SQ3_State0 = [%08x]\n",(int)pDevice->ulRatio_State0);
+       case RF_VT3342A0:
+               if (scanning) { /* need Max sensitivity */
+                       ed_inx = 0;
+                       cr_206 = 0x38;
+                       break;
+               }
 
-    s_vClearSQ3Value(pDevice);
-    if ( pDevice->byTMax == 0 ) {
-        pDevice->TimerSQ3Tmax3.expires =  RUN_AT(pDevice->byTMax3 * HZ);
-        add_timer(&pDevice->TimerSQ3Tmax3);
-        spin_unlock_irq(&pDevice->lock);
-        return;
-    }
+               if (priv->byBBPreEDRSSI <= 41) {
+                       ed_inx = 20;
+                       cr_201 = 0xff;
+               } else if (priv->byBBPreEDRSSI <= 42) {
+                       ed_inx = 19;
+                       cr_201 = 0x36;
+               } else if (priv->byBBPreEDRSSI <= 43) {
+                       ed_inx = 18;
+                       cr_201 = 0x26;
+               } else if (priv->byBBPreEDRSSI <= 45) {
+                       ed_inx = 17;
+                       cr_201 = 0x18;
+               } else if (priv->byBBPreEDRSSI <= 47) {
+                       ed_inx = 16;
+                       cr_201 = 0x11;
+               } else if (priv->byBBPreEDRSSI <= 49) {
+                       ed_inx = 15;
+                       cr_201 = 0xa;
+               } else if (priv->byBBPreEDRSSI <= 51) {
+                       ed_inx = 14;
+                       cr_201 = 0x7;
+               } else if (priv->byBBPreEDRSSI <= 53) {
+                       ed_inx = 13;
+                       cr_201 = 0x4;
+               } else if (priv->byBBPreEDRSSI <= 55) {
+                       ed_inx = 12;
+                       cr_201 = 0x2;
+                       cr_206 = 0xc0;
+               } else if (priv->byBBPreEDRSSI <= 56) {
+                       ed_inx = 11;
+                       cr_201 = 0x2;
+                       cr_206 = 0x30;
+               } else if (priv->byBBPreEDRSSI <= 57) {
+                       ed_inx = 10;
+                       cr_201 = 0x1;
+                       cr_206 = 0xb0;
+               } else if (priv->byBBPreEDRSSI <= 58) {
+                       ed_inx = 9;
+                       cr_201 = 0x1;
+                       cr_206 = 0x70;
+               } else if (priv->byBBPreEDRSSI <= 59) {
+                       ed_inx = 8;
+                       cr_201 = 0x1;
+                       cr_206 = 0x30;
+               } else if (priv->byBBPreEDRSSI <= 60) {
+                       ed_inx = 7;
+                       cr_206 = 0xea;
+               } else if (priv->byBBPreEDRSSI <= 61) {
+                       ed_inx = 6;
+                       cr_206 = 0xc0;
+               } else if (priv->byBBPreEDRSSI <= 62) {
+                       ed_inx = 5;
+                       cr_206 = 0x9c;
+               } else if (priv->byBBPreEDRSSI <= 63) {
+                       ed_inx = 4;
+                       cr_206 = 0x80;
+               } else if (priv->byBBPreEDRSSI <= 64) {
+                       ed_inx = 3;
+                       cr_206 = 0x68;
+               } else if (priv->byBBPreEDRSSI <= 65) {
+                       ed_inx = 2;
+                       cr_206 = 0x52;
+               } else if (priv->byBBPreEDRSSI <= 66) {
+                       ed_inx = 1;
+                       cr_206 = 0x43;
+               } else {
+                       ed_inx = 0;
+                       cr_206 = 0x38;
+               }
+               break;
 
-    bScheduleCommand((void *) pDevice, WLAN_CMD_CHANGE_ANTENNA, NULL);
-    pDevice->byAntennaState = 1;
-    del_timer(&pDevice->TimerSQ3Tmax3);
-    del_timer(&pDevice->TimerSQ3Tmax2);
-    pDevice->TimerSQ3Tmax1.expires =  RUN_AT(pDevice->byTMax * HZ);
-    add_timer(&pDevice->TimerSQ3Tmax1);
+       }
 
-    spin_unlock_irq(&pDevice->lock);
-}
+       if (ed_inx == priv->byBBPreEDIndex && !scanning)
+               return;
 
-void BBvUpdatePreEDThreshold(struct vnt_private *pDevice, int bScanning)
-{
-       u8 cr_201 = 0x0, cr_206 = 0x0;
+       priv->byBBPreEDIndex = ed_inx;
 
-    switch(pDevice->byRFType)
-    {
-        case RF_AL2230:
-        case RF_AL2230S:
-        case RF_AIROHA7230:
-            //RobertYu:20060627, update new table
-
-            if( bScanning )
-            {   // need Max sensitivity //RSSI -69, -70,....
-                pDevice->byBBPreEDIndex = 0;
-               cr_206 = 0x30;
-                break;
-            }
-
-            if(pDevice->byBBPreEDRSSI <= 45) { // RSSI 0, -1,-2,....-45
-                if(pDevice->byBBPreEDIndex == 20) break;
-                pDevice->byBBPreEDIndex = 20;
-               cr_201 = 0xff;
-            } else if(pDevice->byBBPreEDRSSI <= 46)  { //RSSI -46
-                if(pDevice->byBBPreEDIndex == 19) break;
-                pDevice->byBBPreEDIndex = 19;
-               cr_201 = 0x1a;
-            } else if(pDevice->byBBPreEDRSSI <= 47)  { //RSSI -47
-                if(pDevice->byBBPreEDIndex == 18) break;
-                pDevice->byBBPreEDIndex = 18;
-               cr_201 = 0x15;
-            } else if(pDevice->byBBPreEDRSSI <= 49)  { //RSSI -48, -49
-                if(pDevice->byBBPreEDIndex == 17) break;
-                pDevice->byBBPreEDIndex = 17;
-               cr_201 = 0xe;
-            } else if(pDevice->byBBPreEDRSSI <= 51)  { //RSSI -50, -51
-                if(pDevice->byBBPreEDIndex == 16) break;
-                pDevice->byBBPreEDIndex = 16;
-               cr_201 = 0x9;
-            } else if(pDevice->byBBPreEDRSSI <= 53)  { //RSSI -52, -53
-                if(pDevice->byBBPreEDIndex == 15) break;
-                pDevice->byBBPreEDIndex = 15;
-               cr_201 = 0x6;
-            } else if(pDevice->byBBPreEDRSSI <= 55)  { //RSSI -54, -55
-                if(pDevice->byBBPreEDIndex == 14) break;
-                pDevice->byBBPreEDIndex = 14;
-               cr_201 = 0x3;
-            } else if(pDevice->byBBPreEDRSSI <= 56)  { //RSSI -56
-                if(pDevice->byBBPreEDIndex == 13) break;
-                pDevice->byBBPreEDIndex = 13;
-               cr_201 = 0x2;
-               cr_206 = 0xa0;
-            } else if(pDevice->byBBPreEDRSSI <= 57)  { //RSSI -57
-                if(pDevice->byBBPreEDIndex == 12) break;
-                pDevice->byBBPreEDIndex = 12;
-               cr_201 = 0x2;
-               cr_206 = 0x20;
-            } else if(pDevice->byBBPreEDRSSI <= 58)  { //RSSI -58
-                if(pDevice->byBBPreEDIndex == 11) break;
-                pDevice->byBBPreEDIndex = 11;
-               cr_201 = 0x1;
-               cr_206 = 0xa0;
-            } else if(pDevice->byBBPreEDRSSI <= 59)  { //RSSI -59
-                if(pDevice->byBBPreEDIndex == 10) break;
-                pDevice->byBBPreEDIndex = 10;
-               cr_201 = 0x1;
-               cr_206 = 0x54;
-            } else if(pDevice->byBBPreEDRSSI <= 60)  { //RSSI -60
-                if(pDevice->byBBPreEDIndex == 9) break;
-                pDevice->byBBPreEDIndex = 9;
-               cr_201 = 0x1;
-               cr_206 = 0x18;
-            } else if(pDevice->byBBPreEDRSSI <= 61)  { //RSSI -61
-                if(pDevice->byBBPreEDIndex == 8) break;
-                pDevice->byBBPreEDIndex = 8;
-               cr_206 = 0xe3;
-            } else if(pDevice->byBBPreEDRSSI <= 62)  { //RSSI -62
-                if(pDevice->byBBPreEDIndex == 7) break;
-                pDevice->byBBPreEDIndex = 7;
-               cr_206 = 0xb9;
-            } else if(pDevice->byBBPreEDRSSI <= 63)  { //RSSI -63
-                if(pDevice->byBBPreEDIndex == 6) break;
-                pDevice->byBBPreEDIndex = 6;
-               cr_206 = 0x93;
-            } else if(pDevice->byBBPreEDRSSI <= 64)  { //RSSI -64
-                if(pDevice->byBBPreEDIndex == 5) break;
-                pDevice->byBBPreEDIndex = 5;
-               cr_206 = 0x79;
-            } else if(pDevice->byBBPreEDRSSI <= 65)  { //RSSI -65
-                if(pDevice->byBBPreEDIndex == 4) break;
-                pDevice->byBBPreEDIndex = 4;
-               cr_206 = 0x62;
-            } else if(pDevice->byBBPreEDRSSI <= 66)  { //RSSI -66
-                if(pDevice->byBBPreEDIndex == 3) break;
-                pDevice->byBBPreEDIndex = 3;
-               cr_206 = 0x51;
-            } else if(pDevice->byBBPreEDRSSI <= 67)  { //RSSI -67
-                if(pDevice->byBBPreEDIndex == 2) break;
-                pDevice->byBBPreEDIndex = 2;
-               cr_206 = 0x43;
-            } else if(pDevice->byBBPreEDRSSI <= 68)  { //RSSI -68
-                if(pDevice->byBBPreEDIndex == 1) break;
-                pDevice->byBBPreEDIndex = 1;
-               cr_206 = 0x36;
-            } else { //RSSI -69, -70,....
-                if(pDevice->byBBPreEDIndex == 0) break;
-                pDevice->byBBPreEDIndex = 0;
-               cr_206 = 0x30;
-            }
-            break;
-
-        case RF_VT3226:
-        case RF_VT3226D0:
-            //RobertYu:20060627, update new table
-
-            if( bScanning )
-            {   // need Max sensitivity  //RSSI -69, -70, ...
-                pDevice->byBBPreEDIndex = 0;
-               cr_206 = 0x24;
-                break;
-            }
-
-            if(pDevice->byBBPreEDRSSI <= 41) { // RSSI 0, -1,-2,....-41
-                if(pDevice->byBBPreEDIndex == 22) break;
-                pDevice->byBBPreEDIndex = 22;
-               cr_201 = 0xff;
-            } else if(pDevice->byBBPreEDRSSI <= 42)  { //RSSI -42
-                if(pDevice->byBBPreEDIndex == 21) break;
-                pDevice->byBBPreEDIndex = 21;
-               cr_201 = 0x36;
-            } else if(pDevice->byBBPreEDRSSI <= 43)  { //RSSI -43
-                if(pDevice->byBBPreEDIndex == 20) break;
-                pDevice->byBBPreEDIndex = 20;
-               cr_201 = 0x26;
-            } else if(pDevice->byBBPreEDRSSI <= 45)  { //RSSI -44, -45
-                if(pDevice->byBBPreEDIndex == 19) break;
-                pDevice->byBBPreEDIndex = 19;
-               cr_201 = 0x18;
-            } else if(pDevice->byBBPreEDRSSI <= 47)  { //RSSI -46, -47
-                if(pDevice->byBBPreEDIndex == 18) break;
-                pDevice->byBBPreEDIndex = 18;
-               cr_201 = 0x11;
-            } else if(pDevice->byBBPreEDRSSI <= 49)  { //RSSI -48, -49
-                if(pDevice->byBBPreEDIndex == 17) break;
-                pDevice->byBBPreEDIndex = 17;
-               cr_201 = 0xa;
-            } else if(pDevice->byBBPreEDRSSI <= 51)  { //RSSI -50, -51
-                if(pDevice->byBBPreEDIndex == 16) break;
-                pDevice->byBBPreEDIndex = 16;
-               cr_201 = 0x7;
-            } else if(pDevice->byBBPreEDRSSI <= 53)  { //RSSI -52, -53
-                if(pDevice->byBBPreEDIndex == 15) break;
-                pDevice->byBBPreEDIndex = 15;
-               cr_201 = 0x4;
-            } else if(pDevice->byBBPreEDRSSI <= 55)  { //RSSI -54, -55
-                if(pDevice->byBBPreEDIndex == 14) break;
-                pDevice->byBBPreEDIndex = 14;
-               cr_201 = 0x2;
-               cr_206 = 0xc0;
-            } else if(pDevice->byBBPreEDRSSI <= 56)  { //RSSI -56
-                if(pDevice->byBBPreEDIndex == 13) break;
-                pDevice->byBBPreEDIndex = 13;
-               cr_201 = 0x2;
-               cr_206 = 0x30;
-            } else if(pDevice->byBBPreEDRSSI <= 57)  { //RSSI -57
-                if(pDevice->byBBPreEDIndex == 12) break;
-                pDevice->byBBPreEDIndex = 12;
-               cr_201 = 0x1;
-               cr_206 = 0xb0;
-            } else if(pDevice->byBBPreEDRSSI <= 58)  { //RSSI -58
-                if(pDevice->byBBPreEDIndex == 11) break;
-                pDevice->byBBPreEDIndex = 11;
-               cr_201 = 0x1;
-               cr_206 = 0x70;
-            } else if(pDevice->byBBPreEDRSSI <= 59)  { //RSSI -59
-                if(pDevice->byBBPreEDIndex == 10) break;
-                pDevice->byBBPreEDIndex = 10;
-               cr_201 = 0x1;
-               cr_206 = 0x30;
-            } else if(pDevice->byBBPreEDRSSI <= 60)  { //RSSI -60
-                if(pDevice->byBBPreEDIndex == 9) break;
-                pDevice->byBBPreEDIndex = 9;
-               cr_206 = 0xea;
-            } else if(pDevice->byBBPreEDRSSI <= 61)  { //RSSI -61
-                if(pDevice->byBBPreEDIndex == 8) break;
-                pDevice->byBBPreEDIndex = 8;
-               cr_206 = 0xc0;
-            } else if(pDevice->byBBPreEDRSSI <= 62)  { //RSSI -62
-                if(pDevice->byBBPreEDIndex == 7) break;
-                pDevice->byBBPreEDIndex = 7;
-               cr_206 = 0x9c;
-            } else if(pDevice->byBBPreEDRSSI <= 63)  { //RSSI -63
-                if(pDevice->byBBPreEDIndex == 6) break;
-                pDevice->byBBPreEDIndex = 6;
-               cr_206 = 0x80;
-            } else if(pDevice->byBBPreEDRSSI <= 64)  { //RSSI -64
-                if(pDevice->byBBPreEDIndex == 5) break;
-                pDevice->byBBPreEDIndex = 5;
-               cr_206 = 0x68;
-            } else if(pDevice->byBBPreEDRSSI <= 65)  { //RSSI -65
-                if(pDevice->byBBPreEDIndex == 4) break;
-                pDevice->byBBPreEDIndex = 4;
-               cr_206 = 0x52;
-            } else if(pDevice->byBBPreEDRSSI <= 66)  { //RSSI -66
-                if(pDevice->byBBPreEDIndex == 3) break;
-                pDevice->byBBPreEDIndex = 3;
-               cr_206 = 0x43;
-            } else if(pDevice->byBBPreEDRSSI <= 67)  { //RSSI -67
-                if(pDevice->byBBPreEDIndex == 2) break;
-                pDevice->byBBPreEDIndex = 2;
-               cr_206 = 0x36;
-            } else if(pDevice->byBBPreEDRSSI <= 68)  { //RSSI -68
-                if(pDevice->byBBPreEDIndex == 1) break;
-                pDevice->byBBPreEDIndex = 1;
-               cr_206 = 0x2d;
-            } else { //RSSI -69, -70, ...
-                if(pDevice->byBBPreEDIndex == 0) break;
-                pDevice->byBBPreEDIndex = 0;
-               cr_206 = 0x24;
-            }
-            break;
-
-        case RF_VT3342A0: //RobertYu:20060627, testing table
-            if( bScanning )
-            {   // need Max sensitivity  //RSSI -67, -68, ...
-                pDevice->byBBPreEDIndex = 0;
-               cr_206 = 0x38;
-                break;
-            }
-
-            if(pDevice->byBBPreEDRSSI <= 41) { // RSSI 0, -1,-2,....-41
-                if(pDevice->byBBPreEDIndex == 20) break;
-                pDevice->byBBPreEDIndex = 20;
-               cr_201 = 0xff;
-            } else if(pDevice->byBBPreEDRSSI <= 42)  { //RSSI -42
-                if(pDevice->byBBPreEDIndex == 19) break;
-                pDevice->byBBPreEDIndex = 19;
-               cr_201 = 0x36;
-            } else if(pDevice->byBBPreEDRSSI <= 43)  { //RSSI -43
-                if(pDevice->byBBPreEDIndex == 18) break;
-                pDevice->byBBPreEDIndex = 18;
-               cr_201 = 0x26;
-            } else if(pDevice->byBBPreEDRSSI <= 45)  { //RSSI -44, -45
-                if(pDevice->byBBPreEDIndex == 17) break;
-                pDevice->byBBPreEDIndex = 17;
-               cr_201 = 0x18;
-            } else if(pDevice->byBBPreEDRSSI <= 47)  { //RSSI -46, -47
-                if(pDevice->byBBPreEDIndex == 16) break;
-                pDevice->byBBPreEDIndex = 16;
-               cr_201 = 0x11;
-            } else if(pDevice->byBBPreEDRSSI <= 49)  { //RSSI -48, -49
-                if(pDevice->byBBPreEDIndex == 15) break;
-                pDevice->byBBPreEDIndex = 15;
-               cr_201 = 0xa;
-            } else if(pDevice->byBBPreEDRSSI <= 51)  { //RSSI -50, -51
-                if(pDevice->byBBPreEDIndex == 14) break;
-                pDevice->byBBPreEDIndex = 14;
-               cr_201 = 0x7;
-            } else if(pDevice->byBBPreEDRSSI <= 53)  { //RSSI -52, -53
-                if(pDevice->byBBPreEDIndex == 13) break;
-                pDevice->byBBPreEDIndex = 13;
-               cr_201 = 0x4;
-            } else if(pDevice->byBBPreEDRSSI <= 55)  { //RSSI -54, -55
-                if(pDevice->byBBPreEDIndex == 12) break;
-                pDevice->byBBPreEDIndex = 12;
-               cr_201 = 0x2;
-               cr_206 = 0xc0;
-            } else if(pDevice->byBBPreEDRSSI <= 56)  { //RSSI -56
-                if(pDevice->byBBPreEDIndex == 11) break;
-                pDevice->byBBPreEDIndex = 11;
-               cr_201 = 0x2;
-               cr_206 = 0x30;
-            } else if(pDevice->byBBPreEDRSSI <= 57)  { //RSSI -57
-                if(pDevice->byBBPreEDIndex == 10) break;
-                pDevice->byBBPreEDIndex = 10;
-               cr_201 = 0x1;
-               cr_206 = 0xb0;
-            } else if(pDevice->byBBPreEDRSSI <= 58)  { //RSSI -58
-                if(pDevice->byBBPreEDIndex == 9) break;
-                pDevice->byBBPreEDIndex = 9;
-               cr_201 = 0x1;
-               cr_206 = 0x70;
-            } else if(pDevice->byBBPreEDRSSI <= 59)  { //RSSI -59
-                if(pDevice->byBBPreEDIndex == 8) break;
-                pDevice->byBBPreEDIndex = 8;
-               cr_201 = 0x1;
-               cr_206 = 0x30;
-            } else if(pDevice->byBBPreEDRSSI <= 60)  { //RSSI -60
-                if(pDevice->byBBPreEDIndex == 7) break;
-                pDevice->byBBPreEDIndex = 7;
-               cr_206 = 0xea;
-            } else if(pDevice->byBBPreEDRSSI <= 61)  { //RSSI -61
-                if(pDevice->byBBPreEDIndex == 6) break;
-                pDevice->byBBPreEDIndex = 6;
-               cr_206 = 0xc0;
-            } else if(pDevice->byBBPreEDRSSI <= 62)  { //RSSI -62
-                if(pDevice->byBBPreEDIndex == 5) break;
-                pDevice->byBBPreEDIndex = 5;
-               cr_206 = 0x9c;
-            } else if(pDevice->byBBPreEDRSSI <= 63)  { //RSSI -63
-                if(pDevice->byBBPreEDIndex == 4) break;
-                pDevice->byBBPreEDIndex = 4;
-               cr_206 = 0x80;
-            } else if(pDevice->byBBPreEDRSSI <= 64)  { //RSSI -64
-                if(pDevice->byBBPreEDIndex == 3) break;
-                pDevice->byBBPreEDIndex = 3;
-               cr_206 = 0x68;
-            } else if(pDevice->byBBPreEDRSSI <= 65)  { //RSSI -65
-                if(pDevice->byBBPreEDIndex == 2) break;
-                pDevice->byBBPreEDIndex = 2;
-               cr_206 = 0x52;
-            } else if(pDevice->byBBPreEDRSSI <= 66)  { //RSSI -66
-                if(pDevice->byBBPreEDIndex == 1) break;
-                pDevice->byBBPreEDIndex = 1;
-               cr_206 = 0x43;
-            } else { //RSSI -67, -68, ...
-                if(pDevice->byBBPreEDIndex == 0) break;
-                pDevice->byBBPreEDIndex = 0;
-               cr_206 = 0x38;
-            }
-            break;
-
-    }
-
-       dev_dbg(&pDevice->usb->dev, "%s byBBPreEDRSSI %d\n",
-                                       __func__, pDevice->byBBPreEDRSSI);
+       dev_dbg(&priv->usb->dev, "%s byBBPreEDRSSI %d\n",
+                                       __func__, priv->byBBPreEDRSSI);
 
        if (!cr_201 && !cr_206)
                return;
 
-       ControlvWriteByte(pDevice, MESSAGE_REQUEST_BBREG, 0xc9, cr_201);
-       ControlvWriteByte(pDevice, MESSAGE_REQUEST_BBREG, 0xce, cr_206);
+       vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0xc9, cr_201);
+       vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG, 0xce, cr_206);
 }
 
This page took 0.039716 seconds and 5 git commands to generate.