wi driver issue: Hermes Card functionality changed

Benjamin Close <[email protected]>
Newsgroups gmane.os.freebsd.devel.mobile
Message-ID <[email protected]>
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.
[email protected]                   South Australia, 5095
F00D C83D 5F7E 5561 DF91  B74D E602 CAA3 4842 B5B4


_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.