334-ath9k-use-REG_RMW-and-rmw-buffer-in-ath9k_hw_def_set.patch 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. From: Oleksij Rempel <[email protected]>
  2. Date: Sun, 22 Mar 2015 19:30:03 +0100
  3. Subject: [PATCH] ath9k: use REG_RMW and rmw buffer in
  4. ath9k_hw_def_set_gain
  5. Signed-off-by: Oleksij Rempel <[email protected]>
  6. Signed-off-by: Kalle Valo <[email protected]>
  7. ---
  8. --- a/drivers/net/wireless/ath/ath9k/eeprom_def.c
  9. +++ b/drivers/net/wireless/ath/ath9k/eeprom_def.c
  10. @@ -466,6 +466,7 @@ static void ath9k_hw_def_set_gain(struct
  11. struct ar5416_eeprom_def *eep,
  12. u8 txRxAttenLocal, int regChainOffset, int i)
  13. {
  14. + ENABLE_REG_RMW_BUFFER(ah);
  15. if (AR5416_VER_MASK >= AR5416_EEP_MINOR_VER_3) {
  16. txRxAttenLocal = pModal->txRxAttenCh[i];
  17. @@ -483,16 +484,12 @@ static void ath9k_hw_def_set_gain(struct
  18. AR_PHY_GAIN_2GHZ_XATTEN2_DB,
  19. pModal->xatten2Db[i]);
  20. } else {
  21. - REG_WRITE(ah, AR_PHY_GAIN_2GHZ + regChainOffset,
  22. - (REG_READ(ah, AR_PHY_GAIN_2GHZ + regChainOffset) &
  23. - ~AR_PHY_GAIN_2GHZ_BSW_MARGIN)
  24. - | SM(pModal-> bswMargin[i],
  25. - AR_PHY_GAIN_2GHZ_BSW_MARGIN));
  26. - REG_WRITE(ah, AR_PHY_GAIN_2GHZ + regChainOffset,
  27. - (REG_READ(ah, AR_PHY_GAIN_2GHZ + regChainOffset) &
  28. - ~AR_PHY_GAIN_2GHZ_BSW_ATTEN)
  29. - | SM(pModal->bswAtten[i],
  30. - AR_PHY_GAIN_2GHZ_BSW_ATTEN));
  31. + REG_RMW(ah, AR_PHY_GAIN_2GHZ + regChainOffset,
  32. + SM(pModal-> bswMargin[i], AR_PHY_GAIN_2GHZ_BSW_MARGIN),
  33. + AR_PHY_GAIN_2GHZ_BSW_MARGIN);
  34. + REG_RMW(ah, AR_PHY_GAIN_2GHZ + regChainOffset,
  35. + SM(pModal->bswAtten[i], AR_PHY_GAIN_2GHZ_BSW_ATTEN),
  36. + AR_PHY_GAIN_2GHZ_BSW_ATTEN);
  37. }
  38. }
  39. @@ -504,17 +501,14 @@ static void ath9k_hw_def_set_gain(struct
  40. AR_PHY_RXGAIN + regChainOffset,
  41. AR9280_PHY_RXGAIN_TXRX_MARGIN, pModal->rxTxMarginCh[i]);
  42. } else {
  43. - REG_WRITE(ah,
  44. - AR_PHY_RXGAIN + regChainOffset,
  45. - (REG_READ(ah, AR_PHY_RXGAIN + regChainOffset) &
  46. - ~AR_PHY_RXGAIN_TXRX_ATTEN)
  47. - | SM(txRxAttenLocal, AR_PHY_RXGAIN_TXRX_ATTEN));
  48. - REG_WRITE(ah,
  49. - AR_PHY_GAIN_2GHZ + regChainOffset,
  50. - (REG_READ(ah, AR_PHY_GAIN_2GHZ + regChainOffset) &
  51. - ~AR_PHY_GAIN_2GHZ_RXTX_MARGIN) |
  52. - SM(pModal->rxTxMarginCh[i], AR_PHY_GAIN_2GHZ_RXTX_MARGIN));
  53. + REG_RMW(ah, AR_PHY_RXGAIN + regChainOffset,
  54. + SM(txRxAttenLocal, AR_PHY_RXGAIN_TXRX_ATTEN),
  55. + AR_PHY_RXGAIN_TXRX_ATTEN);
  56. + REG_RMW(ah, AR_PHY_GAIN_2GHZ + regChainOffset,
  57. + SM(pModal->rxTxMarginCh[i], AR_PHY_GAIN_2GHZ_RXTX_MARGIN),
  58. + AR_PHY_GAIN_2GHZ_RXTX_MARGIN);
  59. }
  60. + REG_RMW_BUFFER_FLUSH(ah);
  61. }
  62. static void ath9k_hw_def_set_board_values(struct ath_hw *ah,