wi driver issue: Hermes Card functionality changed
Benjamin Close
cisbjc at cs.unisa.edu.au
Thu May 1 19:09:08 PDT 2003
Hi All,
I've been trying to work out why my lucent card no longer works with
dstumbler.
Yes I know I should be using a prism card, but the lucent card used to
work reasonably well finding active acess points, it just couldn't find
them all.
First a bit of background:
FreeBSD draco.nodomain.yet 5.0-CURRENT FreeBSD 5.0-CURRENT #0: Thu Apr
3 14:56:50 CST 2003
wi0: <WaveLAN/IEEE> at port 0x100-0x13f irq 10 function 0 config 1 on
pccard1
wi0: 802.11 address: 00:60:1d:f1:5a:ce
wi0: using Lucent Technologies, WaveLAN/IEEE
wi0: Lucent Firmware: Station (8.10.1)
wi0: supported rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
I narrowed the problem down to a change in the wi driver. File if_wi.c
-r1.121 -r1.122 (NetBSD driver merge).
Specifically wi_ioctl used to handle SIOCSWAVELAN to do:
<snip>
/*
* if we're getting a scan request from a wavelan card
* (non-prism2), send out a cmd_inquire to the card to scan
* results for the scan will be received through the info
* interrupt handler. otherwise the scan request can be
* directly handled by a prism2 card's rid interface.
*/
} else if (wreq.wi_type == WI_RID_SCAN_REQ &&
sc->sc_firmware_type == WI_LUCENT) {
wi_cmd(sc, WI_CMD_INQUIRE, WI_INFO_SCAN_RESULTS, 0, 0);
After the change:
SIOCSWAVELAN-> SIOCSIFGENERIC
and so:
wi_ioctl -> wi_set_cfg
The WI_RID_SCAN_REQ case is not handled by wi_set_cfg so the default
case occurrs:
default:
if (sc->sc_enabled) {
error = wi_write_rid(sc, wreq.wi_type, wreq.wi_val,
len);
if (error)
break;
}
error = ieee80211_cfgset(ifp, cmd, data);
break;
Now, the Lucent card does not support the WI_RID_SCAN_REQ.
So either wi_write_rid or ieee80211_cfgset fail (haven't worked out
which) and dstumbler ends up with an ioctl: Operation not supported by
device.
Is there anyway to modify wi_set_cfg to handle the WI_RID_SCAN_REQ and
pass the correct parameter WI_INFO_SCAN_RESULTS in order to make
dstumbler work as it did in FreeBSD 4.8 & FreeBSD 5.0-Release? Or is it
a case of API change, fix the app?
Cheers,
Benjamin
--
3D Research Associate / System Administrator +61 8 8302 3669
School of Computer and Information Science Room D1-07, ML Campus
University of South Australia Mawson Lakes Blvd.
Benjamin.Close at cs.unisa.edu.au South Australia, 5095
F00D C83D 5F7E 5561 DF91 B74D E602 CAA3 4842 B5B4
More information about the freebsd-mobile
mailing list