From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
To: "Greg Kroah-Hartman" <gregkh@suse.de>
Cc: devel@driverdev.osuosl.org,
Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>,
linux-kernel@vger.kernel.org
Subject: [PATCH 12/22] Staging: rtxxx0: unify RT{USB,MP}FilterCalibration()
Date: Sun, 16 Aug 2009 21:31:04 +0200 [thread overview]
Message-ID: <20090816193104.3789.12936.sendpatchset@localhost.localdomain> (raw)
In-Reply-To: <20090816192934.3789.3648.sendpatchset@localhost.localdomain>
From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Subject: [PATCH] Staging: rtxxx0: unify RT{USB,MP}FilterCalibration()
RTMP_BBP_IO_{READ,WRITE}8_BY_REG_ID equals RTUSB{Read,Write}BBPRegister
in case of USB chipsets so unify RT30xx and !RT30xx code.
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
drivers/staging/rt2860/common/rtmp_init.c | 154 +-----------------------------
1 file changed, 10 insertions(+), 144 deletions(-)
Index: b/drivers/staging/rt2860/common/rtmp_init.c
===================================================================
--- a/drivers/staging/rt2860/common/rtmp_init.c
+++ b/drivers/staging/rt2860/common/rtmp_init.c
@@ -1099,145 +1099,6 @@ NDIS_STATUS NICReadRegParameters(
========================================================================
*/
-#ifndef RT30xx
-VOID RTUSBFilterCalibration(
- IN PRTMP_ADAPTER pAd)
-{
- UCHAR R55x = 0, value, FilterTarget = 0x1E, BBPValue;
- UINT loop = 0, count = 0, loopcnt = 0, ReTry = 0;
- UCHAR RF_R24_Value = 0;
-
- // Give bbp filter initial value
- pAd->Mlme.CaliBW20RfR24 = 0x16;
- pAd->Mlme.CaliBW40RfR24 = 0x36; //Bit[5] must be 1 for BW 40
-
- do
- {
- if (loop == 1) //BandWidth = 40 MHz
- {
- // Write 0x27 to RF_R24 to program filter
- RF_R24_Value = 0x27;
- RT30xxWriteRFRegister(pAd, RF_R24, RF_R24_Value);
- FilterTarget = 0x19;
-
- // when calibrate BW40, BBP mask must set to BW40.
- RTUSBReadBBPRegister(pAd, BBP_R4, &BBPValue);
- BBPValue&= (~0x18);
- BBPValue|= (0x10);
- RTUSBWriteBBPRegister(pAd, BBP_R4, BBPValue);
- }
- else //BandWidth = 20 MHz
- {
- // Write 0x07 to RF_R24 to program filter
- RF_R24_Value = 0x07;
- RT30xxWriteRFRegister(pAd, RF_R24, RF_R24_Value);
- FilterTarget = 0x16;
- }
-
- // Write 0x01 to RF_R22 to enable baseband loopback mode
- RT30xxReadRFRegister(pAd, RF_R22, &value);
- value |= 0x01;
- RT30xxWriteRFRegister(pAd, RF_R22, value);
-
- // Write 0x00 to BBP_R24 to set power & frequency of passband test tone
- RTUSBWriteBBPRegister(pAd, BBP_R24, 0);
-
- do
- {
- // Write 0x90 to BBP_R25 to transmit test tone
- RTUSBWriteBBPRegister(pAd, BBP_R25, 0x90);
-
- RTMPusecDelay(1000);
- // Read BBP_R55[6:0] for received power, set R55x = BBP_R55[6:0]
- RTUSBReadBBPRegister(pAd, BBP_R55, &value);
- R55x = value & 0xFF;
-
- } while ((ReTry++ < 100) && (R55x == 0));
-
- // Write 0x06 to BBP_R24 to set power & frequency of stopband test tone
- RTUSBWriteBBPRegister(pAd, BBP_R24, 0x06);
-
- while(TRUE)
- {
- // Write 0x90 to BBP_R25 to transmit test tone
- RTUSBWriteBBPRegister(pAd, BBP_R25, 0x90);
-
- //We need to wait for calibration
- RTMPusecDelay(1000);
- RTUSBReadBBPRegister(pAd, BBP_R55, &value);
- value &= 0xFF;
- if ((R55x - value) < FilterTarget)
- {
- RF_R24_Value ++;
- }
- else if ((R55x - value) == FilterTarget)
- {
- RF_R24_Value ++;
- count ++;
- }
- else
- {
- break;
- }
-
- // prevent infinite loop cause driver hang.
- if (loopcnt++ > 100)
- {
- DBGPRINT(RT_DEBUG_ERROR, ("RTUSBFilterCalibration - can't find a valid value, loopcnt=%d stop calibrating", loopcnt));
- break;
- }
-
- // Write RF_R24 to program filter
- RT30xxWriteRFRegister(pAd, RF_R24, RF_R24_Value);
- }
-
- if (count > 0)
- {
- RF_R24_Value = RF_R24_Value - ((count) ? (1) : (0));
- }
-
- // Store for future usage
- if (loopcnt < 100)
- {
- if (loop++ == 0)
- {
- //BandWidth = 20 MHz
- pAd->Mlme.CaliBW20RfR24 = (UCHAR)RF_R24_Value;
- }
- else
- {
- //BandWidth = 40 MHz
- pAd->Mlme.CaliBW40RfR24 = (UCHAR)RF_R24_Value;
- break;
- }
- }
- else
- break;
-
- RT30xxWriteRFRegister(pAd, RF_R24, RF_R24_Value);
-
- // reset count
- count = 0;
- } while(TRUE);
-
- //
- // Set back to initial state
- //
- RTUSBWriteBBPRegister(pAd, BBP_R24, 0);
-
- RT30xxReadRFRegister(pAd, RF_R22, &value);
- value &= ~(0x01);
- RT30xxWriteRFRegister(pAd, RF_R22, value);
-
- // set BBP back to BW20
- RTUSBReadBBPRegister(pAd, BBP_R4, &BBPValue);
- BBPValue&= (~0x18);
- RTUSBWriteBBPRegister(pAd, BBP_R4, BBPValue);
-
- DBGPRINT(RT_DEBUG_TRACE, ("RTUSBFilterCalibration - CaliBW20RfR24=0x%x, CaliBW40RfR24=0x%x\n", pAd->Mlme.CaliBW20RfR24, pAd->Mlme.CaliBW40RfR24));
-}
-#endif /* RT30xx */
-#ifdef RT30xx
VOID RTMPFilterCalibration(
IN PRTMP_ADAPTER pAd)
{
@@ -1246,9 +1107,13 @@ VOID RTMPFilterCalibration(
UCHAR RF_R24_Value = 0;
// Give bbp filter initial value
+#ifndef RT30xx
+ pAd->Mlme.CaliBW20RfR24 = 0x16;
+ pAd->Mlme.CaliBW40RfR24 = 0x36; //Bit[5] must be 1 for BW 40
+#else
pAd->Mlme.CaliBW20RfR24 = 0x1F;
pAd->Mlme.CaliBW40RfR24 = 0x2F; //Bit[5] must be 1 for BW 40
-
+#endif
do
{
if (loop == 1) //BandWidth = 40 MHz
@@ -1266,11 +1131,12 @@ VOID RTMPFilterCalibration(
BBPValue&= (~0x18);
BBPValue|= (0x10);
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R4, BBPValue);
-
+#ifdef RT30xx
// set to BW40
RT30xxReadRFRegister(pAd, RF_R31, &value);
value |= 0x20;
RT30xxWriteRFRegister(pAd, RF_R31, value);
+#endif
}
else //BandWidth = 20 MHz
{
@@ -1281,11 +1147,12 @@ VOID RTMPFilterCalibration(
FilterTarget = 0x13;
else
FilterTarget = 0x16;
-
+#ifdef RT30xx
// set to BW20
RT30xxReadRFRegister(pAd, RF_R31, &value);
value &= (~0x20);
RT30xxWriteRFRegister(pAd, RF_R31, value);
+#endif
}
// Write 0x01 to RF_R22 to enable baseband loopback mode
@@ -1390,7 +1257,6 @@ VOID RTMPFilterCalibration(
DBGPRINT(RT_DEBUG_TRACE, ("RTMPFilterCalibration - CaliBW20RfR24=0x%x, CaliBW40RfR24=0x%x\n", pAd->Mlme.CaliBW20RfR24, pAd->Mlme.CaliBW40RfR24));
}
-#endif /* RT30xx */
VOID NICInitRT30xxRFRegisters(IN PRTMP_ADAPTER pAd)
{
@@ -1417,7 +1283,7 @@ VOID NICInitRT30xxRFRegisters(IN PRTMP_A
}
//For RF filter Calibration
- RTUSBFilterCalibration(pAd);
+ RTMPFilterCalibration(pAd);
}
#endif
#ifdef RT30xx
next prev parent reply other threads:[~2009-08-16 19:30 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-16 19:29 [PATCH 00/22] Staging: rt{286,287,307}0: various fixes/cleanups Bartlomiej Zolnierkiewicz
2009-08-16 19:29 ` [PATCH 01/22] Staging: rt2870: duplicated code is executed twice in AsicEvaluateRxAnt() Bartlomiej Zolnierkiewicz
2009-08-16 19:29 ` [PATCH 02/22] Staging: rt3070: fix build warnings Bartlomiej Zolnierkiewicz
2009-08-16 19:29 ` [PATCH 03/22] Staging: rtxxx0: remove support for older wireless extensions Bartlomiej Zolnierkiewicz
2009-08-16 19:29 ` [PATCH 04/22] Staging: rtxxx0: remove dead platform specific code Bartlomiej Zolnierkiewicz
2009-08-16 19:30 ` [PATCH 05/22] Staging: rtxxx0: kill RT8270_USB_DEVICES() macro Bartlomiej Zolnierkiewicz
2009-08-16 19:30 ` [PATCH 06/22] Staging: rtxxx0: PID checking fixes Bartlomiej Zolnierkiewicz
2009-08-16 19:30 ` [PATCH 07/22] Staging: rt3070: kill TimerQThr thread first in RT28xxThreadTerminate() Bartlomiej Zolnierkiewicz
2009-08-16 19:30 ` [PATCH 08/22] Staging: rtxxx0: kill PID macros Bartlomiej Zolnierkiewicz
2009-08-16 19:30 ` [PATCH 09/22] Staging: rtxxx0: remove unused defines Bartlomiej Zolnierkiewicz
2009-08-16 19:30 ` [PATCH 10/22] Staging: rtxxx0: unify different RT30xx{Read,Write}RFRegister() flavors Bartlomiej Zolnierkiewicz
2009-08-16 19:30 ` [PATCH 11/22] Staging: rtxxx0: remove superfluous RT30xx ifdefs Bartlomiej Zolnierkiewicz
2009-08-16 19:31 ` Bartlomiej Zolnierkiewicz [this message]
2009-08-16 19:31 ` [PATCH 13/22] Staging: rtxxx0: unify MlmeCheckPsmChange() Bartlomiej Zolnierkiewicz
2009-08-16 19:31 ` [PATCH 14/22] Staging: rtxxx0: unify AsicEvaluateRxAnt() Bartlomiej Zolnierkiewicz
2009-08-16 19:31 ` [PATCH 15/22] Staging: rtxxx0: remove dead DBG_DIAGNOSE code Bartlomiej Zolnierkiewicz
2009-08-16 19:31 ` [PATCH 16/22] Staging: rtxxx0: remove dead virtual adapter support Bartlomiej Zolnierkiewicz
2009-08-16 19:31 ` [PATCH 17/22] Staging: rtxxx0: debug messages fixes Bartlomiej Zolnierkiewicz
2009-08-16 19:31 ` [PATCH 18/22] Staging: rtxxx0: remove unused link_list.h Bartlomiej Zolnierkiewicz
2009-08-16 19:31 ` [PATCH 19/22] Staging: rtxxx0: remove superfluous function prototypes Bartlomiej Zolnierkiewicz
2009-08-16 19:31 ` [PATCH 20/22] Staging: rtxxx0: remove private debugging ioctls Bartlomiej Zolnierkiewicz
2009-08-16 19:32 ` [PATCH 21/22] Staging: rtxxx0: remove private ioctls Bartlomiej Zolnierkiewicz
2009-08-16 19:32 ` [PATCH 22/22] Staging: rtxxx0: remove unused code Bartlomiej Zolnierkiewicz
2009-08-17 3:47 ` [PATCH 00/22] Staging: rt{286,287,307}0: various fixes/cleanups Mike Galbraith
2009-08-17 3:57 ` Mike Galbraith
2009-08-17 4:20 ` Greg KH
2009-08-19 19:25 ` Bartlomiej Zolnierkiewicz
2009-08-20 5:44 ` Mike Galbraith
2009-08-23 13:18 ` Bartlomiej Zolnierkiewicz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090816193104.3789.12936.sendpatchset@localhost.localdomain \
--to=bzolnier@gmail.com \
--cc=devel@driverdev.osuosl.org \
--cc=gregkh@suse.de \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.