Subject: Re: wi driver issues [was Re: driver for Lucent WaveLan/IEEE 802.11 committed]
To: None <current-users@netbsd.org>
From: Jeff Rizzo <riz@boogers.sf.ca.us>
List: current-users
Date: 07/19/1999 19:48:15
On Mon, Jul 19, 1999 at 05:20:34PM -0700, Jeff Rizzo wrote:
> Well, I've now been playing with the driver on my Thinkpad 600 for the
> better part of a day (thanks to Chris Hopps who pointed out that the IO
> space allocated for it was overlapped an unconfigured device), and I've
> noticed three things, the first two of which may or may not be related:
>
> 1. The card never comes up correctly the first time it's ifconfig'ed up.
> No IRQ is assigned for it, and consequently any attempted accesses
> result in "wi0: device timeout". However, if I bring the interface
> down, then up again, it works fine. (even in powersaving mode!)
>
> 2. Suspend mode on the laptop doesn't seem to work correctly once wi0
> is probed; calling apm suspend seems to put it in Standby mode
> instead. (Which, incidentally, seems to be broken on this machine;
> it may or may not be related to PR 6279 ... I've put the patch in,
> which seems to clear up the suspend problem, but...) It's calling
> apm_suspend, because /etc/apm/suspend gets called, but the mode
> behaves more like standby...
OK, I've got more info on this. With a little more checking, it seems that
as long as the wavelan card is in, and the A/C power is connected, it
goes into standby mode, but if the A/C is disconnected, it will go into
full suspend. This is indeed weird, but as a BIOS update from IBM seems
to have fixed the standby weirdness, I can live with this particular quirk.
Now to hack my startup scripts to run wiconfig! :)
Perhaps there should be a kernel option for compiling in BSS mode as the
default, as opposed to ad hoc mode? Just a thought...
Helpful hint: To toggle power-save mode (Wavelan card must have firmware
updated to v2.00, and the Wavepoint base firmware must be 2.03), put the
following in /etc/apm/battery:
# look for 'wi' interfaces (WaveLAN IEEE), and put them in power-saving
# mode. (Only do this for interfaces which are up)
INTERFACES=`/sbin/ifconfig -l -u`
for i in $INTERFACES; do
case $i in
wi*)
/usr/sbin/wiconfig -i $i -P 1
;;
esac
done
And this in /etc/apm/line:
# look for 'wi' interfaces (WaveLAN IEEE), and take them out of
# power-saving mode.
INTERFACES=`/sbin/ifconfig -l -u`
for i in $INTERFACES; do
case $i in
wi*)
/usr/sbin/wiconfig -i $i -P 0
;;
esac
done
Hope this helps someone, and I'll be shutting up now. Thanks to all who
provided assistance.
+j
--
Jeff Rizzo http://boogers.sf.ca.us/~riz