aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJes Sorensen <Jes.Sorensen@redhat.com>2014-04-07 15:13:01 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-04-07 15:53:00 -0400
commitdda26427bd5252cbea876fe8a80050943c0dc642 (patch)
treef20a976c51401453406ef1e377341509ee3276dd
parent806192c07d889ab4821e396793bbcc4c7f2fad94 (diff)
staging: rtl8723au: The 8723 only has two paths
Converting the driver from the original RTL provided version, by error converted the code to use four, which caused all sorts of issues. The confusion was caused by the RTL driver having support for both two and four paths, and in some places had RF_PATH_MAX = 3. At the same time it kept the data structures hard coded for two paths, in particular the ones matching the efuse data. Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c35
-rw-r--r--drivers/staging/rtl8723au/hal/rtl8723a_rf6052.c8
-rw-r--r--drivers/staging/rtl8723au/include/Hal8723APhyCfg.h2
3 files changed, 0 insertions, 45 deletions
diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c b/drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c
index bac3f3bd5311..8400e6e2fca8 100644
--- a/drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c
+++ b/drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c
@@ -462,20 +462,12 @@ phy_InitBBRFRegisterDefinition(struct rtw_adapter *Adapter)
462 pHalData->PHYRegDef[RF_PATH_A].rfintfs = rFPGA0_XAB_RFInterfaceSW; 462 pHalData->PHYRegDef[RF_PATH_A].rfintfs = rFPGA0_XAB_RFInterfaceSW;
463 /* 16 MSBs if read 32-bit from 0x870 (16-bit for 0x872) */ 463 /* 16 MSBs if read 32-bit from 0x870 (16-bit for 0x872) */
464 pHalData->PHYRegDef[RF_PATH_B].rfintfs = rFPGA0_XAB_RFInterfaceSW; 464 pHalData->PHYRegDef[RF_PATH_B].rfintfs = rFPGA0_XAB_RFInterfaceSW;
465 /* 16 LSBs if read 32-bit from 0x874 */
466 pHalData->PHYRegDef[RF_PATH_C].rfintfs = rFPGA0_XCD_RFInterfaceSW;
467 /* 16 MSBs if read 32-bit from 0x874 (16-bit for 0x876) */
468 pHalData->PHYRegDef[RF_PATH_D].rfintfs = rFPGA0_XCD_RFInterfaceSW;
469 465
470 /* RF Interface Readback Value */ 466 /* RF Interface Readback Value */
471 /* 16 LSBs if read 32-bit from 0x8E0 */ 467 /* 16 LSBs if read 32-bit from 0x8E0 */
472 pHalData->PHYRegDef[RF_PATH_A].rfintfi = rFPGA0_XAB_RFInterfaceRB; 468 pHalData->PHYRegDef[RF_PATH_A].rfintfi = rFPGA0_XAB_RFInterfaceRB;
473 /* 16 MSBs if read 32-bit from 0x8E0 (16-bit for 0x8E2) */ 469 /* 16 MSBs if read 32-bit from 0x8E0 (16-bit for 0x8E2) */
474 pHalData->PHYRegDef[RF_PATH_B].rfintfi = rFPGA0_XAB_RFInterfaceRB; 470 pHalData->PHYRegDef[RF_PATH_B].rfintfi = rFPGA0_XAB_RFInterfaceRB;
475 /* 16 LSBs if read 32-bit from 0x8E4 */
476 pHalData->PHYRegDef[RF_PATH_C].rfintfi = rFPGA0_XCD_RFInterfaceRB;
477 /* 16 MSBs if read 32-bit from 0x8E4 (16-bit for 0x8E6) */
478 pHalData->PHYRegDef[RF_PATH_D].rfintfi = rFPGA0_XCD_RFInterfaceRB;
479 471
480 /* RF Interface Output (and Enable) */ 472 /* RF Interface Output (and Enable) */
481 /* 16 LSBs if read 32-bit from 0x860 */ 473 /* 16 LSBs if read 32-bit from 0x860 */
@@ -497,14 +489,10 @@ phy_InitBBRFRegisterDefinition(struct rtw_adapter *Adapter)
497 /* BB Band Select */ 489 /* BB Band Select */
498 pHalData->PHYRegDef[RF_PATH_A].rfLSSI_Select = rFPGA0_XAB_RFParameter; 490 pHalData->PHYRegDef[RF_PATH_A].rfLSSI_Select = rFPGA0_XAB_RFParameter;
499 pHalData->PHYRegDef[RF_PATH_B].rfLSSI_Select = rFPGA0_XAB_RFParameter; 491 pHalData->PHYRegDef[RF_PATH_B].rfLSSI_Select = rFPGA0_XAB_RFParameter;
500 pHalData->PHYRegDef[RF_PATH_C].rfLSSI_Select = rFPGA0_XCD_RFParameter;
501 pHalData->PHYRegDef[RF_PATH_D].rfLSSI_Select = rFPGA0_XCD_RFParameter;
502 492
503 /* Tx AGC Gain Stage (same for all path. Should we remove this?) */ 493 /* Tx AGC Gain Stage (same for all path. Should we remove this?) */
504 pHalData->PHYRegDef[RF_PATH_A].rfTxGainStage = rFPGA0_TxGainStage; 494 pHalData->PHYRegDef[RF_PATH_A].rfTxGainStage = rFPGA0_TxGainStage;
505 pHalData->PHYRegDef[RF_PATH_B].rfTxGainStage = rFPGA0_TxGainStage; 495 pHalData->PHYRegDef[RF_PATH_B].rfTxGainStage = rFPGA0_TxGainStage;
506 pHalData->PHYRegDef[RF_PATH_C].rfTxGainStage = rFPGA0_TxGainStage;
507 pHalData->PHYRegDef[RF_PATH_D].rfTxGainStage = rFPGA0_TxGainStage;
508 496
509 /* Tranceiver A~D HSSI Parameter-1 */ 497 /* Tranceiver A~D HSSI Parameter-1 */
510 /* wire control parameter1 */ 498 /* wire control parameter1 */
@@ -523,63 +511,40 @@ phy_InitBBRFRegisterDefinition(struct rtw_adapter *Adapter)
523 rFPGA0_XAB_SwitchControl; /* TR/Ant switch control */ 511 rFPGA0_XAB_SwitchControl; /* TR/Ant switch control */
524 pHalData->PHYRegDef[RF_PATH_B].rfSwitchControl = 512 pHalData->PHYRegDef[RF_PATH_B].rfSwitchControl =
525 rFPGA0_XAB_SwitchControl; 513 rFPGA0_XAB_SwitchControl;
526 pHalData->PHYRegDef[RF_PATH_C].rfSwitchControl =
527 rFPGA0_XCD_SwitchControl;
528 pHalData->PHYRegDef[RF_PATH_D].rfSwitchControl =
529 rFPGA0_XCD_SwitchControl;
530 514
531 /* AGC control 1 */ 515 /* AGC control 1 */
532 pHalData->PHYRegDef[RF_PATH_A].rfAGCControl1 = rOFDM0_XAAGCCore1; 516 pHalData->PHYRegDef[RF_PATH_A].rfAGCControl1 = rOFDM0_XAAGCCore1;
533 pHalData->PHYRegDef[RF_PATH_B].rfAGCControl1 = rOFDM0_XBAGCCore1; 517 pHalData->PHYRegDef[RF_PATH_B].rfAGCControl1 = rOFDM0_XBAGCCore1;
534 pHalData->PHYRegDef[RF_PATH_C].rfAGCControl1 = rOFDM0_XCAGCCore1;
535 pHalData->PHYRegDef[RF_PATH_D].rfAGCControl1 = rOFDM0_XDAGCCore1;
536 518
537 /* AGC control 2 */ 519 /* AGC control 2 */
538 pHalData->PHYRegDef[RF_PATH_A].rfAGCControl2 = rOFDM0_XAAGCCore2; 520 pHalData->PHYRegDef[RF_PATH_A].rfAGCControl2 = rOFDM0_XAAGCCore2;
539 pHalData->PHYRegDef[RF_PATH_B].rfAGCControl2 = rOFDM0_XBAGCCore2; 521 pHalData->PHYRegDef[RF_PATH_B].rfAGCControl2 = rOFDM0_XBAGCCore2;
540 pHalData->PHYRegDef[RF_PATH_C].rfAGCControl2 = rOFDM0_XCAGCCore2;
541 pHalData->PHYRegDef[RF_PATH_D].rfAGCControl2 = rOFDM0_XDAGCCore2;
542 522
543 /* RX AFE control 1 */ 523 /* RX AFE control 1 */
544 pHalData->PHYRegDef[RF_PATH_A].rfRxIQImbalance = rOFDM0_XARxIQImbalance; 524 pHalData->PHYRegDef[RF_PATH_A].rfRxIQImbalance = rOFDM0_XARxIQImbalance;
545 pHalData->PHYRegDef[RF_PATH_B].rfRxIQImbalance = rOFDM0_XBRxIQImbalance; 525 pHalData->PHYRegDef[RF_PATH_B].rfRxIQImbalance = rOFDM0_XBRxIQImbalance;
546 pHalData->PHYRegDef[RF_PATH_C].rfRxIQImbalance = rOFDM0_XCRxIQImbalance;
547 pHalData->PHYRegDef[RF_PATH_D].rfRxIQImbalance = rOFDM0_XDRxIQImbalance;
548 526
549 /* RX AFE control 1 */ 527 /* RX AFE control 1 */
550 pHalData->PHYRegDef[RF_PATH_A].rfRxAFE = rOFDM0_XARxAFE; 528 pHalData->PHYRegDef[RF_PATH_A].rfRxAFE = rOFDM0_XARxAFE;
551 pHalData->PHYRegDef[RF_PATH_B].rfRxAFE = rOFDM0_XBRxAFE; 529 pHalData->PHYRegDef[RF_PATH_B].rfRxAFE = rOFDM0_XBRxAFE;
552 pHalData->PHYRegDef[RF_PATH_C].rfRxAFE = rOFDM0_XCRxAFE;
553 pHalData->PHYRegDef[RF_PATH_D].rfRxAFE = rOFDM0_XDRxAFE;
554 530
555 /* Tx AFE control 1 */ 531 /* Tx AFE control 1 */
556 pHalData->PHYRegDef[RF_PATH_A].rfTxIQImbalance = rOFDM0_XATxIQImbalance; 532 pHalData->PHYRegDef[RF_PATH_A].rfTxIQImbalance = rOFDM0_XATxIQImbalance;
557 pHalData->PHYRegDef[RF_PATH_B].rfTxIQImbalance = rOFDM0_XBTxIQImbalance; 533 pHalData->PHYRegDef[RF_PATH_B].rfTxIQImbalance = rOFDM0_XBTxIQImbalance;
558 pHalData->PHYRegDef[RF_PATH_C].rfTxIQImbalance = rOFDM0_XCTxIQImbalance;
559 pHalData->PHYRegDef[RF_PATH_D].rfTxIQImbalance = rOFDM0_XDTxIQImbalance;
560 534
561 /* Tx AFE control 2 */ 535 /* Tx AFE control 2 */
562 pHalData->PHYRegDef[RF_PATH_A].rfTxAFE = rOFDM0_XATxAFE; 536 pHalData->PHYRegDef[RF_PATH_A].rfTxAFE = rOFDM0_XATxAFE;
563 pHalData->PHYRegDef[RF_PATH_B].rfTxAFE = rOFDM0_XBTxAFE; 537 pHalData->PHYRegDef[RF_PATH_B].rfTxAFE = rOFDM0_XBTxAFE;
564 pHalData->PHYRegDef[RF_PATH_C].rfTxAFE = rOFDM0_XCTxAFE;
565 pHalData->PHYRegDef[RF_PATH_D].rfTxAFE = rOFDM0_XDTxAFE;
566 538
567 /* Tranceiver LSSI Readback SI mode */ 539 /* Tranceiver LSSI Readback SI mode */
568 pHalData->PHYRegDef[RF_PATH_A].rfLSSIReadBack = rFPGA0_XA_LSSIReadBack; 540 pHalData->PHYRegDef[RF_PATH_A].rfLSSIReadBack = rFPGA0_XA_LSSIReadBack;
569 pHalData->PHYRegDef[RF_PATH_B].rfLSSIReadBack = rFPGA0_XB_LSSIReadBack; 541 pHalData->PHYRegDef[RF_PATH_B].rfLSSIReadBack = rFPGA0_XB_LSSIReadBack;
570 pHalData->PHYRegDef[RF_PATH_C].rfLSSIReadBack = rFPGA0_XC_LSSIReadBack;
571 pHalData->PHYRegDef[RF_PATH_D].rfLSSIReadBack = rFPGA0_XD_LSSIReadBack;
572 542
573 /* Tranceiver LSSI Readback PI mode */ 543 /* Tranceiver LSSI Readback PI mode */
574 pHalData->PHYRegDef[RF_PATH_A].rfLSSIReadBackPi = 544 pHalData->PHYRegDef[RF_PATH_A].rfLSSIReadBackPi =
575 TransceiverA_HSPI_Readback; 545 TransceiverA_HSPI_Readback;
576 pHalData->PHYRegDef[RF_PATH_B].rfLSSIReadBackPi = 546 pHalData->PHYRegDef[RF_PATH_B].rfLSSIReadBackPi =
577 TransceiverB_HSPI_Readback; 547 TransceiverB_HSPI_Readback;
578 /* pHalData->PHYRegDef[RF_PATH_C].rfLSSIReadBackPi =
579 rFPGA0_XC_LSSIReadBack; */
580 /* pHalData->PHYRegDef[RF_PATH_D].rfLSSIReadBackPi =
581 rFPGA0_XD_LSSIReadBack; */
582
583} 548}
584 549
585/* The following is for High Power PA */ 550/* The following is for High Power PA */
diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_rf6052.c b/drivers/staging/rtl8723au/hal/rtl8723a_rf6052.c
index 2a7238bacdc8..ed39c18c3f84 100644
--- a/drivers/staging/rtl8723au/hal/rtl8723a_rf6052.c
+++ b/drivers/staging/rtl8723au/hal/rtl8723a_rf6052.c
@@ -434,11 +434,9 @@ static int phy_RF6052_Config_ParaFile(struct rtw_adapter *Adapter)
434 /*----Store original RFENV control type----*/ 434 /*----Store original RFENV control type----*/
435 switch (eRFPath) { 435 switch (eRFPath) {
436 case RF_PATH_A: 436 case RF_PATH_A:
437 case RF_PATH_C:
438 u4RegValue = PHY_QueryBBReg(Adapter, pPhyReg->rfintfs, bRFSI_RFENV); 437 u4RegValue = PHY_QueryBBReg(Adapter, pPhyReg->rfintfs, bRFSI_RFENV);
439 break; 438 break;
440 case RF_PATH_B: 439 case RF_PATH_B:
441 case RF_PATH_D:
442 u4RegValue = PHY_QueryBBReg(Adapter, pPhyReg->rfintfs, bRFSI_RFENV<<16); 440 u4RegValue = PHY_QueryBBReg(Adapter, pPhyReg->rfintfs, bRFSI_RFENV<<16);
443 break; 441 break;
444 } 442 }
@@ -468,20 +466,14 @@ static int phy_RF6052_Config_ParaFile(struct rtw_adapter *Adapter)
468 if (HAL_STATUS_FAILURE == ODM_ConfigRFWithHeaderFile23a(&pHalData->odmpriv, (enum RF_RADIO_PATH)eRFPath, (enum RF_RADIO_PATH)eRFPath)) 466 if (HAL_STATUS_FAILURE == ODM_ConfigRFWithHeaderFile23a(&pHalData->odmpriv, (enum RF_RADIO_PATH)eRFPath, (enum RF_RADIO_PATH)eRFPath))
469 rtStatus = _FAIL; 467 rtStatus = _FAIL;
470 break; 468 break;
471 case RF_PATH_C:
472 break;
473 case RF_PATH_D:
474 break;
475 } 469 }
476 470
477 /*----Restore RFENV control type----*/; 471 /*----Restore RFENV control type----*/;
478 switch (eRFPath) { 472 switch (eRFPath) {
479 case RF_PATH_A: 473 case RF_PATH_A:
480 case RF_PATH_C:
481 PHY_SetBBReg(Adapter, pPhyReg->rfintfs, bRFSI_RFENV, u4RegValue); 474 PHY_SetBBReg(Adapter, pPhyReg->rfintfs, bRFSI_RFENV, u4RegValue);
482 break; 475 break;
483 case RF_PATH_B: 476 case RF_PATH_B:
484 case RF_PATH_D:
485 PHY_SetBBReg(Adapter, pPhyReg->rfintfs, bRFSI_RFENV<<16, u4RegValue); 477 PHY_SetBBReg(Adapter, pPhyReg->rfintfs, bRFSI_RFENV<<16, u4RegValue);
486 break; 478 break;
487 } 479 }
diff --git a/drivers/staging/rtl8723au/include/Hal8723APhyCfg.h b/drivers/staging/rtl8723au/include/Hal8723APhyCfg.h
index 1478d311683a..4b7f3479c0a9 100644
--- a/drivers/staging/rtl8723au/include/Hal8723APhyCfg.h
+++ b/drivers/staging/rtl8723au/include/Hal8723APhyCfg.h
@@ -60,8 +60,6 @@ enum HW90_BLOCK {
60enum RF_RADIO_PATH { 60enum RF_RADIO_PATH {
61 RF_PATH_A = 0, /* Radio Path A */ 61 RF_PATH_A = 0, /* Radio Path A */
62 RF_PATH_B = 1, /* Radio Path B */ 62 RF_PATH_B = 1, /* Radio Path B */
63 RF_PATH_C = 2, /* Radio Path C */
64 RF_PATH_D = 3, /* Radio Path D */
65 RF_PATH_MAX /* Max RF number 90 support */ 63 RF_PATH_MAX /* Max RF number 90 support */
66}; 64};
67 65