ARM: OMAP2+: Fix booting with configs that don't have MFD_SYSCON
[firefly-linux-kernel-4.4.55.git] / drivers / staging / vt6655 / baseband.c
index f8c5fc371c4cb4ff0b349e9eb2ff871bc60a0574..565ba189afb2abda8ad3b713f0dff17f971ec493 100644 (file)
@@ -27,7 +27,8 @@
  *
  * Functions:
  *      BBuGetFrameTime        - Calculate data frame transmitting time
- *      BBvCaculateParameter   - Caculate PhyLength, PhyService and Phy Signal parameter for baseband Tx
+ *      BBvCaculateParameter   - Caculate PhyLength, PhyService and Phy Signal
+ *                               parameter for baseband Tx
  *      BBbReadEmbedded         - Embedded read baseband register via MAC
  *      BBbWriteEmbedded        - Embedded write baseband register via MAC
  *      BBbVT3253Init          - VIA VT3253 baseband chip init code
@@ -1698,46 +1699,6 @@ static const unsigned short awcFrameTime[MAX_RATE] = {
                10, 20, 55, 110, 24, 36, 48, 72, 96, 144, 192, 216
 };
 
-/*---------------------  Static Functions  --------------------------*/
-
-static
-unsigned long
-s_ulGetRatio(struct vnt_private *priv);
-
-static
-void
-s_vChangeAntenna(
-       struct vnt_private *priv
-);
-
-static
-void
-s_vChangeAntenna(
-       struct vnt_private *priv
-)
-{
-       if (priv->dwRxAntennaSel == 0) {
-               priv->dwRxAntennaSel = 1;
-               if (priv->bTxRxAntInv == true)
-                       BBvSetRxAntennaMode(priv, ANT_A);
-               else
-                       BBvSetRxAntennaMode(priv, ANT_B);
-       } else {
-               priv->dwRxAntennaSel = 0;
-               if (priv->bTxRxAntInv == true)
-                       BBvSetRxAntennaMode(priv, ANT_B);
-               else
-                       BBvSetRxAntennaMode(priv, ANT_A);
-       }
-       if (priv->dwTxAntennaSel == 0) {
-               priv->dwTxAntennaSel = 1;
-               BBvSetTxAntennaMode(priv, ANT_B);
-       } else {
-               priv->dwTxAntennaSel = 0;
-               BBvSetTxAntennaMode(priv, ANT_A);
-       }
-}
-
 /*---------------------  Export Variables  --------------------------*/
 /*
  * Description: Calculate data frame transmitting time
@@ -2412,303 +2373,3 @@ BBvExitDeepSleep(struct vnt_private *priv, unsigned char byLocalID)
        BBbWriteEmbedded(priv, 0x0C, 0x00); /* CR12 */
        BBbWriteEmbedded(priv, 0x0D, 0x01); /* CR13 */
 }
-
-static
-unsigned long
-s_ulGetRatio(struct vnt_private *priv)
-{
-       unsigned long ulRatio = 0;
-       unsigned long ulMaxPacket;
-       unsigned long ulPacketNum;
-
-       /* This is a thousand-ratio */
-       ulMaxPacket = priv->uNumSQ3[RATE_54M];
-       if (priv->uNumSQ3[RATE_54M] != 0) {
-               ulPacketNum = priv->uNumSQ3[RATE_54M];
-               ulRatio = (ulPacketNum * 1000 / priv->uDiversityCnt);
-               ulRatio += TOP_RATE_54M;
-       }
-       if (priv->uNumSQ3[RATE_48M] > ulMaxPacket) {
-               ulPacketNum = priv->uNumSQ3[RATE_54M] + priv->uNumSQ3[RATE_48M];
-               ulRatio = (ulPacketNum * 1000 / priv->uDiversityCnt);
-               ulRatio += TOP_RATE_48M;
-               ulMaxPacket = priv->uNumSQ3[RATE_48M];
-       }
-       if (priv->uNumSQ3[RATE_36M] > ulMaxPacket) {
-               ulPacketNum = priv->uNumSQ3[RATE_54M] + priv->uNumSQ3[RATE_48M] +
-                       priv->uNumSQ3[RATE_36M];
-               ulRatio = (ulPacketNum * 1000 / priv->uDiversityCnt);
-               ulRatio += TOP_RATE_36M;
-               ulMaxPacket = priv->uNumSQ3[RATE_36M];
-       }
-       if (priv->uNumSQ3[RATE_24M] > ulMaxPacket) {
-               ulPacketNum = priv->uNumSQ3[RATE_54M] + priv->uNumSQ3[RATE_48M] +
-                       priv->uNumSQ3[RATE_36M] + priv->uNumSQ3[RATE_24M];
-               ulRatio = (ulPacketNum * 1000 / priv->uDiversityCnt);
-               ulRatio += TOP_RATE_24M;
-               ulMaxPacket = priv->uNumSQ3[RATE_24M];
-       }
-       if (priv->uNumSQ3[RATE_18M] > ulMaxPacket) {
-               ulPacketNum = priv->uNumSQ3[RATE_54M] + priv->uNumSQ3[RATE_48M] +
-                       priv->uNumSQ3[RATE_36M] + priv->uNumSQ3[RATE_24M] +
-                       priv->uNumSQ3[RATE_18M];
-               ulRatio = (ulPacketNum * 1000 / priv->uDiversityCnt);
-               ulRatio += TOP_RATE_18M;
-               ulMaxPacket = priv->uNumSQ3[RATE_18M];
-       }
-       if (priv->uNumSQ3[RATE_12M] > ulMaxPacket) {
-               ulPacketNum = priv->uNumSQ3[RATE_54M] + priv->uNumSQ3[RATE_48M] +
-                       priv->uNumSQ3[RATE_36M] + priv->uNumSQ3[RATE_24M] +
-                       priv->uNumSQ3[RATE_18M] + priv->uNumSQ3[RATE_12M];
-               ulRatio = (ulPacketNum * 1000 / priv->uDiversityCnt);
-               ulRatio += TOP_RATE_12M;
-               ulMaxPacket = priv->uNumSQ3[RATE_12M];
-       }
-       if (priv->uNumSQ3[RATE_11M] > ulMaxPacket) {
-               ulPacketNum = priv->uDiversityCnt - priv->uNumSQ3[RATE_1M] -
-                       priv->uNumSQ3[RATE_2M] - priv->uNumSQ3[RATE_5M] -
-                       priv->uNumSQ3[RATE_6M] - priv->uNumSQ3[RATE_9M];
-               ulRatio = (ulPacketNum * 1000 / priv->uDiversityCnt);
-               ulRatio += TOP_RATE_11M;
-               ulMaxPacket = priv->uNumSQ3[RATE_11M];
-       }
-       if (priv->uNumSQ3[RATE_9M] > ulMaxPacket) {
-               ulPacketNum = priv->uDiversityCnt - priv->uNumSQ3[RATE_1M] -
-                       priv->uNumSQ3[RATE_2M] - priv->uNumSQ3[RATE_5M] -
-                       priv->uNumSQ3[RATE_6M];
-               ulRatio = (ulPacketNum * 1000 / priv->uDiversityCnt);
-               ulRatio += TOP_RATE_9M;
-               ulMaxPacket = priv->uNumSQ3[RATE_9M];
-       }
-       if (priv->uNumSQ3[RATE_6M] > ulMaxPacket) {
-               ulPacketNum = priv->uDiversityCnt - priv->uNumSQ3[RATE_1M] -
-                       priv->uNumSQ3[RATE_2M] - priv->uNumSQ3[RATE_5M];
-               ulRatio = (ulPacketNum * 1000 / priv->uDiversityCnt);
-               ulRatio += TOP_RATE_6M;
-               ulMaxPacket = priv->uNumSQ3[RATE_6M];
-       }
-       if (priv->uNumSQ3[RATE_5M] > ulMaxPacket) {
-               ulPacketNum = priv->uDiversityCnt - priv->uNumSQ3[RATE_1M] -
-                       priv->uNumSQ3[RATE_2M];
-               ulRatio = (ulPacketNum * 1000 / priv->uDiversityCnt);
-               ulRatio += TOP_RATE_55M;
-               ulMaxPacket = priv->uNumSQ3[RATE_5M];
-       }
-       if (priv->uNumSQ3[RATE_2M] > ulMaxPacket) {
-               ulPacketNum = priv->uDiversityCnt - priv->uNumSQ3[RATE_1M];
-               ulRatio = (ulPacketNum * 1000 / priv->uDiversityCnt);
-               ulRatio += TOP_RATE_2M;
-               ulMaxPacket = priv->uNumSQ3[RATE_2M];
-       }
-       if (priv->uNumSQ3[RATE_1M] > ulMaxPacket) {
-               ulPacketNum = priv->uDiversityCnt;
-               ulRatio = (ulPacketNum * 1000 / priv->uDiversityCnt);
-               ulRatio += TOP_RATE_1M;
-       }
-
-       return ulRatio;
-}
-
-void
-BBvClearAntDivSQ3Value(struct vnt_private *priv)
-{
-       unsigned int ii;
-
-       priv->uDiversityCnt = 0;
-       for (ii = 0; ii < MAX_RATE; ii++)
-               priv->uNumSQ3[ii] = 0;
-}
-
-/*
- * Description: Antenna Diversity
- *
- * Parameters:
- *  In:
- *      priv          - Device Structure
- *      byRSR            - RSR from received packet
- *      bySQ3            - SQ3 value from received packet
- *  Out:
- *      none
- *
- * Return Value: none
- *
- */
-
-void BBvAntennaDiversity(struct vnt_private *priv,
-                        unsigned char byRxRate, unsigned char bySQ3)
-{
-       if ((byRxRate >= MAX_RATE) || (priv->wAntDiversityMaxRate >= MAX_RATE))
-               return;
-
-       priv->uDiversityCnt++;
-
-       priv->uNumSQ3[byRxRate]++;
-
-       if (priv->byAntennaState == 0) {
-               if (priv->uDiversityCnt > priv->ulDiversityNValue) {
-                       pr_debug("ulDiversityNValue=[%d],54M-[%d]\n",
-                                (int)priv->ulDiversityNValue,
-                                (int)priv->uNumSQ3[(int)priv->wAntDiversityMaxRate]);
-
-                       if (priv->uNumSQ3[priv->wAntDiversityMaxRate] < priv->uDiversityCnt/2) {
-                               priv->ulRatio_State0 = s_ulGetRatio(priv);
-                               pr_debug("SQ3_State0, rate = [%08x]\n",
-                                        (int)priv->ulRatio_State0);
-
-                               if (priv->byTMax == 0)
-                                       return;
-                               pr_debug("1.[%08x], uNumSQ3[%d]=%d, %d\n",
-                                        (int)priv->ulRatio_State0,
-                                        (int)priv->wAntDiversityMaxRate,
-                                        (int)priv->uNumSQ3[(int)priv->wAntDiversityMaxRate],
-                                        (int)priv->uDiversityCnt);
-
-                               s_vChangeAntenna(priv);
-                               priv->byAntennaState = 1;
-                               del_timer(&priv->TimerSQ3Tmax3);
-                               del_timer(&priv->TimerSQ3Tmax2);
-                               priv->TimerSQ3Tmax1.expires =  RUN_AT(priv->byTMax * HZ);
-                               add_timer(&priv->TimerSQ3Tmax1);
-
-                       } else {
-                               priv->TimerSQ3Tmax3.expires =  RUN_AT(priv->byTMax3 * HZ);
-                               add_timer(&priv->TimerSQ3Tmax3);
-                       }
-                       BBvClearAntDivSQ3Value(priv);
-
-               }
-       } else { /* byAntennaState == 1 */
-
-               if (priv->uDiversityCnt > priv->ulDiversityMValue) {
-                       del_timer(&priv->TimerSQ3Tmax1);
-
-                       priv->ulRatio_State1 = s_ulGetRatio(priv);
-                       pr_debug("RX:SQ3_State1, rate0 = %08x,rate1 = %08x\n",
-                                (int)priv->ulRatio_State0,
-                                (int)priv->ulRatio_State1);
-
-                       if (priv->ulRatio_State1 < priv->ulRatio_State0) {
-                               pr_debug("2.[%08x][%08x], uNumSQ3[%d]=%d, %d\n",
-                                        (int)priv->ulRatio_State0,
-                                        (int)priv->ulRatio_State1,
-                                        (int)priv->wAntDiversityMaxRate,
-                                        (int)priv->uNumSQ3[(int)priv->wAntDiversityMaxRate],
-                                        (int)priv->uDiversityCnt);
-
-                               s_vChangeAntenna(priv);
-                               priv->TimerSQ3Tmax3.expires =  RUN_AT(priv->byTMax3 * HZ);
-                               priv->TimerSQ3Tmax2.expires =  RUN_AT(priv->byTMax2 * HZ);
-                               add_timer(&priv->TimerSQ3Tmax3);
-                               add_timer(&priv->TimerSQ3Tmax2);
-                       }
-                       priv->byAntennaState = 0;
-                       BBvClearAntDivSQ3Value(priv);
-               }
-       } /* byAntennaState */
-}
-
-/*+
- *
- * Description:
- *  Timer for SQ3 antenna diversity
- *
- * Parameters:
- *  In:
- *  Out:
- *      none
- *
- * Return Value: none
- *
- -*/
-
-void
-TimerSQ3CallBack(
-       unsigned long data
-)
-{
-       struct vnt_private *priv = (struct vnt_private *)data;
-       unsigned long flags;
-
-       pr_debug("TimerSQ3CallBack...\n");
-
-       spin_lock_irqsave(&priv->lock, flags);
-
-       pr_debug("3.[%08x][%08x], %d\n",
-                (int)priv->ulRatio_State0, (int)priv->ulRatio_State1,
-                (int)priv->uDiversityCnt);
-
-       s_vChangeAntenna(priv);
-       priv->byAntennaState = 0;
-       BBvClearAntDivSQ3Value(priv);
-
-       priv->TimerSQ3Tmax3.expires =  RUN_AT(priv->byTMax3 * HZ);
-       priv->TimerSQ3Tmax2.expires =  RUN_AT(priv->byTMax2 * HZ);
-       add_timer(&priv->TimerSQ3Tmax3);
-       add_timer(&priv->TimerSQ3Tmax2);
-
-       spin_unlock_irqrestore(&priv->lock, flags);
-}
-
-/*+
- *
- * Description:
- *  Timer for SQ3 antenna diversity
- *
- * Parameters:
- *  In:
- *      pvSysSpec1
- *      hDeviceContext - Pointer to the adapter
- *      pvSysSpec2
- *      pvSysSpec3
- *  Out:
- *      none
- *
- * Return Value: none
- *
- -*/
-
-void
-TimerState1CallBack(
-       unsigned long data
-)
-{
-       struct vnt_private *priv = (struct vnt_private *)data;
-       unsigned long flags;
-
-       pr_debug("TimerState1CallBack...\n");
-
-       spin_lock_irqsave(&priv->lock, flags);
-
-       if (priv->uDiversityCnt < priv->ulDiversityMValue/100) {
-               s_vChangeAntenna(priv);
-               priv->TimerSQ3Tmax3.expires =  RUN_AT(priv->byTMax3 * HZ);
-               priv->TimerSQ3Tmax2.expires =  RUN_AT(priv->byTMax2 * HZ);
-               add_timer(&priv->TimerSQ3Tmax3);
-               add_timer(&priv->TimerSQ3Tmax2);
-       } else {
-               priv->ulRatio_State1 = s_ulGetRatio(priv);
-               pr_debug("SQ3_State1, rate0 = %08x,rate1 = %08x\n",
-                        (int)priv->ulRatio_State0,
-                        (int)priv->ulRatio_State1);
-
-               if (priv->ulRatio_State1 < priv->ulRatio_State0) {
-                       pr_debug("2.[%08x][%08x], uNumSQ3[%d]=%d, %d\n",
-                                (int)priv->ulRatio_State0,
-                                (int)priv->ulRatio_State1,
-                                (int)priv->wAntDiversityMaxRate,
-                                (int)priv->uNumSQ3[(int)priv->wAntDiversityMaxRate],
-                                (int)priv->uDiversityCnt);
-
-                       s_vChangeAntenna(priv);
-
-                       priv->TimerSQ3Tmax3.expires =  RUN_AT(priv->byTMax3 * HZ);
-                       priv->TimerSQ3Tmax2.expires =  RUN_AT(priv->byTMax2 * HZ);
-                       add_timer(&priv->TimerSQ3Tmax3);
-                       add_timer(&priv->TimerSQ3Tmax2);
-               }
-       }
-       priv->byAntennaState = 0;
-       BBvClearAntDivSQ3Value(priv);
-
-       spin_unlock_irqrestore(&priv->lock, flags);
-}