On 2015-03-20 13:38, Oleksij Rempel wrote:
> Signed-off-by: Oleksij Rempel <li...@rempel-privat.de>
> ---
>  drivers/net/wireless/ath/ath9k/eeprom_def.c | 19 +++++++++++--------
>  1 file changed, 11 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/net/wireless/ath/ath9k/eeprom_def.c 
> b/drivers/net/wireless/ath/ath9k/eeprom_def.c
> index 0980590..4b43539 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,
>                                 struct ar5416_eeprom_def *eep,
>                                 u8 txRxAttenLocal, int regChainOffset, int i)
>  {
> +     ENABLE_REG_RMW_BUFFER(ah);
>       if (AR5416_VER_MASK >= AR5416_EEP_MINOR_VER_3) {
>               txRxAttenLocal = pModal->txRxAttenCh[i];
>  
> @@ -483,16 +484,16 @@ static void ath9k_hw_def_set_gain(struct ath_hw *ah,
>                             AR_PHY_GAIN_2GHZ_XATTEN2_DB,
>                             pModal->xatten2Db[i]);
>               } else {
> -                     REG_WRITE(ah, AR_PHY_GAIN_2GHZ + regChainOffset,
> +                     REG_RMW(ah, AR_PHY_GAIN_2GHZ + regChainOffset,
>                         (REG_READ(ah, AR_PHY_GAIN_2GHZ + regChainOffset) &
>                          ~AR_PHY_GAIN_2GHZ_BSW_MARGIN)
>                         | SM(pModal-> bswMargin[i],
> -                            AR_PHY_GAIN_2GHZ_BSW_MARGIN));
> -                     REG_WRITE(ah, AR_PHY_GAIN_2GHZ + regChainOffset,
> +                            AR_PHY_GAIN_2GHZ_BSW_MARGIN), 0);
> +                     REG_RMW(ah, AR_PHY_GAIN_2GHZ + regChainOffset,
>                         (REG_READ(ah, AR_PHY_GAIN_2GHZ + regChainOffset) &
>                          ~AR_PHY_GAIN_2GHZ_BSW_ATTEN)
>                         | SM(pModal->bswAtten[i],
> -                            AR_PHY_GAIN_2GHZ_BSW_ATTEN));
> +                            AR_PHY_GAIN_2GHZ_BSW_ATTEN), 0);
>               }
>       }
>  
> @@ -504,17 +505,19 @@ static void ath9k_hw_def_set_gain(struct ath_hw *ah,
>                     AR_PHY_RXGAIN + regChainOffset,
>                     AR9280_PHY_RXGAIN_TXRX_MARGIN, pModal->rxTxMarginCh[i]);
>       } else {
> -             REG_WRITE(ah,
> +             REG_RMW(ah,
>                         AR_PHY_RXGAIN + regChainOffset,
>                         (REG_READ(ah, AR_PHY_RXGAIN + regChainOffset) &
>                          ~AR_PHY_RXGAIN_TXRX_ATTEN)
> -                       | SM(txRxAttenLocal, AR_PHY_RXGAIN_TXRX_ATTEN));
> -             REG_WRITE(ah,
> +                       | SM(txRxAttenLocal, AR_PHY_RXGAIN_TXRX_ATTEN), 0);
> +             REG_RMW(ah,
>                         AR_PHY_GAIN_2GHZ + regChainOffset,
>                         (REG_READ(ah, AR_PHY_GAIN_2GHZ + regChainOffset) &
>                          ~AR_PHY_GAIN_2GHZ_RXTX_MARGIN) |
> -                       SM(pModal->rxTxMarginCh[i], 
> AR_PHY_GAIN_2GHZ_RXTX_MARGIN));
> +                       SM(pModal->rxTxMarginCh[i],
> +                       AR_PHY_GAIN_2GHZ_RXTX_MARGIN), 0);
>       }
> +     REG_RMW_BUFFER_FLUSH(ah);
Same in those chunks as in the other patch, do proper conversion to
REG_RMW by eliminating the REG_READ.

- Felix
_______________________________________________
ath9k-devel mailing list
ath9k-devel@lists.ath9k.org
https://lists.ath9k.org/mailman/listinfo/ath9k-devel

Reply via email to