Changes in 1.2.0

* Add IEEE80211_RADIOTAP_TSFT for promiscuous mode
* Fix make patch_kernel problem

Changes in 1.1.4

* Enable wireless extension passive scan (thanks to Thomas King)
* Fix deadlock detected by lockdep
* Add pci .shutdown handler
* Fix kernel Oops if cmdlog debug is enabled
* mark "iwconfig retry 255" as invalid
* remove the MAC timestamp present field from radiotap head
* Fix ipw2200 QOS parameters endian issue
* remove unused struct ipw_rx_buffer
* Reassociate even if set the same essid (thanks to Bill Moss)
* ipw_wx_set_essid fix (thanks to Bill Moss)
* SIOCGIWFREQ ioctl returns frequency rather than channel (thanks to
  Ingo van Lil)
* always enable frequently used debugging code

Changes in 1.1.3

* Add kernel 2.6.8 compatibility support patches
* Replace bash-specific constructions for verify_wifi_hw script
* Make Makefile deal better with CONFIG_* definitions
* Remove KSRC_OUTPUT checking for compiling external modules
* Always enable frequently used debugging code
* SIOCGIWFREQ ioctl returns frequency rather than channel (thanks to Ingo van Lil)
* ipw_wx_set_essid fix (thanks to Bill Moss)
* Reassociate even if set the same essid (thanks to Bill Moss)
* Remove unused struct ipw_rx_buffer
* Fix a possible SMP deadlock bug found by lockdep
* Fix QoS parameters big endian issue (thanks to Jackie Wu)

Changes in 1.1.2

* Fix endian issue with v3.0 firmware image format
* Set the 'fixed' flags in wext get_rate (thanks Jean II)
* Do not conitune loading fw if kmalloc fails (thanks to Ingo Molnar)
* Add module_param support for antenna selection
* Generates a scan event after a scan has completed (thanks to Jean II)
* Fix TX QoS enabled frames problem
* Exponential averaging for signal and noise Level (thnaks to Bill Moss)
* New rtap_iface RX support
* ability to forward Tx'd packets (thanks Stefen)
* addition of channel information to the radiotap header in Tx'd frames
* allow user space to set up some simplistic filters for what data to
  forward to user space.
* provides 'filters' script to see what filters are available
* provides 'ipwstats.c' sample C program that will open the rtap
  interface and parse out the radiotap header information.
* added version string fields so the version string indicates what is
  configured (ie, you'll see 1.1.1kpmd if you are using a snapshot
  (Kernel.. previously -git), promiscuous (p), monitor (m), debug (d) build

Changes in 1.1.1

* Filter unsupported channels out in ad-hoc mode
* Change debug level for firmware error logging
* Export `debug' module param only if CONFIG_IPW2200_DEBUG
* Set a meaningful silence threshold value
* Enable the "slow diversity" algorithm
* Wireless extension sensitivity threshold support (thanks to
  Olivier Hochreutiner)
* Switch to the new ipw2200-fw-3.0 image format
* Fix script `unload' "only return from a function" problem
* Update README.ipw2100 set_power description

Changes in 1.1.0

* Revert the wrong fix for fragmentation problem in 1.0.14

Changes in 1.0.14

* Fix IW_QUAL_DBM undefined problem if WIRELESS_EXT < 19 (thanks to
  Bill Moss)
* Fix fragmentation problem with software encryption

Changes in 1.0.13

* Fix DHCP broken problem caused by is_multicast_ether_addr doesn't
  include broadcast ether address (thanks to Olivier Hochreutiner)

Changes in 1.0.12

* Fix debug option cannot enable problem (thanks to Henrik Brix Andersen)
* Suppress "Unknown notification..." warning message
* Add signal level to iwlist scan output (thanks to Bill Moss)
* Remove the WPA enabled card associates to non-WPA AP checking (thanks
  to Stefan Rompf)
* Fix compile error on kernels w/ WIRELESS_EXT < 18
* Replace ipw specific frame_hdr_len() with generic ieee80211_get_hdrlen()
* Fix rf_kill is activated problem after mode changing if module parameter
  'disable=1' is used

Changes in 1.0.11

* Fix software crypto shared WEP authentication problem (thanks to
  Andrew Morton)
* Stop netdev queue if h/w doesn't have space for new packets
* Print geography code upon module load (thanks to Henrik Brix Andersen)
* Fix WPA network selection problem (thanks to Stefan Rompf)
* Fix a potential NULL pointer dereference if CONFIG_IPW2200_DEBUG is
  not defined
* Fix ->eeprom[EEPROM_VERSION] check (thanks to Alexey Dobriyan)
* Support WE-18 WPA enc_capa (thanks to Dan Williams)
* Disable hwcrypto by default as a temporary workaround for the
  frequent firmware restart problem (thanks to Andreas Happe)
* Convert semaphore to mutexes (thanks to Ingo Molnar)

Changes in 1.0.10

* Fix a QoS send_command argument switch problem (thanks to
  Henrik Brix Andersen)
* Fix a variable referenced after kfree() bug

Changes in 1.0.9

* Scale firmware loading watchdog with the firmware size (thanks
  to Peter Jones)
* Add module parameter to enable/disable roaming
* Make LED blinking frequency independ of HZ (thanks to Clemens Buchacher)
* Replace HZ calculation with jiffies_to_msec()
* Add LEAP authentication algorithm support
* Mask out the WEP_KEY command dump from debug log for security reason
  (thanks to Nick Kralevich)
* Fixed indirect SRAM/register 8/16-bit write routines for
  non-dword-aligned destination addresses
* Fixed sw_reset doesn't clear the static essid
* Fix a slab corruption problem caused by ipw2200 error log buffer
  incorrect calculation
* Disallow direct scanning when device is down (thanks to Pekka Enberg)
* Fixed "iwspy ethx off" causes kernel panic
* Fixed ipw2200 returns NETDEV_TX_BUSY even if queue is not full

Changes in 1.0.8

* Added channel support for ipw2200 cards identified as 'ZZR'
* Fixed problem with not being able to send broadcast packets.
* Fixed older Wireless Extension compatibility

Changes in 1.0.7

NOTE:  In order to upgrade to 1.0.7, you must:

1. Obtain the ieee80211 subsystem (v1.1.5 or later) from 
   http://ieee80211.sf.net
2. Obtain the latest firmware (v2.4) from 
   http://ipw2200.sf.net/firmware.php

* Fix problem with 'Driver using old /proc/net/wireless' message (thanks 
  to Benoit Boissinot)
* Fixed #771 problem with too many (8) bytes being received when using 
  AES/hwcrypto.
* Fixed problem with get_cmd_string not existing if CONFIG_IPW_DEBUG is 
  not set.
* Added code to filter out WPA networks if only shared key WEP is 
  enabled (resolving a firmware restart)
* Fixed support of mixed PTK/GTK CCMP/TKIP support
* Fixed is_network_packet to check for broadcast packets
* Modified all places where firmware loading can fail to report 
  the errno in decimal format for easy tracking (thanks to Peter 
  Jones)
* Fixed 760 problem with setting WEP key in monitor mode causes IV loss 
  and decrypt attempt on captured packets.
* Fixed 455 problem with frequent channel changes causing a firmware 
  error.
* Updated copyright strings
* Modified firmware error and event log capturing to capture into 
  allocated data blocks vs. pulling from registers.
* Changed ipw_dump_nic_error_log to ipw_dump_error_log and adjusted to 
  use pre-allocated log blocks.
* Added wait_state wakeup on scan completion.
* Added event_log and error_log sysfs entries.
* Modified all ipw_send_cmd() usage to report errors within ipw_send_cmd 
  vs. within each of the callers.  This allows uniform error returns as 
  well as uniform debug logging.
* Modified ipw_config and STATUS_INIT setting to correct race 
  condition with request_scan being called before initialized if invoked 
  from insmod, resulting in no association occurring during boot until 
  iwlist scan is run.
* Updated version stamp for firmware from 2.3 to 2.4.
* Fix firmware error when setting tx_power.
* Fixed #751 Fix driver association requires manual scan.
* Fix ipw_wx_get_txpow shows wrong disabled value.
* Fixed #701 Fix a misuse of ieee->mode with ieee->iw_mode.
* Fixed the ad-hoc network WEP key list issue.
* Fixed #792 Fix WPA-PSK AES both for -Dipw and -Dwext.
* Disable host fragmentation in open mode since IPW2200/2915 hardware
  support hardware fragmentation.
* Workaround kernel BUG_ON panic caused by unexpected duplicate packets.
* Added more useful geography encoding so people's experience with
  iwconfig matches what their hardware can actually do in regard to
  supported channel maps, etc.
* Misc. updates to be in sync w/ latest ieee80211 subsystem
	- Use of ieee80211_hdr to ieee80211_hdr_Naddr
	- Added is_queue_full for 802.11e support.
	- Added handle_probe_response, handle_beacon, 
          handle_association_response callbacks.
* Changed default # of missed beacons to miss before disassociation 
  to 24 (vs. 9 which is too low in most environments)
* [unstable] Added command log sysfs entry for recording firmware 
  interactions even in non-debug builds
* Radiotap type frames support for monitor mode, which requires Libpcap 
  0.9.3+ to parse correctly in the user space (thanks to Mike Kershaw 
  for the radiotap addition, and Stefan Rompf who provided an initial 
  implementation for adding AVS which then motivated the radiotap work.)
* Fixed #801 problem with intermittent firmware restarts in weak signal 
  areas due to roaming logic
* Fixed some compiler issues if CONFIG_IPW2200_QOS is enabled.

Changes in 1.0.6

NOTE:  In order to upgrade to 1.0.6, you must obtain the ieee80211 
subsystem (v1.0.2 or later) from http://ieee80211.sf.net

* Fixed #637 problem with setting Tx power on A band (thanks to Liu 
  Hong)
* Fixed abg_ture -> abg_true to sync with ieee80211-1.0.2 (thanks to Liu 
  Hong)
* Fixed #667 problem with 'No space for Tx' (thanks to Zhu Yi)
* Fix hardware encryption (both WEP and AES) doesn't work with fragmentation.
  Firmware sends received packets with double sized ICV/MIC (thanks to 
  Zhu Yi)
* Fix is_duplicate_packet() bug for fragmentation number setting. 
  (thanks to Zhu Yi)
* Fixed type-o in Makefile 'direectory -> directory' (thanks to 
  Elie De Brauwer)
* Fixed Makefile use of MODVER (thanks to Zhu Yi)

Changes in 1.0.5

NOTE:  In order to upgrade to 1.0.5, you must obtain the ieee80211 
subsystem from http://ieee80211.sf.net

* Fixed #452 problem with setting retry limit (thanks to Hong Liu)
* Fixed #592 race condition during association causing firmware errors
* Fixed #602 problem with building in 64-bit environment
* Fixed #625 problem with SCAN_REQUEST_EXT sometimes failing
* Fixed #645 problem with bit rate not decreasing when moving laptop 
  farther from AP
* Fixed #656 problem with 'iwconfig eth1 mode auto' and 'modprobe' 
  locking the system
* Fixed #667 problem with "No space for Tx" for hwcrypto=1
* Fixed #680 problem with compiling against kernel patched with Software
  Suspend 2.1.8.7 (thanks to svetljo <svetljo@gmx.de>)
* Fixed #685 kernel panic in rmmod caused by led work is still queued
* Fixed #695 problem with network doesn't reassociate after suspend/resume
* Fixed #701 problem with 'iwprvi sw_reset' not resetting the card from 
  monitor mode
* Fixed #702 compilation error against 2.6.12
* Fixed #710 problem with monitor mode being used after a WEP key has 
  been configured
* Enhance remove-old to tell modules will be unloaded and then unload them
  (thanks to Alejandro Bonilla)
* INSTALL and ISSUES update (thanks to Alejandro Bonilla)
* Cosmetic README fix (thanks to Alejandro Bonilla)
* Fixed network->mode vs. priv->ieee->iw_mode checking and README update
  (thanks to Ben Cahill)
* Fixed "Unknown management packet %d" warning
* Fixed setting channels multiple times in monitor mode causes scan stopped
* Fixed ipw_wx_sw_reset doesn't switch firmware if mode is changed.
* Add duplicate packet checking code (kill ping DUP! and TKIP replay warning)
* Fix hardware encryption (both WEP and AES) doesn't work with fragmentation.
* Removed ieee80211 subsystem from being part of the distribution.  
  Please see the INSTALL document for information on obtaining and 
  installing the ieee80211 modules.

Changes in 1.0.4

NOTE: In order to upgrade to 1.0.4 you must also upgrade your 
firmware to 2.3.  You can download the firmware from 
http://ipw2200.sf.net/firmware.php.

* Added some run time data via the 'stats' sysfs entry.
* Fixed #627 problem with open APs not working with wpa_supplicant
* Fixed swapped memset arguments in ieee80211_tx (thanks to Jesper Juhl)
* Fixed problem with CONFIG_IEEE80211_ defines not being configured when 
  built as an in-kernel module (thanks to Olivier Blin)
* Fixed #632 problem with 'txpower auto' setting power incorrectly (thanks 
  to Kai Groner)
* Fixed #634 problem with 'iwconfig eth1 frag 0' hanging the shell
* Fixed problem with adapter not fully powering off during suspend to RAM or
  when module unloaded.
* Improved support of iwlist freq|chan and setting of channels via iwconfig 
  to correctly check channel limits (added ieee80211_geos)
* Fixed #645 problem with turning fixed rates off not taking effect until 
  you reload the driver
* Fixed problem with firmware restart if wpa_supplicant was used to set a key
  that wasn't exactly 5 or 13 bytes in length.
* Fixed #623 Added iwpriv sw_reset extension to reset sw parameters
* Added speed_scan channel scan list support
* Added managment frame export to user space with frame statistics
* Fixed #652 Modified the driver to load the EEPROM data even if RF KILL is
  active during driver load
* Global s#CX2_#IPW_#g to make code more consistent
* Fixed #572 problem with setting txpower to auto
* Fixed #656 problem with kernel oops if mode auto; modprobe -r ipw2200
* Added QoS (CONFIG_IPW_QOS) support.  This is being actively developed but
  is the first step in getting WMM support into the driver and the kernel.
* Fixed some race conditions wich channel changes, association, and scan
  abort that could periodically cause a firmware restart.
* Misc. changes to the ieee80211 subsystem to clean up code and add additional
  support.
* Added some extensions to export scan and network statistics to user space
  (exposed through speed_scan and net_stats sysfs entries)
* Fixed #661 problem with 'pci' script (thanks to ajksf@xs4all.nl)
* Fixed #654 problem compiling against kernel patched with SWSUSP2 (thanks to
  Henrik Brix Andersen)
* Fixed a few bugs in how monitor mode was supported (scan lists 
  weren't quite right)
* Updated the firmware requirement from 2.2 to 2.3 which supports
  monitor mode (thanks to Marek Rudniewski and Jacek Wysoczynski)


Changes in 1.0.3

* Fix #609 problem if SUSPEND2 included on kernels that do not support 
  the _BUILTIN defines.
* Fix #556 by changing 'make install' target path to /lib/modules/`uname 
  -r`/drivers/net/wireless instead of /lib/modules/`uname 
  -r`/kernel/drivers/net/wireless
* Fix #616 problem with OOPS on module load (thanks to Yi Zhu)
* Fixed problem with led module parameter being described as 
  'auto_create'
* Added support to merge between adhoc networks (thanks to Mohamed Abbas)
* Added semaphore lock at the driver's entry points to protect against 
  re-entry (thanks to Mohamed Abbas)
* Added semaphore lock to background scheduled driver actions (thanks to
  Mohamed Abbas)
* Changed how signal quality is reported for scan output (thanks to 
  Peter Jones)
* Fixed how high/low clamp values of signal quality are reported so a 
  more consistent ramp is provided (thanks to Bill Moss)
* Fix #624 problem with duplicate addresses (again)  (thanks to Bernard 
  Blackham)
* Fix #385 problem with fragmentation and certain sized packets (thanks 
  to Mohamed Abbas)
* Moved ieee80211.h and ieee80211_crypt.h into ./net so that the 
  reference to their include location does not differ from that of the 
  ieee80211 subsystem provided by netdev-2.6
* Merged latest netdev-2.6 changes to ieee80211 subsystem into driver
* Modified iwconfig network name if RF kill is enabled to say 'radio off'
* Fix #382 problem with driver not responding to probe requests in Ad-Hoc 
  mode (thanks to Mohamed Abbas)

Changes in 1.0.2

* Removed unneeded parenthesis around numeric constant defines
* Added info about WPA to INSTALL (thanks to Henrik Brix Andersen)
* Added support for iwspy
* Put in fix for Ad-Hoc mode not passing through all packets (thanks to 
  KKH)
* Put in fix for fragmentation not working for fragment sizes between 
  441-464 bytes (thanks to Mohamed Abbas)
* Test fix for #586 problem with kernel oops on module unload by adding 
  spin lock protection to ieee80211's crypt handlers (thanks to Yi Zhu)
* Fixed #593 problem of CONFIG_IEEE80211_WPA_MODULE not including WPA 
  support into the driver -- fixed as a result of no longer limiting 
  WPAs inclusion
* Fixed #594 problem with user rates mask causing lack of association if 
  AP mandatory rate is masked out.  We now add back in as a supported 
  rate any mandatory rate.
* Possible fix for #597 kernel oops due to potentially calling 
  dev_kfree_skb on an skb multiple times.
* Added code to control LEDs that can be controlled through the wireless 
  NIC (vs. non-wireless HW interfaces) -- this is currently disabled by 
  default due to reports by some users of it hanging their laptop.
* Added some more debug messages around fragmentation logic
* Added locking around STATUS_HCMD_ACTIVE to prevent re-entry race 
  conditions
* Moved ipw_adapter_restart to only execute on the priv->workqueue to 
  keep keyboard errors from occuring during adapter restart
* Added CFG_BACKGROUND_SCAN to easily allow people to play with 
  background scanning implementations
* Modified WPA logic to send WPA IE if one is set (vs. being based on 
  wpa_enabled)
* Modified scan result logic to report WPA and RSN IEs if set (vs. being 
  based on wpa_enabled)
* Fixed issues with endianess compatability between the host and 
  wireless adapter (thanks to York Liu and Yi Zhu)
* Fixed problem with Ad-Hoc network creation causing a firmware error if 
  a scan was actively running (thanks to Mohamed Abbas)

Changes in 1.0.1

* Fixed #559: iwconfig rate support (thanks to Florian Hackenberger)
  NOTE:  Configuring a subset of rates that excludes mandatory rates by 
  your AP may result in not being able to associate with your AP.
* Improved link signal quality calculation (thanks to Bill Moss)
* Added additional debug output during scan to dump all 16 bits of 
  capability field to IEEE80211_DL_SCAN output
* Added support for additional PCI ids supported by the driver
* Removed trailing whitespace on lines in code (thanks to Henrik Brix 
  Andersen)
* Yanked script trace (-x) from helper scripts (thanks to Henrik Brix 
  Andersen)
* Fixed a problem with sensitivity threshold during association (thanks 
  to Raphael Slinckx for troubleshooting with me on IRC for three days)
* Added iwpriv for turning forcing long preamble support: 
	iwpriv eth1 set_preamble 1|0
* Possible fixes for #542 and #377 support for short preamble
* Fixed #563 compilation warning on 2.6.11-rc2 (thanks to Henrik Brix 
  Andersen)
* Fixed locked BSSID reporting channel number (thanks to Pedro Ramalhais)
* Fixed type-o with scan watchdog timeout message (thanks to Pedro Ramalhais)
* Changed logic for displaying get_mode output so the code is easier
  to follow (thanks to Pedro Ramalhais)
* Added initial support for WPA (thanks to Yi Zhu) -- tested with 
  wpa_supplicant (either tip w/ ipw driver, or with -Dipw2100) with both 
  CCMP and TKIP
* Fixed problem with CCMP not working due to uninitialized 802.11 header 
  fields (thanks to Pedro Ramalhais)
* Fixed unload script to unload the ieee80211 modules in the correct 
  order

Changes in 1.0.0

* Fixed part of #430 problem with an AP never being considered for 
  association (storming) if the jiffies rewind problem occurs (thanks to 
  Yi Zhu)

Changes in 0.22

* Changed debug log level for a fragmentation message in ieee80211 so 
  rather than use printk() it uses IEEE80211_DL_FRAG
* Fixed problem with ethtool -i not reporting the correct version string

Changes in 0.21

* Provided __iomem typedef for pre-2.6.9
* Changed firmware event/error log dumping to be masked with 
  IPW_DL_FW_ERRORS flag.  If you encounter a firmware error, your kernel 
  log will now just log the firmware restart.
* Fixed compilation warnings when CONFIG_IPW_DEBUG and 
  CONFIG_IEEE80211_DEBUG are not defined
* Fixed warning on unused return code from pci_set_consistent_dma_mask

Changes in 0.20

* Fixed #525 compilation problem with gcc 2.9.5 due to __FUNCTION__ not 
  being followed by whitespace. (thanks to Dave Hansen)
* Fixed #530 problem after any resume (thanks to Henrik Brix Andersen)
* Fixed #363 problem after S4 resume (thanks to Yi Zhu)
* Fixed #488 problem with bridged networks and Ad-Hoc by adding 
  target MAC to station table, regardless of if they are actual 
  Ad-Hoc cells (thanks to Alex Hudson)
* Fixed #221 problem with setting mode immediately after load causing 
  failures
* Incorporated fixes to use __iomem (thanks to Stephen Hemminger)
* Fixed #502 support for 64-bit platforms (thanks to Pedro Ramalhais and 
  Angelo DiNardi)
* Fixed #431 problem with pci_alloc_consistent being handed a u32 instead of 
  dma_addr_t (thanks to Jacek Wysoczynski and Marek Rudniewski)
* Fixed #379 problem w/ non-encrypted 802.1x authentication (driver no 
  longer disassociates on privacy capability change -- similar to the 
  behavior of ipw2100) 
* Fixed #509 problem w/ resetting nic possibly leaving status 
  variable bit set for a command being active.
* Fixed #450 problem w/ scan results not providing signal and level
  statistics

Changes in 0.19

NOTE: In order to upgrade to 0.19 you must also upgrade your firmware to 
2.2.  You can download the firmware from http://ipw2200.sf.net/firmware.php.

If, when loading the module, you see an error in the kernel logs about 
conflicting firmware versions, then you do not have the correct firmware 
installed.

* Fixed problem with unlocking the wrong spin lock (thanks to Yi Zhu)
* Restructured how the Link Quality is computed
* Added IPW_DEBUG_STATS for data related to how the Link Quality is computed
* Restructured how the scan channel list is constructed (cleaned up the code a 
  bit)
* Fixed #291 problem with resume not working when coming from S3 (thanks to Yi 
  Zhu)
* Fixed #489 and #387 problems with fragmentation not working
* Fixed #499 problem with packet latencies due to background scanning.  This 
  change required some logic rework in how the roaming process occurs.
* Fixed problem with some packets not being received due invalid Rx 
  filtering of BSSID
* Added SCAN watchdog to detect when scanning is not completing

Changes in 0.18

* Fixed problem with the driver thinking the privacy capability wasn't 
  matching when it was (thanks to Yi Zhu)
* Fixed #451 problem where driver wasn't reporting to user space tools when Tx
  power is disabled (radio off)
* Fixed problem with Rx queue not being protected via locks (thanks to 
  Rusty Lynch)
* Added additional debug information if an authentication failure 
  message is received.
* Fixed #492 problem with 'invalid crypt' count not being reported in 
  wireless statistics
* Fixed #495 problem with 'auto_create' module parameter not working
* Fixed #288 problem with a driver panic or system lockup during load or 
  under high load

Changes in 0.17

NOTE: In order to upgrade to 0.17 you must also upgrade your firmware to 
2.1.  You can download the firmware from http://ipw2200.sf.net/firmware.php.

If, when loading the module, you see an error in the kernel logs about 
conflicting firmware versions, then you do not have the correct firmware 
installed.

* Adjusted the behavior of ad-hoc to act much more like the ipw2100 does.
  This addresses several bugs relating to the formation/reformation of
  ad-hoc networks.
* Started initializing the ad-hoc station table when associating to an ad-hoc
  network.  This fixes a problem that is at the root of may problem reports
  where network connectivity is lost in ad-hoc mode, yet both the driver
  and networking stack configuration is correct and the device is associated
  sending out beacons.
* Added noise statistic reporting for current association
* Fixed "associate" module parameter so that it works as the README states
* Fixed signal strength reporting.  
* Added AP roaming support (via 802.11 re-association requests).  If you 
  have an ESS network that spans multiple APs and begin missing 
  enough beacons from the currently associated AP, the driver will look 
  for a better AP to associate with.  If found, it will attempt to 
  re-associate with that AP.
* Fixed code such that if a scan completes while disassociating, an 
  association attempt is not made.
* Added dumping of Status and Config during fatal error dump (to help 
  provide driver context during the fatal error)
* Changed missed beacons to report the % of missed beacons recently

Changes in 0.16

* Merged ieee80211 double alloc into single allocation (thanks to 
  Stephen Hemminger)
* Fixed compilation problem if CONFIG_IEEE80211_DEBUG is not defined 
  (thanks to Stephen Hemminger and Luc Saillard)
* Really fixed bug #271 so we properly compare essids when looking for
  a valid network to connect to
* Fixed bug #402 so that WEP can be used with ad-hoc mode
* Fixed bug #414 problem with SSIDs being scrambled when hidden networks 
  detected (also resulted in multiple hidden networks showing in scan 
  results)
* Fixed bug #425/285 problem with 802.11b networks being extremely slow
* Added support for multi-mode access points.  Fixes bugs like #397
  where the driver is not able to associate with an ap in 'b' mode 
  even though the ap provides both 'b' and 'g' bands
* Fixed bug #421 problem with a panic if fragmentation is used.  NOTE:  
  Fragmentation itself is currently broken (nothing goes through) but it 
  won't panic anymore.
* Fixed bug #237 so that link quality is now temporal and should adjust 
  dynamically as the network quality changes (previously it would slowly 
  stagnate onto a fixed level)

Changes in 0.15

* Fixed #399 - max fragmentation threshold was 2342 instead of 2346
* Fixed problem with link state no longer being detected by ethtool
* Initialize atim_window in network during scans (fixes problem with 
  adhoc networks)

Changes in 0.14

* Test fix for bug #207 by changing how a network is determined to be unique.
  Previously, only the BSSID was checked to determine if a new probe or beacon
  was for an already discovered network.  Now the BSSID, ESSID, and 
  channel must match for the network to be considered the same.
* Fixed bug #265 by adding a filter for removing our own recieved 
  packets since the firmware does not do this for us.
* Fixed bug #269 so that ad-hoc will come up correctly the first time when
  preemption is enabled.
* Fixed bug #270 which was fatal errors triggered by multiple association
  commands on top of each other.
* Fixed bug #271 so that we correctly match essids when the assigned essid
  is a substring of a network essid
* Fixed bug #275 which kept the driver from being able to use a default 
  crypto key other than the first or second key.
* Fixed bug #277 which caused the setting of the active key, or 
  specifying a key, to corrupt the key being assigned.
* Fixed bug #344 - wireless stats are now provided even if the HW is down or 
  not associated with a network.
* Fixed bug #365 which would result in kernel stack dumps in the system
  log file due to an improper scheduling call while in atomic mode.
* Fixed bug #378 which would cause an endless loop of scans if a scan was
  triggered with an "iwlist ethX scan" while associated.
* Fixed #393 such that only unicast frames request an ACK
* Fixed bug #404 so that we correctly fail when the wrong firmware version
  is loaded.
* Synchornized ieee80211 module with ipw2100 v1.0.1 (modifed ieee80211 
  initialization, and Tx data path)
* Moved the trans_start reset to that the TX watchdog can actually fire 
  if the HW stalls out.

Changes in 0.13

* Modified SW/HW rf_kill interaction functionality.  See README.ipw2200 for  
  details on current usage.
* Fixed #239: iwconfig eth1 rts off/auto not supported
* Fixed problem with not being able to associate with 
  non-broadcast ESSID APs
* Changed default temporal timeout for scan age to 15s
* Changed MAC2STR and MACSTR to MAC_FMT and MAC_ARG
* Fixed problem with scan results not expiring
* Fixed a bug in ad-hoc support (#295) that prevented the creation of a new
  ad-hoc network
* Reduced interval of scan requests to 1/10th second (vs. 5 seconds)
* Modified scan logic to alternate between directed and active scanning 
  when an ESSID is defined.  This should improve AP to AP roaming via 
  ESSID selection.
* Increased dwell time on directed scans to 100ms from 20ms
* Fixed fragmentation for both wep and with no encryption
* Fixed wireless stats reporting to indicate that the noise level is invalid.
  This version of the firmware does not provide noise statistics.
* Fixed a bug that prevented 'iwpriv ethX set_mode N' from working correctly

Changes in 0.12

* Changed alloc_skb to use GFP_ATOMIC vs. GFP_ATOMIC| GFP_DMA (thanks to 
  Roland Dreier)  GFP_ATOMIC needs to be used as GFP_KERNEL may block, 
  and the call is made from the default work queue during adapter load
* Fixed problem with module_param not building on some systems (thanks 
  to Pieter Hollants and Sebastian Henrich)
* Added additional debug output during association to indicate security 
  parameters (to assist in connection debugging)
* Misc cleanups (thanks to Stephen Hemminger)
	* Un 'inline' initialization functions
	* Added const to a few locations

Sep 30 2004 Changes in 0.11

* Fixed problem with setting an ESSID to a network that doesn't exist in
  Managed mode would result in the creation of an AdHoc network.
* Fixed problem with privacy capability not being compared correctly 
  when assessing viability of a network for association.
* Added support for shared key authentication (aka 'restricted')
* Added debug level output into ieee80211* modules.  You can access the
  debug levels via the debug module parameter as well as through
  /proc/net/ieee80211/debug_level, and see values via the idvals script
* Added support for setting the TX power via
  'iwconfig ${IFNAME} txpower ${LEVEL}'.
* Added support for setting the fragmentation threshold via
  'iwconfig ${IFNAME} frag ${THRESHOLD}'.
* Added PSP power management support (thanks to An-Cheng Huang)
* Added support for suspend / resume.
* Hooked up the ability to set the fragmentation threshold.  
  Unfortunately, once set you won't receive any packets.
* Corrected support of 'iwlist ${IFNAME} bitrate'
* Corrected support of 'iwlist ${IFNAME} power'
* Changed the way modulation and freq_band are stored and accessed. 

Sep 29 2004 Changes in 0.10

* Fixed problem with manual disabling of RF via rf_kill sysfs entry wasn't 
  resulting in the card actually being disabled.
* Added mode module parameter so you can start the device in either 
  Managed or AdHoc mode (see README.ipw2200 for more information)
* Modified logic for detecting hidden SSIDs to work with how Linksys APs 
  do it.
* Hooked in the rest of AdHoc code.  You can now create adhoc networks,
  associate to existing ones, etc.
* Added adhoc_create module parameter for configuring the driver to auto 
  create a network if you have provided the channel and network name.
* More changes to the scan logic, adding more debug output to indicate 
  why specific networks are chosen over others (enable those messages by
  turning on the SCAN debug level.  See `dvals` for the specific value.)
* Added a printk() to the pci probe indicating if it detects a 2915ABG 
  or 2200BG adapter.
* Fixed problem with setting IW_MODE to AUTO (previously it just didn't 
  work -- now it defaults back to IW_MODE_INFRA)
* Fixed problem with device coming up even if manual disable specified.
* Fixed problem with udev (or anything else that parsed all sysfs 
  entries) with causing error log storms to the kernel log.

Sep 28 2004 Changes in 0.9

* Fixed support for all 802.11G extended rates
* Ad-Hoc code starting to show up.  You can now create Ad-Hoc networks 
  and join with other cells.  Data Tx/Rx is still in the works.
* Added mode switching support to WX:
	% iwconfig eth1 mode (managed|ad-hoc)
* Enhanced the iwlist scan results to (hopefully) be more clear 
  on various statistics.
* Added support for restricting the 802.11 mode via a iwpriv method.  
  See README.ipw2200 for more information.
* Fixed UNKNOWNSTATUS_ERROR if AdHoc beacon received while in managed mode 
  (thanks to Yi Zhu)
* Fixed UNKNOWNSTATUS_ERROR if RF kill enabled when loading driver 
  (thanks to Yi Zhu)
* Reworked IE parser to use an iterative loop, based on Pedro Ramalhais' 
  original WPA port (thanks to Liang Chai)
* Fixed stricter type checking errors (thanks to Pedro Ramalhais)
* Fix oops in ieee80211_crypt_free (thanks to Yi Zhu)
* Fixed module reference counting of ieee modules (thanks to Stephen 
  Hemminger)
* Fixed oops if CONFIG_NETLINK enabled (thanks to Yi Zhu)
* Misc. code cleanups (extra casts removed, unused function warning) 
  (thanks to Scott Feldman)
* Changed AP detection logic so that it only considers a probe response 
  to be a duplicate if both the BSSID and ESSID match (allowing a single 
  BSSID to broadcast multiple ESSIDs)
* Modified load sequence such that if the RF switch is disabled during 
  load it doesn't try and bring up the network.
* Modified dev->open so that it doesn't start the queue unless it is 
  associated
* Sync'd ipw2100's ieee80211 module changes

Sep 15 2004 Changes in 0.8

* Fixed rate reporting to start with reporting maximum supported data rate,
  then falling back after enough packets have Tx'd to be able to accurately
  determine the true data rate.
* Added a space after __FUNCTION__ to remove compilation problems 
  experienced by some (thanks to Andreas Ruess)
* Added support for associating with 802.11a APs (thanks to Liang Chai)
* Improved quality/signal level reporting (thanks to An-Cheng Huang)
* Misc. code cleanups (thanks to Stephen Hemminger):
	* Change to use sysfs attribute groups
	* Fix to incremement Tx packets
	* Removal of IRQ save in the ISR
	* Removed redundant STATUS_DEV_OPEN
	* Changed vmalloc -> kmalloc
	* Several global -> static variable change
	* Use C99 intializars in iw_handler declarations
* Modified the Makefile to define the CONFIG_IEEE80211_CRYPT_* differently
* Modified the AP selection logic to pick the AP with the strongest signal 
  that meets the other configured criteria.
* Modified AP selection logic to discard APs whose scan age has expired.
* Added code to set the sensitivity in the firmware upon association.
* Added code to correctly seed the random number control in the firmware.
* Added code to try and correct the intermittent failure seen sometimes while
  loading the driver.
* Added code to detect when enough beacons have been missed to trigger a 
  disassociation, and to then invoke the disassociation.

Sep 3 2004 Changes in 0.7

* Fixed Makefile problem with compiling WEP support (thanks to Yi Zhu)
* Fixed support for associating with G-only APs (and also supporting all 
  of the G/B-rates in Mixed mode)
* Modified iwconfig output to report either 'unassociated' or 
  'ieee 802.11{band}' where band is one of a, b, or g.
* Fixed error preventing modprobe from consistently working (thanks to 
  Yi Zhu)

Sep 2 2004 Changes in 0.6

NOTE: In order to upgrade to 0.6 you must also upgrade your firmware to 
2.0.  You can download the firmware from http://ipw2200.sf.net/firmware.php.

If, when loading the module, you see an error in the kernel logs about 
conflicting firmware versions (2 != 1) or (1 != 2) then you do not have 
the correct firmware installed.

* Updated firmware interface to support new extended scan.  
* Added ABG PCI ids
* Added support for G data rates.
* Partial support for A data rates.
* Fixed ordinal setup/reading code so that real values can be reported through
  wireless statistics.
* Partial change for reporting link quality through iwconfig -- not 
  completed.
* Refactored IPW_BAND_* to IPW_IEEE_* to try and use better terminology 
  when referencing 802.11 modes (a,b,g) vs. frequency bands 
  (2.4Ghz,5.2Ghz) 
* Misc. code cleanup (thanks to Stephen Hemminger):
	* If error log is empty, don't print the header
	* Removed ipw_net_change_mtu since alloc_etherdev will set it to 
	  eth_change_mtu which enforces the same restrictions. 
	* Variables changed to private that are only used in ipw2200_main
	* Removed forward inline declaration, it really doesn't matter
	* Chagned snprint stuff not inline (it can't be performance 
	  sensitive), and data doesn't get modified (const).

Aug 31 2004 Changes in 0.5

* Fixed problem with load retry logic re-allocating Rx buffers 
  repeatedly (skb leak)
* Fixed SWSUSP compilation dependency to CONFIG_SOFTWARE_SUSPEND2
* Fixed oops if sysfs entries were read after the driver fails 
  to load if the firmware is missing.
* Moved probe / beacon handling into ieee module (shared with ipw2100)
* Changed to use netdev_priv consistently (thanks to Stephen 
  Hemminger)
* Fix the initialization code (thanks to Stephen Hemminger):
	- memset is unnecessary since alloc_etherdev does it already
	+ SET_NETDEV_DEV so that /sys/class/net/eth0/device symlink is created
	- don't set name to "eth%d" already done by alloc_etherdev
	- don't mask register_netdev error codes
* Misc. code cleanup (thanks to Stephen Hemminger):
	* get rid of left over cruft in ipw2200 priv stuff that is 
	  set but never used
	* debug/channel should be local variables (global namespace
	  conflicts possible).
	* extra semi-colon in IPW_DEBUG is bug waiting to happen.
* Report firmware version via ethtool (like other drivers) rather than
  special sysfs hook. (thanks to Stephen Hemminger)
* Fixed TCP session freezing problem (thanks to Yi Zhu)
* Added support for non-broadcasting ESSIDs (thanks to Andreas 
  Oberritter)

Aug 16 2004 Changes in 0.4

* Hooked in WEP.  You can now use encrypted sessions.  802.1x should also work
  (802.1x hasn't been tested).  Only supports OPEN authentication.
* RF Kill switch is now supported.  Manual driver based RF kill support added
  through sysfs entry (see README.ipw2200)
* Fixed scan results to report channel # for APs vs frequeny
* Added privacy capability matching to association selection -- the driver
  will no longer associate with APs that have different privacy capabilities
  enabled than the station
* Switched the IPW_DEBUG_ERROR and WARNING macros to always use printk 
  so that release builds, and users without a debug mask set will still
  see error conditions in the kernel log.
* Added RTS threshold WE handler
* Added compilation support for having the SWSUSP patch installed (thanks to 
  Morten Nilsen)

Aug 12 2004 Changes in 0.3

* Implementation of many WE commands (still a lot to go)
* Scanning and association are working.
* Tx/Rx functioning for non-WEP enabled sessions
* Lots and lots of code changes 
* ieee80211 pulled in from ipw2100 project.

May 28 2004 Changes in 0.1

* Initial public release
* Fixed proc oops on module load
* Removed compilation warnings
* Added full list of device IDs
* net device register / unregister
* PCI probe
* sysfs /sys/devices/pcixxx:xx/xxx/xxx/ipw2200_debug
	( cd /sys; find . -name 'ipw2200*' )
* proc /proc/net/ipw2200/debug
* module load / unload
* hot plug shell in place. 
	(loads from /usr/lib/firmware/ )
  
