b43: Fix MAC control and microcode init
authorMichael Buesch <mb@bu3sch.de>
Tue, 22 Jan 2008 19:23:34 +0000 (20:23 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 28 Jan 2008 23:10:49 +0000 (15:10 -0800)
commit1f7d87b0ecacefe4541c75901cbcf29efba42ca6
tree74fc6e174a171b10b564161dd4eab3261ace4dee
parent4248d2f81159f62b7c7b83398fede653d449fd56
b43: Fix MAC control and microcode init

This zeros out all microcode related memory before loading
the microcode.

This also fixes initialization of the MAC control register.
The _only_ place where we overwrite the contents of the MAC control
register is at the beginning of b43_chip_init().
All other places must do read() -> mask/set -> write() to not
overwrite existing bits.

This also adds a longer delay for waiting for the microcode
to initialize itself. It seems that the current timeout is sufficient
on all available devices, but there's no real reason why we shouldn't
wait for up to one second. Slow embedded devices might exist.
Better safe than sorry.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/b43/main.c