linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC/T] b43: to few loop tries in do_dummy_tx
@ 2008-09-29 18:31 Larry Finger
  2008-09-29 18:38 ` Michael Buesch
  2008-09-30 16:34 ` Artem Antonov
  0 siblings, 2 replies; 16+ messages in thread
From: Larry Finger @ 2008-09-29 18:31 UTC (permalink / raw)
  To: Michael Buesch; +Cc: Broadcom Linux, wireless, fback+bcm

Michael,

I have started modifying my copy of b43 to see if I can locate any
coding problems that might be causing the PHY transmission errors. To
start with, I am checking all the sections that use udelay. The main
reason is that when a bug in the CPU timer cut all delays in half, I
got these errors in b43legacy. I also noted the report this morning
that compiler and toolchain versions seem to be important.

One of the first places I looked was in do_dummy_tx. When I checked
the spin-on-condition loops in this routine, I found that the 3rd
always used the maximum number of loops and exited before the
condition was met. I increased the number of possible loops from 10 to
20 and found that it always takes 17 or 18 passes for the condition to
be met on my machine.

The existing code matches specs - I even checked the code in
4.150.10.5. It is too early to tell if this has anything to do with
the errors, but I suggest the following change:

diff --git a/drivers/net/wireless/b43/main.c
b/drivers/net/wireless/b43/main.c
index 7205a93..af60122 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -814,7 +814,7 @@ void b43_dummy_transmission(struct b43_wldev *dev)
 			break;
 		udelay(10);
 	}
-	for (i = 0x00; i < 0x0A; i++) {
+	for (i = 0x00; i < 0x19; i++) {
 		value = b43_read16(dev, 0x0690);
 		if (!(value & 0x0100))
 			break;

Using 25 passes gives a little margin for CPUs that are much faster
than mine. Perhaps the margin should even be bigger.

Larry



^ permalink raw reply related	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2008-09-30 22:11 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-29 18:31 [RFC/T] b43: to few loop tries in do_dummy_tx Larry Finger
2008-09-29 18:38 ` Michael Buesch
2008-09-29 21:16   ` Peter Stuge
2008-09-29 21:28     ` Larry Finger
2008-09-30  5:50       ` Peter Stuge
2008-09-30 13:28         ` Michael Buesch
2008-09-30 13:46           ` gavron
2008-09-30 13:54             ` Michael Buesch
2008-09-30 14:11           ` Holger Schurig
2008-09-30 14:22             ` Michael Buesch
2008-09-30 14:13           ` Peter Stuge
2008-09-30 14:21             ` Michael Buesch
2008-09-30 13:26     ` Michael Buesch
2008-09-30 16:34 ` Artem Antonov
2008-09-30 20:02   ` Stefanik Gábor
2008-09-30 22:11     ` Larry Finger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).