#6686: Updating the atheroswifi driver to the FreeBSD HEAD svn rev 211330 (from 204100) ------------------------------+--------------------------------------------- Reporter: jstressman | Owner: nobody Type: enhancement | Status: new Priority: normal | Milestone: R1 Component: Drivers/Network | Version: R1/Development Resolution: | Keywords: atheros Blocked By: | Has a Patch: 0 Platform: All | Blocking: ------------------------------+--------------------------------------------- Comment (by jstressman): Looks like I forgot to include some of the changelog... http://svn.freebsd.org/viewvc/base/head/sys/dev/ath/if_ath.c?view=log That includes the changes to if_ath.c, which include the IFQ_MAXLEN -> ifqmaxlen change that I was referring to in my previous comment. From fbsd revision 207554: {{{ Add new tunable 'net.link.ifqmaxlen' to set default send interface queue length. The default value for this parameter is 50, which is quite low for many of today's uses and the only way to modify this parameter right now is to edit if_var.h file. Also add read-only sysctl with the same name, so that it's possible to retrieve the current value. }}} The rest of the changes to if_ath.c are as follows: {{{ /head/sys/dev/ath/if_ath.c Revision 211303 Modified Sat Aug 14 14:18:02 2010 UTC (6 weeks, 6 days ago) by adrian Export ath stats via snmp, rather than requiring a debugging interface and "athstats". Revision 211136 Modified Tue Aug 10 07:56:56 2010 UTC (7 weeks, 3 days ago) by adrian Don't delay updating the longcal timer - instead, update the longcal flag immediately so it's only set once per longcal interval. Without this, the current AR5416 code will continuously spam NF calibrations during a periodic calibration if the longcal flag is set. The longcal flag wouldn't be cleared until the calibration method indicates that calibrations are "complete". This drops the rate of NF calibration updates down from "once every shortcal" (ie, every 100ms) during a periodic calibration, to only once per "longcal" interval. Spamming NF calibrations every 100ms caused some potentially horrific issues in noisy environments as NF calibrations can take longer than 100ms and this spamming can cause invalid NF calibration results to be read back - leading to missed beacons, and thus leading to a stuck beacon situation. Stuck beacons cause interface resets, which restart calibrations. This means that the longcal calibration runs every 100ms (shortcal) until all initial calibrations are completed. This spamming can then cause the above issues which leads to stuck beacons, leading to interface resets, etc, etc. Quite annoying. Revision 209799 Modified Thu Jul 8 14:08:03 2010 UTC (2 months, 3 weeks ago) by adrian Extend the ath debugging a little to log the interface name. Some devices have >1 atheros card and the current debug prints make it impossible to tell which interface is being unhappy. Revision 209156 Modified Mon Jun 14 08:24:00 2010 UTC (3 months, 2 weeks ago) by bschmidt sc_lastrs is also used in case the sending station is not known, for example in a split IBSS scenario. Therefore always assign sc_lastrs. This removes a hack I committed in r206457. Revision 206457 Modified Sat Apr 10 13:54:00 2010 UTC (5 months, 3 weeks ago) by bschmidt Add WPA-None support: * WPA-None requires ap_scan=2: The major difference between ap_scan=1 (default) and 2 is, that no IEEE80211_IOC_SCAN* ioctls/functions are called, though, there is a dependency on those. For example the call to wpa_driver_bsd_scan() sets the interface UP, this never happens, therefore the interface must be marked up in wpa_driver_bsd_associate(). IEEE80211_IOC_SSID also is not called, which means that the SSID has not been set prior to the IEEE80211_MLME_ASSOC call. * WPA-None has no support for sequence number updates, it doesn't make sense to check for replay violations.. * I had some crashes right after the switch to RUN state, issue is that sc->sc_lastrs was not yet defined. }}} Also missed listing the changes for http://svn.freebsd.org/viewvc/base?view=revision&revision=211299 which changed both if_ath.c and if_athioctl.h {{{ /head/sys/dev/ath/if_ath.c /head/sys/dev/ath/if_athioctl.h Revision 211299 Modified Sat Aug 14 14:01:12 2010 UTC (6 weeks, 6 days ago) by adrian Add a global counter of missed beacons. The existing missed beacon count is reset once a beacon isn't missed. }}} All of these changes are included in the patch (minus the "ifqmaxlen" one), I just forgot to include the change logs here. :) I think that's all of it now. ;) -- Ticket URL: <http://dev.haiku-os.org/ticket/6686#comment:3> Haiku <http://dev.haiku-os.org> Haiku - the operating system.