Am 20.03.2015 um 14:00 schrieb Felix Fietkau:
> On 2015-03-20 13:38, Oleksij Rempel wrote:
>> it is possible to reduce time needed for this function
>> by rplacing REG_WRITE with REG_RMW (plus dummy 0) and putt all commands
>> in same buffer.
>>
>> Signed-off-by: Oleksij Rempel <[email protected]>
>> ---
>>  drivers/net/wireless/ath/ath9k/eeprom_4k.c | 18 ++++++++++--------
>>  1 file changed, 10 insertions(+), 8 deletions(-)
>>
>> diff --git a/drivers/net/wireless/ath/ath9k/eeprom_4k.c 
>> b/drivers/net/wireless/ath/ath9k/eeprom_4k.c
>> index 291c1d1..56621be 100644
>> --- a/drivers/net/wireless/ath/ath9k/eeprom_4k.c
>> +++ b/drivers/net/wireless/ath/ath9k/eeprom_4k.c
>> @@ -772,15 +772,16 @@ static void ath9k_hw_4k_set_gain(struct ath_hw *ah,
>>                               struct ar5416_eeprom_4k *eep,
>>                               u8 txRxAttenLocal)
>>  {
>> -    REG_WRITE(ah, AR_PHY_SWITCH_CHAIN_0,
>> -              pModal->antCtrlChain[0]);
>> +    ENABLE_REG_RMW_BUFFER(ah);
>> +    REG_RMW(ah, AR_PHY_SWITCH_CHAIN_0,
>> +            pModal->antCtrlChain[0], 0);
> How about combining the WRITE/RMW buffering in ath9k_htc (automatically
> deciding whether to use RMW or WRITE for the whole transaction), instead
> of quirky looking REG_WRITE to REG_RMW conversions?

Yea, i was thinking about this too, but decided to go readable way. Not
to produce unexpected behaviour of WRITE or READ cmd.

>> -    REG_WRITE(ah, AR_PHY_TIMING_CTRL4(0),
>> -              (REG_READ(ah, AR_PHY_TIMING_CTRL4(0)) &
>> -               ~(AR_PHY_TIMING_CTRL4_IQCORR_Q_Q_COFF |
>> -                 AR_PHY_TIMING_CTRL4_IQCORR_Q_I_COFF)) |
>> -              SM(pModal->iqCalICh[0], AR_PHY_TIMING_CTRL4_IQCORR_Q_I_COFF) |
>> -              SM(pModal->iqCalQCh[0], AR_PHY_TIMING_CTRL4_IQCORR_Q_Q_COFF));
>> +    REG_RMW(ah, AR_PHY_TIMING_CTRL4(0),
>> +            (REG_READ(ah, AR_PHY_TIMING_CTRL4(0)) &
>> +             ~(AR_PHY_TIMING_CTRL4_IQCORR_Q_Q_COFF |
>> +               AR_PHY_TIMING_CTRL4_IQCORR_Q_I_COFF)) |
>> +            SM(pModal->iqCalICh[0], AR_PHY_TIMING_CTRL4_IQCORR_Q_I_COFF) |
>> +            SM(pModal->iqCalQCh[0], AR_PHY_TIMING_CTRL4_IQCORR_Q_Q_COFF), 
>> 0);
> If you translate it to REG_RMW, you should get rid of the REG_READ part.

Ok, thank you. I'll take a look.


-- 
Regards,
Oleksij

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to