Date: Fri, 02 May 2003 11:40:13 +0930 From: Benjamin Close <cisbjc@cs.unisa.edu.au> To: freebsd-mobile@FreeBSD.ORG Subject: wi driver issue: Hermes Card functionality changed Message-ID: <3EB1D385.5080602@cs.unisa.edu.au>
next in thread | raw e-mail | index | archive | help
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@cs.unisa.edu.au South Australia, 5095 F00D C83D 5F7E 5561 DF91 B74D E602 CAA3 4842 B5B4
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3EB1D385.5080602>