Hello everybody,
we found a strange behavior problem with the b43 driver. We begin
investigating this when doing some access tests with several boards:
we discovered that the Broadcom boards usually acquire the channel
usage with higher priority when the b43 driver is used as respect to
other vendor boards.
After investigating we saw that the intra-queue contention procedure
is carried out by the firmware which stores information, such as AIFS
and current backoffs for each queue, inside the shared memory. The
AIFS for each queue is used to compute the initial backoff so that
internal contention usually gives more priority to VO queue (smallest
AIFS) and less to background (biggest AIFS). AIFS parameters are
initialized by the driver which is told to use a 22 words long
structures. The firmware instead use 16 words structures: this means
that AIFS parameters initialized by the driver do not match the
corresponding values read by the firmware. We saw that the firmware
reads (2,0,0,0) instead of (2,2,3,7) which results in very short
backoff procedures.
Has anyone noticed similar behavior? For the sake of clarity, I'm
referring to latest (30 minutes ago) version of wireless-git and
broadcom-wl-4.150.10.5 driver version. I verified that all ucode5.s,
ucode9.s, ucode11.s, ucode13.s and ucode14.s firmwares use 16 words
structures, and the driver instead still uses 22 words long
structures. Probably the attached patch sorts out the problem.
I also noticed that the specs say that these structures are 16 words:
could not someone read 16 as 0x16 that finally became 0x16 = 22?
Cheers,
FG
--- b43.h.old 2008-09-10 21:12:59.000000000 +0200
+++ b43.h 2008-09-10 21:13:09.000000000 +0200
@@ -569,7 +569,7 @@
#define B43_QOS_VOICE B43_QOS_PARAMS(3)
/* QOS parameter hardware data structure offsets. */
-#define B43_NR_QOSPARAMS 22
+#define B43_NR_QOSPARAMS 16
enum {
B43_QOSPARAM_TXOP = 0,
B43_QOSPARAM_CWMIN,
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev