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
