Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
[firefly-linux-kernel-4.4.55.git] / drivers / staging / vt6655 / baseband.c
index 32000d2bedb1eaf87ca0c70ad3bf09c2f3eabfed..86c72ba0a0cd5cc019ef068dcec54886f88e7653 100644 (file)
@@ -1719,22 +1719,22 @@ s_vChangeAntenna(
        if (priv->dwRxAntennaSel == 0) {
                priv->dwRxAntennaSel = 1;
                if (priv->bTxRxAntInv == true)
-                       BBvSetRxAntennaMode(priv->PortOffset, ANT_A);
+                       BBvSetRxAntennaMode(priv, ANT_A);
                else
-                       BBvSetRxAntennaMode(priv->PortOffset, ANT_B);
+                       BBvSetRxAntennaMode(priv, ANT_B);
        } else {
                priv->dwRxAntennaSel = 0;
                if (priv->bTxRxAntInv == true)
-                       BBvSetRxAntennaMode(priv->PortOffset, ANT_B);
+                       BBvSetRxAntennaMode(priv, ANT_B);
                else
-                       BBvSetRxAntennaMode(priv->PortOffset, ANT_A);
+                       BBvSetRxAntennaMode(priv, ANT_A);
        }
        if (priv->dwTxAntennaSel == 0) {
                priv->dwTxAntennaSel = 1;
-               BBvSetTxAntennaMode(priv->PortOffset, ANT_B);
+               BBvSetTxAntennaMode(priv, ANT_B);
        } else {
                priv->dwTxAntennaSel = 0;
-               BBvSetTxAntennaMode(priv->PortOffset, ANT_A);
+               BBvSetTxAntennaMode(priv, ANT_A);
        }
 }
 
@@ -1961,8 +1961,10 @@ void vnt_get_phy_field(struct vnt_private *priv, u32 frame_length,
  * Return Value: true if succeeded; false if failed.
  *
  */
-bool BBbReadEmbedded(void __iomem *dwIoBase, unsigned char byBBAddr, unsigned char *pbyData)
+bool BBbReadEmbedded(struct vnt_private *priv,
+                    unsigned char byBBAddr, unsigned char *pbyData)
 {
+       void __iomem *dwIoBase = priv->PortOffset;
        unsigned short ww;
        unsigned char byValue;
 
@@ -2003,8 +2005,10 @@ bool BBbReadEmbedded(void __iomem *dwIoBase, unsigned char byBBAddr, unsigned ch
  * Return Value: true if succeeded; false if failed.
  *
  */
-bool BBbWriteEmbedded(void __iomem *dwIoBase, unsigned char byBBAddr, unsigned char byData)
+bool BBbWriteEmbedded(struct vnt_private *priv,
+                     unsigned char byBBAddr, unsigned char byData)
 {
+       void __iomem *dwIoBase = priv->PortOffset;
        unsigned short ww;
        unsigned char byValue;
 
@@ -2056,14 +2060,14 @@ bool BBbVT3253Init(struct vnt_private *priv)
        if (byRFType == RF_RFMD2959) {
                if (byLocalID <= REV_ID_VT3253_A1) {
                        for (ii = 0; ii < CB_VT3253_INIT_FOR_RFMD; ii++)
-                               bResult &= BBbWriteEmbedded(dwIoBase, byVT3253InitTab_RFMD[ii][0], byVT3253InitTab_RFMD[ii][1]);
+                               bResult &= BBbWriteEmbedded(priv, byVT3253InitTab_RFMD[ii][0], byVT3253InitTab_RFMD[ii][1]);
 
                } else {
                        for (ii = 0; ii < CB_VT3253B0_INIT_FOR_RFMD; ii++)
-                               bResult &= BBbWriteEmbedded(dwIoBase, byVT3253B0_RFMD[ii][0], byVT3253B0_RFMD[ii][1]);
+                               bResult &= BBbWriteEmbedded(priv, byVT3253B0_RFMD[ii][0], byVT3253B0_RFMD[ii][1]);
 
                        for (ii = 0; ii < CB_VT3253B0_AGC_FOR_RFMD2959; ii++)
-                               bResult &= BBbWriteEmbedded(dwIoBase, byVT3253B0_AGC4_RFMD2959[ii][0], byVT3253B0_AGC4_RFMD2959[ii][1]);
+                               bResult &= BBbWriteEmbedded(priv, byVT3253B0_AGC4_RFMD2959[ii][0], byVT3253B0_AGC4_RFMD2959[ii][1]);
 
                        VNSvOutPortD(dwIoBase + MAC_REG_ITRTMSET, 0x23);
                        MACvRegBitsOn(dwIoBase, MAC_REG_PAPEDELAY, BIT(0));
@@ -2078,10 +2082,10 @@ bool BBbVT3253Init(struct vnt_private *priv)
                priv->ldBmThreshold[3] = 0;
        } else if ((byRFType == RF_AIROHA) || (byRFType == RF_AL2230S)) {
                for (ii = 0; ii < CB_VT3253B0_INIT_FOR_AIROHA2230; ii++)
-                       bResult &= BBbWriteEmbedded(dwIoBase, byVT3253B0_AIROHA2230[ii][0], byVT3253B0_AIROHA2230[ii][1]);
+                       bResult &= BBbWriteEmbedded(priv, byVT3253B0_AIROHA2230[ii][0], byVT3253B0_AIROHA2230[ii][1]);
 
                for (ii = 0; ii < CB_VT3253B0_AGC; ii++)
-                       bResult &= BBbWriteEmbedded(dwIoBase, byVT3253B0_AGC[ii][0], byVT3253B0_AGC[ii][1]);
+                       bResult &= BBbWriteEmbedded(priv, byVT3253B0_AGC[ii][0], byVT3253B0_AGC[ii][1]);
 
                priv->abyBBVGA[0] = 0x1C;
                priv->abyBBVGA[1] = 0x10;
@@ -2093,10 +2097,10 @@ bool BBbVT3253Init(struct vnt_private *priv)
                priv->ldBmThreshold[3] = 0;
        } else if (byRFType == RF_UW2451) {
                for (ii = 0; ii < CB_VT3253B0_INIT_FOR_UW2451; ii++)
-                       bResult &= BBbWriteEmbedded(dwIoBase, byVT3253B0_UW2451[ii][0], byVT3253B0_UW2451[ii][1]);
+                       bResult &= BBbWriteEmbedded(priv, byVT3253B0_UW2451[ii][0], byVT3253B0_UW2451[ii][1]);
 
                for (ii = 0; ii < CB_VT3253B0_AGC; ii++)
-                       bResult &= BBbWriteEmbedded(dwIoBase, byVT3253B0_AGC[ii][0], byVT3253B0_AGC[ii][1]);
+                       bResult &= BBbWriteEmbedded(priv, byVT3253B0_AGC[ii][0], byVT3253B0_AGC[ii][1]);
 
                VNSvOutPortB(dwIoBase + MAC_REG_ITRTMSET, 0x23);
                MACvRegBitsOn(dwIoBase, MAC_REG_PAPEDELAY, BIT(0));
@@ -2111,28 +2115,28 @@ bool BBbVT3253Init(struct vnt_private *priv)
                priv->ldBmThreshold[3] = 0;
        } else if (byRFType == RF_UW2452) {
                for (ii = 0; ii < CB_VT3253B0_INIT_FOR_UW2451; ii++)
-                       bResult &= BBbWriteEmbedded(dwIoBase, byVT3253B0_UW2451[ii][0], byVT3253B0_UW2451[ii][1]);
+                       bResult &= BBbWriteEmbedded(priv, byVT3253B0_UW2451[ii][0], byVT3253B0_UW2451[ii][1]);
 
                /* Init ANT B select,TX Config CR09 = 0x61->0x45, 0x45->0x41(VC1/VC2 define, make the ANT_A, ANT_B inverted) */
                /*bResult &= BBbWriteEmbedded(dwIoBase,0x09,0x41);*/
                /* Init ANT B select,RX Config CR10 = 0x28->0x2A, 0x2A->0x28(VC1/VC2 define, make the ANT_A, ANT_B inverted) */
                /*bResult &= BBbWriteEmbedded(dwIoBase,0x0a,0x28);*/
                /* Select VC1/VC2, CR215 = 0x02->0x06 */
-               bResult &= BBbWriteEmbedded(dwIoBase, 0xd7, 0x06);
+               bResult &= BBbWriteEmbedded(priv, 0xd7, 0x06);
 
                /* {{RobertYu:20050125, request by Jack */
-               bResult &= BBbWriteEmbedded(dwIoBase, 0x90, 0x20);
-               bResult &= BBbWriteEmbedded(dwIoBase, 0x97, 0xeb);
+               bResult &= BBbWriteEmbedded(priv, 0x90, 0x20);
+               bResult &= BBbWriteEmbedded(priv, 0x97, 0xeb);
                /* }} */
 
                /* {{RobertYu:20050221, request by Jack */
-               bResult &= BBbWriteEmbedded(dwIoBase, 0xa6, 0x00);
-               bResult &= BBbWriteEmbedded(dwIoBase, 0xa8, 0x30);
+               bResult &= BBbWriteEmbedded(priv, 0xa6, 0x00);
+               bResult &= BBbWriteEmbedded(priv, 0xa8, 0x30);
                /* }} */
-               bResult &= BBbWriteEmbedded(dwIoBase, 0xb0, 0x58);
+               bResult &= BBbWriteEmbedded(priv, 0xb0, 0x58);
 
                for (ii = 0; ii < CB_VT3253B0_AGC; ii++)
-                       bResult &= BBbWriteEmbedded(dwIoBase, byVT3253B0_AGC[ii][0], byVT3253B0_AGC[ii][1]);
+                       bResult &= BBbWriteEmbedded(priv, byVT3253B0_AGC[ii][0], byVT3253B0_AGC[ii][1]);
 
                priv->abyBBVGA[0] = 0x14;
                priv->abyBBVGA[1] = 0x0A;
@@ -2146,10 +2150,10 @@ bool BBbVT3253Init(struct vnt_private *priv)
 
        } else if (byRFType == RF_VT3226) {
                for (ii = 0; ii < CB_VT3253B0_INIT_FOR_AIROHA2230; ii++)
-                       bResult &= BBbWriteEmbedded(dwIoBase, byVT3253B0_AIROHA2230[ii][0], byVT3253B0_AIROHA2230[ii][1]);
+                       bResult &= BBbWriteEmbedded(priv, byVT3253B0_AIROHA2230[ii][0], byVT3253B0_AIROHA2230[ii][1]);
 
                for (ii = 0; ii < CB_VT3253B0_AGC; ii++)
-                       bResult &= BBbWriteEmbedded(dwIoBase, byVT3253B0_AGC[ii][0], byVT3253B0_AGC[ii][1]);
+                       bResult &= BBbWriteEmbedded(priv, byVT3253B0_AGC[ii][0], byVT3253B0_AGC[ii][1]);
 
                priv->abyBBVGA[0] = 0x1C;
                priv->abyBBVGA[1] = 0x10;
@@ -2164,7 +2168,7 @@ bool BBbVT3253Init(struct vnt_private *priv)
                /* {{ RobertYu: 20050104 */
        } else if (byRFType == RF_AIROHA7230) {
                for (ii = 0; ii < CB_VT3253B0_INIT_FOR_AIROHA2230; ii++)
-                       bResult &= BBbWriteEmbedded(dwIoBase, byVT3253B0_AIROHA2230[ii][0], byVT3253B0_AIROHA2230[ii][1]);
+                       bResult &= BBbWriteEmbedded(priv, byVT3253B0_AIROHA2230[ii][0], byVT3253B0_AIROHA2230[ii][1]);
 
 
                /* {{ RobertYu:20050223, request by JerryChung */
@@ -2177,7 +2181,7 @@ bool BBbVT3253Init(struct vnt_private *priv)
                /* }} */
 
                for (ii = 0; ii < CB_VT3253B0_AGC; ii++)
-                       bResult &= BBbWriteEmbedded(dwIoBase, byVT3253B0_AGC[ii][0], byVT3253B0_AGC[ii][1]);
+                       bResult &= BBbWriteEmbedded(priv, byVT3253B0_AGC[ii][0], byVT3253B0_AGC[ii][1]);
 
                priv->abyBBVGA[0] = 0x1C;
                priv->abyBBVGA[1] = 0x10;
@@ -2195,8 +2199,8 @@ bool BBbVT3253Init(struct vnt_private *priv)
        }
 
        if (byLocalID > REV_ID_VT3253_A1) {
-               BBbWriteEmbedded(dwIoBase, 0x04, 0x7F);
-               BBbWriteEmbedded(dwIoBase, 0x0D, 0x01);
+               BBbWriteEmbedded(priv, 0x04, 0x7F);
+               BBbWriteEmbedded(priv, 0x0D, 0x01);
        }
 
        return bResult;
@@ -2220,7 +2224,7 @@ BBvSetShortSlotTime(struct vnt_private *priv)
        unsigned char byBBRxConf = 0;
        unsigned char byBBVGA = 0;
 
-       BBbReadEmbedded(priv->PortOffset, 0x0A, &byBBRxConf); /* CR10 */
+       BBbReadEmbedded(priv, 0x0A, &byBBRxConf); /* CR10 */
 
        if (priv->bShortSlotTime)
                byBBRxConf &= 0xDF; /* 1101 1111 */
@@ -2228,20 +2232,20 @@ BBvSetShortSlotTime(struct vnt_private *priv)
                byBBRxConf |= 0x20; /* 0010 0000 */
 
        /* patch for 3253B0 Baseband with Cardbus module */
-       BBbReadEmbedded(priv->PortOffset, 0xE7, &byBBVGA);
+       BBbReadEmbedded(priv, 0xE7, &byBBVGA);
        if (byBBVGA == priv->abyBBVGA[0])
                byBBRxConf |= 0x20; /* 0010 0000 */
 
-       BBbWriteEmbedded(priv->PortOffset, 0x0A, byBBRxConf); /* CR10 */
+       BBbWriteEmbedded(priv, 0x0A, byBBRxConf); /* CR10 */
 }
 
 void BBvSetVGAGainOffset(struct vnt_private *priv, unsigned char byData)
 {
        unsigned char byBBRxConf = 0;
 
-       BBbWriteEmbedded(priv->PortOffset, 0xE7, byData);
+       BBbWriteEmbedded(priv, 0xE7, byData);
 
-       BBbReadEmbedded(priv->PortOffset, 0x0A, &byBBRxConf); /* CR10 */
+       BBbReadEmbedded(priv, 0x0A, &byBBRxConf); /* CR10 */
        /* patch for 3253B0 Baseband with Cardbus module */
        if (byData == priv->abyBBVGA[0])
                byBBRxConf |= 0x20; /* 0010 0000 */
@@ -2250,7 +2254,7 @@ void BBvSetVGAGainOffset(struct vnt_private *priv, unsigned char byData)
        else
                byBBRxConf |= 0x20; /* 0010 0000 */
        priv->byBBVGACurrent = byData;
-       BBbWriteEmbedded(priv->PortOffset, 0x0A, byBBRxConf); /* CR10 */
+       BBbWriteEmbedded(priv, 0x0A, byBBRxConf); /* CR10 */
 }
 
 /*
@@ -2266,12 +2270,12 @@ void BBvSetVGAGainOffset(struct vnt_private *priv, unsigned char byData)
  *
  */
 void
-BBvSoftwareReset(void __iomem *dwIoBase)
+BBvSoftwareReset(struct vnt_private *priv)
 {
-       BBbWriteEmbedded(dwIoBase, 0x50, 0x40);
-       BBbWriteEmbedded(dwIoBase, 0x50, 0);
-       BBbWriteEmbedded(dwIoBase, 0x9C, 0x01);
-       BBbWriteEmbedded(dwIoBase, 0x9C, 0);
+       BBbWriteEmbedded(priv, 0x50, 0x40);
+       BBbWriteEmbedded(priv, 0x50, 0);
+       BBbWriteEmbedded(priv, 0x9C, 0x01);
+       BBbWriteEmbedded(priv, 0x9C, 0);
 }
 
 /*
@@ -2287,13 +2291,13 @@ BBvSoftwareReset(void __iomem *dwIoBase)
  *
  */
 void
-BBvPowerSaveModeON(void __iomem *dwIoBase)
+BBvPowerSaveModeON(struct vnt_private *priv)
 {
        unsigned char byOrgData;
 
-       BBbReadEmbedded(dwIoBase, 0x0D, &byOrgData);
+       BBbReadEmbedded(priv, 0x0D, &byOrgData);
        byOrgData |= BIT(0);
-       BBbWriteEmbedded(dwIoBase, 0x0D, byOrgData);
+       BBbWriteEmbedded(priv, 0x0D, byOrgData);
 }
 
 /*
@@ -2309,13 +2313,13 @@ BBvPowerSaveModeON(void __iomem *dwIoBase)
  *
  */
 void
-BBvPowerSaveModeOFF(void __iomem *dwIoBase)
+BBvPowerSaveModeOFF(struct vnt_private *priv)
 {
        unsigned char byOrgData;
 
-       BBbReadEmbedded(dwIoBase, 0x0D, &byOrgData);
+       BBbReadEmbedded(priv, 0x0D, &byOrgData);
        byOrgData &= ~(BIT(0));
-       BBbWriteEmbedded(dwIoBase, 0x0D, byOrgData);
+       BBbWriteEmbedded(priv, 0x0D, byOrgData);
 }
 
 /*
@@ -2333,11 +2337,11 @@ BBvPowerSaveModeOFF(void __iomem *dwIoBase)
  */
 
 void
-BBvSetTxAntennaMode(void __iomem *dwIoBase, unsigned char byAntennaMode)
+BBvSetTxAntennaMode(struct vnt_private *priv, unsigned char byAntennaMode)
 {
        unsigned char byBBTxConf;
 
-       BBbReadEmbedded(dwIoBase, 0x09, &byBBTxConf); /* CR09 */
+       BBbReadEmbedded(priv, 0x09, &byBBTxConf); /* CR09 */
        if (byAntennaMode == ANT_DIVERSITY) {
                /* bit 1 is diversity */
                byBBTxConf |= 0x02;
@@ -2348,7 +2352,7 @@ BBvSetTxAntennaMode(void __iomem *dwIoBase, unsigned char byAntennaMode)
                byBBTxConf &= 0xFD; /* 1111 1101 */
                byBBTxConf |= 0x04;
        }
-       BBbWriteEmbedded(dwIoBase, 0x09, byBBTxConf); /* CR09 */
+       BBbWriteEmbedded(priv, 0x09, byBBTxConf); /* CR09 */
 }
 
 /*
@@ -2366,11 +2370,11 @@ BBvSetTxAntennaMode(void __iomem *dwIoBase, unsigned char byAntennaMode)
  */
 
 void
-BBvSetRxAntennaMode(void __iomem *dwIoBase, unsigned char byAntennaMode)
+BBvSetRxAntennaMode(struct vnt_private *priv, unsigned char byAntennaMode)
 {
        unsigned char byBBRxConf;
 
-       BBbReadEmbedded(dwIoBase, 0x0A, &byBBRxConf); /* CR10 */
+       BBbReadEmbedded(priv, 0x0A, &byBBRxConf); /* CR10 */
        if (byAntennaMode == ANT_DIVERSITY) {
                byBBRxConf |= 0x01;
 
@@ -2380,7 +2384,7 @@ BBvSetRxAntennaMode(void __iomem *dwIoBase, unsigned char byAntennaMode)
                byBBRxConf &= 0xFE; /* 1111 1110 */
                byBBRxConf |= 0x02;
        }
-       BBbWriteEmbedded(dwIoBase, 0x0A, byBBRxConf); /* CR10 */
+       BBbWriteEmbedded(priv, 0x0A, byBBRxConf); /* CR10 */
 }
 
 /*
@@ -2396,17 +2400,17 @@ BBvSetRxAntennaMode(void __iomem *dwIoBase, unsigned char byAntennaMode)
  *
  */
 void
-BBvSetDeepSleep(void __iomem *dwIoBase, unsigned char byLocalID)
+BBvSetDeepSleep(struct vnt_private *priv, unsigned char byLocalID)
 {
-       BBbWriteEmbedded(dwIoBase, 0x0C, 0x17); /* CR12 */
-       BBbWriteEmbedded(dwIoBase, 0x0D, 0xB9); /* CR13 */
+       BBbWriteEmbedded(priv, 0x0C, 0x17); /* CR12 */
+       BBbWriteEmbedded(priv, 0x0D, 0xB9); /* CR13 */
 }
 
 void
-BBvExitDeepSleep(void __iomem *dwIoBase, unsigned char byLocalID)
+BBvExitDeepSleep(struct vnt_private *priv, unsigned char byLocalID)
 {
-       BBbWriteEmbedded(dwIoBase, 0x0C, 0x00); /* CR12 */
-       BBbWriteEmbedded(dwIoBase, 0x0D, 0x01); /* CR13 */
+       BBbWriteEmbedded(priv, 0x0C, 0x00); /* CR12 */
+       BBbWriteEmbedded(priv, 0x0D, 0x01); /* CR13 */
 }
 
 static