[rt2x00-users] [PATCH 1/2] rt2x00: Initialize AMPDU_BA_WINSIZE register

Ivo Van Doorn ivdoorn at gmail.com
Sat Sep 4 13:47:33 UTC 2010


On Fri, Sep 3, 2010 at 12:48 PM, Helmut Schaa
<helmut.schaa at googlemail.com> wrote:
> Since we're not using the AMPDU_BA_WINSIZE register to force the BlockAck
> window size (we specify it in every TXWI) we should initialize it to 0.
>
> Signed-off-by: Helmut Schaa <helmut.schaa at googlemail.com>

Applied to rt2x00.git

> ---
>  drivers/net/wireless/rt2x00/rt2800.h    |   12 ++++++++++++
>  drivers/net/wireless/rt2x00/rt2800lib.c |    8 ++++++++
>  2 files changed, 20 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/net/wireless/rt2x00/rt2800.h b/drivers/net/wireless/rt2x00/rt2800.h
> index 70a5cb8..2edc774 100644
> --- a/drivers/net/wireless/rt2x00/rt2800.h
> +++ b/drivers/net/wireless/rt2x00/rt2800.h
> @@ -639,6 +639,18 @@
>  #define LED_CFG_LED_POLAR              FIELD32(0x40000000)
>
>  /*
> + * AMPDU_BA_WINSIZE: Force BlockAck window size
> + * FORCE_WINSIZE_ENABLE:
> + *   0: Disable forcing of BlockAck window size
> + *   1: Enable forcing of BlockAck window size, overwrites values BlockAck
> + *      window size values in the TXWI
> + * FORCE_WINSIZE: BlockAck window size
> + */
> +#define AMPDU_BA_WINSIZE               0x1040
> +#define AMPDU_BA_WINSIZE_FORCE_WINSIZE_ENABLE FIELD32(0x00000020)
> +#define AMPDU_BA_WINSIZE_FORCE_WINSIZE FIELD32(0x0000001f)
> +
> +/*
>  * XIFS_TIME_CFG: MAC timing
>  * CCKM_SIFS_TIME: unit 1us. Applied after CCK RX/TX
>  * OFDM_SIFS_TIME: unit 1us. Applied after OFDM RX/TX
> diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
> index ac92e7c..54e9d21 100644
> --- a/drivers/net/wireless/rt2x00/rt2800lib.c
> +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
> @@ -2008,6 +2008,14 @@ static int rt2800_init_registers(struct rt2x00_dev *rt2x00dev)
>        rt2800_register_write(rt2x00dev, LG_FBK_CFG1, reg);
>
>        /*
> +        * Do not force the BA window size, we use the TXWI to set it
> +        */
> +       rt2800_register_read(rt2x00dev, AMPDU_BA_WINSIZE, &reg);
> +       rt2x00_set_field32(&reg, AMPDU_BA_WINSIZE_FORCE_WINSIZE_ENABLE, 0);
> +       rt2x00_set_field32(&reg, AMPDU_BA_WINSIZE_FORCE_WINSIZE, 0);
> +       rt2800_register_write(rt2x00dev, AMPDU_BA_WINSIZE, reg);
> +
> +       /*
>         * We must clear the error counters.
>         * These registers are cleared on read,
>         * so we may pass a useless variable to store the value.
> --
> 1.7.1
>
>



More information about the users mailing list