[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, ®);
> + rt2x00_set_field32(®, AMPDU_BA_WINSIZE_FORCE_WINSIZE_ENABLE, 0);
> + rt2x00_set_field32(®, 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