On Wednesday 10 September 2008 21:42:57 Francesco Gringoli wrote:
> 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?

The specs are ambiguous here.
The specs table for QoS clearly has 0x16 fields. So I implemented it
this way and read the "foobar has 16 words" text in hex.

"How many people can read hex, if only you and dead people can read hex?" ;)


> --- 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,

PS: Can you please avoid starting yet another thread for the topic?
We already have one.

Please, guys, keep _threads_. It's important to _not_ start new threads
all the time, so email archive searching is made possible. This is _also_
the case for private mail from you.
You're not the only one in my inbox, but every time I have to search for
your old mail it's a headache.
So good subjects (this one is _not_ a good one) and not breaking threads
is very important.

-- 
Greetings Michael.
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to