diff options
| author | Oleksij Rempel <linux@rempel-privat.de> | 2015-03-22 14:30:03 -0400 |
|---|---|---|
| committer | Kalle Valo <kvalo@codeaurora.org> | 2015-03-30 04:31:43 -0400 |
| commit | eaa4059d56fdbeb1633c94e82d54849688d96777 (patch) | |
| tree | 9bb0d5966026fec4410845f1a1be89aa1446b02c | |
| parent | b1c1a26461a79a289e08d0c04bf8520e305bf05d (diff) | |
ath9k: use REG_RMW and rmw buffer in ath9k_hw_def_set_gain
Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
| -rw-r--r-- | drivers/net/wireless/ath/ath9k/eeprom_def.c | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/drivers/net/wireless/ath/ath9k/eeprom_def.c b/drivers/net/wireless/ath/ath9k/eeprom_def.c index 098059039351..056f516bf017 100644 --- a/drivers/net/wireless/ath/ath9k/eeprom_def.c +++ b/drivers/net/wireless/ath/ath9k/eeprom_def.c | |||
| @@ -466,6 +466,7 @@ static void ath9k_hw_def_set_gain(struct ath_hw *ah, | |||
| 466 | struct ar5416_eeprom_def *eep, | 466 | struct ar5416_eeprom_def *eep, |
| 467 | u8 txRxAttenLocal, int regChainOffset, int i) | 467 | u8 txRxAttenLocal, int regChainOffset, int i) |
| 468 | { | 468 | { |
| 469 | ENABLE_REG_RMW_BUFFER(ah); | ||
| 469 | if (AR5416_VER_MASK >= AR5416_EEP_MINOR_VER_3) { | 470 | if (AR5416_VER_MASK >= AR5416_EEP_MINOR_VER_3) { |
| 470 | txRxAttenLocal = pModal->txRxAttenCh[i]; | 471 | txRxAttenLocal = pModal->txRxAttenCh[i]; |
| 471 | 472 | ||
| @@ -483,16 +484,12 @@ static void ath9k_hw_def_set_gain(struct ath_hw *ah, | |||
| 483 | AR_PHY_GAIN_2GHZ_XATTEN2_DB, | 484 | AR_PHY_GAIN_2GHZ_XATTEN2_DB, |
| 484 | pModal->xatten2Db[i]); | 485 | pModal->xatten2Db[i]); |
| 485 | } else { | 486 | } else { |
| 486 | REG_WRITE(ah, AR_PHY_GAIN_2GHZ + regChainOffset, | 487 | REG_RMW(ah, AR_PHY_GAIN_2GHZ + regChainOffset, |
| 487 | (REG_READ(ah, AR_PHY_GAIN_2GHZ + regChainOffset) & | 488 | SM(pModal-> bswMargin[i], AR_PHY_GAIN_2GHZ_BSW_MARGIN), |
| 488 | ~AR_PHY_GAIN_2GHZ_BSW_MARGIN) | 489 | AR_PHY_GAIN_2GHZ_BSW_MARGIN); |
| 489 | | SM(pModal-> bswMargin[i], | 490 | REG_RMW(ah, AR_PHY_GAIN_2GHZ + regChainOffset, |
| 490 | AR_PHY_GAIN_2GHZ_BSW_MARGIN)); | 491 | SM(pModal->bswAtten[i], AR_PHY_GAIN_2GHZ_BSW_ATTEN), |
| 491 | REG_WRITE(ah, AR_PHY_GAIN_2GHZ + regChainOffset, | 492 | AR_PHY_GAIN_2GHZ_BSW_ATTEN); |
| 492 | (REG_READ(ah, AR_PHY_GAIN_2GHZ + regChainOffset) & | ||
| 493 | ~AR_PHY_GAIN_2GHZ_BSW_ATTEN) | ||
| 494 | | SM(pModal->bswAtten[i], | ||
| 495 | AR_PHY_GAIN_2GHZ_BSW_ATTEN)); | ||
| 496 | } | 493 | } |
| 497 | } | 494 | } |
| 498 | 495 | ||
| @@ -504,17 +501,14 @@ static void ath9k_hw_def_set_gain(struct ath_hw *ah, | |||
| 504 | AR_PHY_RXGAIN + regChainOffset, | 501 | AR_PHY_RXGAIN + regChainOffset, |
| 505 | AR9280_PHY_RXGAIN_TXRX_MARGIN, pModal->rxTxMarginCh[i]); | 502 | AR9280_PHY_RXGAIN_TXRX_MARGIN, pModal->rxTxMarginCh[i]); |
| 506 | } else { | 503 | } else { |
| 507 | REG_WRITE(ah, | 504 | REG_RMW(ah, AR_PHY_RXGAIN + regChainOffset, |
| 508 | AR_PHY_RXGAIN + regChainOffset, | 505 | SM(txRxAttenLocal, AR_PHY_RXGAIN_TXRX_ATTEN), |
| 509 | (REG_READ(ah, AR_PHY_RXGAIN + regChainOffset) & | 506 | AR_PHY_RXGAIN_TXRX_ATTEN); |
| 510 | ~AR_PHY_RXGAIN_TXRX_ATTEN) | 507 | REG_RMW(ah, AR_PHY_GAIN_2GHZ + regChainOffset, |
| 511 | | SM(txRxAttenLocal, AR_PHY_RXGAIN_TXRX_ATTEN)); | 508 | SM(pModal->rxTxMarginCh[i], AR_PHY_GAIN_2GHZ_RXTX_MARGIN), |
| 512 | REG_WRITE(ah, | 509 | AR_PHY_GAIN_2GHZ_RXTX_MARGIN); |
| 513 | AR_PHY_GAIN_2GHZ + regChainOffset, | ||
| 514 | (REG_READ(ah, AR_PHY_GAIN_2GHZ + regChainOffset) & | ||
| 515 | ~AR_PHY_GAIN_2GHZ_RXTX_MARGIN) | | ||
| 516 | SM(pModal->rxTxMarginCh[i], AR_PHY_GAIN_2GHZ_RXTX_MARGIN)); | ||
| 517 | } | 510 | } |
| 511 | REG_RMW_BUFFER_FLUSH(ah); | ||
| 518 | } | 512 | } |
| 519 | 513 | ||
| 520 | static void ath9k_hw_def_set_board_values(struct ath_hw *ah, | 514 | static void ath9k_hw_def_set_board_values(struct ath_hw *ah, |
