[PATCH] ipw2200: Scale firmware loading watchdog with the firmware size
authorZhu Yi <yi.zhu@intel.com>
Tue, 24 Jan 2006 08:37:22 +0000 (16:37 +0800)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 31 Jan 2006 01:35:34 +0000 (20:35 -0500)
commit397ae121ee0116d3b4125d621f0ef528d1d52580
treeb4de052ca78d6c8b4c05494a4a297aac9e88190e
parent4bfdb91dcff0dd4b70922de263ccffffb8fb1d16
[PATCH] ipw2200: Scale firmware loading watchdog with the firmware size

I can't really help with why restarts happen, but the following patch
greatly increases the likelihood that a firmware reload will succeed
afterward on my thinkpad. It addresses two issues. First, sysfs module
loading and hotplug are asynchronous, and as such file operations on the
"loading" and "data" files are racy when you load 2 firmwares in quick
succession. Second, the timeout for DMAing the firmware needs to scale
with the size of the firmware being loaded. That is, the watchdog needs
to be on throughput, not on time alone.

I no longer get the firmware load errors, though this is at best a hacky
workaround for a racy interface. (Obviously, this does nothing to address
the fatal errors in firmware which cause reloads; it just causes the
initial loading and the reloads to work more often.)

Signed-off-by: Peter Jones <pjones@redhat.com>
Signed-off-by: Ben M Cahill <ben.m.cahill@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ipw2200.c