On Friday 22 February 2008 14:16:06 Johannes Berg wrote:
> 
> On Thu, 2008-02-21 at 17:57 +0100, Michael Buesch wrote:
> > Can you please test if this fixes beaconing?
> 
> Hmm, unfortunately not. This results in continuous beacon update
> interrupts because when both templates are valid we keep them valid all
> the time. Hence, it's not usable. I really wonder wtf. is going on. Why
> do we even have two beacon templates if we can't mark them both as valid
> at the same time?

I _guess_ they have two templates to update them round-robin.
So if you need one updated, the microcode still has a copy of the
old one to use in the other template.
Just a guess, but makes sense to me.

> I think what we should do is this:
> 
>  * we upload both beacon templates whenever we control them and it's
>    necessary
>  * however, we only mark one of them as hardware valid
> 
> Then, when the "beacon template ready (for modification by host)"
> interrupt comes in, we check for which one the interrupt came in and
> mark the other template as valid immediately. This allows us to mark it
> *really* quickly, ie. with just a single MMIO read/write and could be
> done even in the interrupt handler itself.
> 
> Then, we can lazily see later if we need to change the beacon template
> data and upload that without having too much timing pressure. Then, on
> the next interrupt, we switch to this one etc.

tricky :)

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

Reply via email to