[rt2x00-users] [RFC/RFT 1/4] rt2800: radio 3xxx: reprogram only lower bits of RF_R3

Gertjan van Wingerde gwingerde at gmail.com
Wed Jan 25 08:28:47 AEDT 2012


On 01/24/12 15:06, Stanislaw Gruszka wrote:
> Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>

Acked-by: Gertjan van Wingerde <gwingerde at gmail.com>

Checked against the rt30xx channel switching code of the vendor driver
as well. This change is appropriate for those chips as well.

> ---
>  drivers/net/wireless/rt2x00/rt2800.h    |    5 +++++
>  drivers/net/wireless/rt2x00/rt2800lib.c |    5 ++++-
>  2 files changed, 9 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/net/wireless/rt2x00/rt2800.h b/drivers/net/wireless/rt2x00/rt2800.h
> index 2571a2f..abf2ae5 100644
> --- a/drivers/net/wireless/rt2x00/rt2800.h
> +++ b/drivers/net/wireless/rt2x00/rt2800.h
> @@ -1796,6 +1796,11 @@ struct mac_iveiv_entry {
>  #define RFCSR2_RESCAL_EN		FIELD8(0x80)
>  
>  /*
> + * RFCSR 3:
> + */
> +#define RFCSR3_K			FIELD8(0x0f)
> +
> +/*
>   * FRCSR 5:
>   */
>  #define RFCSR5_R1			FIELD8(0x0c)
> diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
> index 165535c..006347e 100644
> --- a/drivers/net/wireless/rt2x00/rt2800lib.c
> +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
> @@ -1648,7 +1648,10 @@ static void rt2800_config_channel_rf3xxx(struct rt2x00_dev *rt2x00dev,
>  	u8 rfcsr;
>  
>  	rt2800_rfcsr_write(rt2x00dev, 2, rf->rf1);
> -	rt2800_rfcsr_write(rt2x00dev, 3, rf->rf3);
> +
> +	rt2800_rfcsr_read(rt2x00dev, 3, &rfcsr);
> +	rt2x00_set_field8(&rfcsr, RFCSR3_K, rf->rf3);
> +	rt2800_rfcsr_write(rt2x00dev, 3, rfcsr);
>  
>  	rt2800_rfcsr_read(rt2x00dev, 6, &rfcsr);
>  	rt2x00_set_field8(&rfcsr, RFCSR6_R1, rf->rf2);


-- 
---
Gertjan




More information about the users mailing list