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
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to