Commit f2fdbc48 authored by Ivo van Doorn's avatar Ivo van Doorn Committed by John W. Linville

rt2x00: Fix EIFS timing value

Olivier reported a difference between the EIFS
values used in the legacy driver and the one in
the rt2x00 drivers.

In rt2x00 the value was
	( SIFS + (8 * (IEEE80211_HEADER + ACK_SIZE)) )
which comes down to 314us while the legacy driver uses the value 364us

This was caused because EIFS is: SIFS + DIFS + AckTime
This patch will fix this by adding the DIFS by the above value,
and creating a SHORT_EIFS define which uses the SHORT_DIFS.
Reported-by: default avatarOlivier Cornu <o.cornu@gmail.com>
Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent ed06387b
...@@ -108,7 +108,10 @@ ...@@ -108,7 +108,10 @@
#define SHORT_PIFS ( SIFS + SHORT_SLOT_TIME ) #define SHORT_PIFS ( SIFS + SHORT_SLOT_TIME )
#define DIFS ( PIFS + SLOT_TIME ) #define DIFS ( PIFS + SLOT_TIME )
#define SHORT_DIFS ( SHORT_PIFS + SHORT_SLOT_TIME ) #define SHORT_DIFS ( SHORT_PIFS + SHORT_SLOT_TIME )
#define EIFS ( SIFS + (8 * (IEEE80211_HEADER + ACK_SIZE)) ) #define EIFS ( SIFS + DIFS + \
(8 * (IEEE80211_HEADER + ACK_SIZE)) )
#define SHORT_EIFS ( SIFS + SHORT_DIFS + \
(8 * (IEEE80211_HEADER + ACK_SIZE)) )
/* /*
* Chipset identification * Chipset identification
......
...@@ -271,7 +271,7 @@ void rt2x00lib_config(struct rt2x00_dev *rt2x00dev, ...@@ -271,7 +271,7 @@ void rt2x00lib_config(struct rt2x00_dev *rt2x00dev,
libconf.sifs = SIFS; libconf.sifs = SIFS;
libconf.pifs = short_slot_time ? SHORT_PIFS : PIFS; libconf.pifs = short_slot_time ? SHORT_PIFS : PIFS;
libconf.difs = short_slot_time ? SHORT_DIFS : DIFS; libconf.difs = short_slot_time ? SHORT_DIFS : DIFS;
libconf.eifs = EIFS; libconf.eifs = short_slot_time ? SHORT_EIFS : EIFS;
} }
libconf.conf = conf; libconf.conf = conf;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment