Changes in 1.1.0

* Updated documentation files

Changes in 1.0.5

* Trivial type-o fix (thanks to Giuseppe Della Ricca)
* Fixed #532 problem with 'iwpriv eth1 reset' not working
* Fixed #560 removing ifname module parameter -- you should use the 
  ifrename network tools for naming the device (thanks to Henrik Brix 
  Andesen)
* Fixed #558 changing use of printk() to IEEE80211_DEBUG_DROP
* Fixed #564 compilation warning on 2.6.11-rc2 (thanks to Henrik Brix
  Andersen)
* Removed legacy firmware loading support -- you now need to use hotplug 
  to load the firmware.
* Possible fix for #170 problem of scans not always showing up
* Changed location of 'make install' for ipw2100 module to 
  drivers/net/wireless instead of drivers/net/wireless/ipw2100
* Synchronized ieee80211 with ipw2200 1.0.1
* Changed CONFIG_IPW_PROMISC => CONFIG_IPW_MONITOR to remove confusion 
  on what the feature is

Changes in 1.0.4

* New logic to attempt to catch hung firmware (possibly caused by bad AP 
  frame received)
* Yanked script trace (-x) from helper scripts (thanks to Henrik Brix  
  Andersen)
* Fixed #407 more completely (thanks to Henrik Brix Andersen)

Changes in 1.0.3

* Fixed #496 problem with wrong arguments being passed to set_security 
  (thanks to Henrik Brix Andersen)
* Fixed #407 problem with disassociation events not being sent to user 
  space when firmware is being restarted
* Fixed #523 problem with suspend not working (thanks to Stefan Dosinger 
  and Henrik Brix Andersen)
* Fixed #545 type-o in error message (thanks to Henrik Brix Andersen)
* Fixed problem with stats not being usable by non iwconfig wireless 
  tools
* Sync of ieee80211 with ipw2200 v0.22

Changes in 1.0.2

* Synchronized ieee80211 subsystem w/ ipw2200 v0.18
* Fixed problem with a deadlock when setting the MAC address (thanks to 
  Yi Zhu)
* Fixed problem where enabling HW RF Kill would sometimes result in the driver 
  going into a loop of Disassociate/RF Kill/Associate/repeat.
* Fixed #466 problem with setting RTS hanging
* Fixed #454 problem with MODULE_VERSION not being used (thanks to Brix 
  Andersen)
* Fixed #405 problem with driver not building when
  CONFIG_IEEE80211_DEBUG not defined

Changes in 1.0.1

* Fixed #350 problem with user space applications receiving carrier link 
  state changes before the BSSID has been updated after an association
* Fixed #322 Shared Key authentication to support differnet default Tx 
  index keys
* Fixed #360 problem with networks showing up as <hidden>
* Fixed #326 problem with multicast and broadcast packets being 
  fragmented
* Fixed problem with RF kill switch resulting in driver needing to be 
  reloaded if cycled Off/On/Off multiple times
* Added semaphore to protect the enable/disable command to ensure it can 
  complete successfully.
* Removed calls to reconfigure security if security hasn't changed
* Added additional debug messages while processing EAP frames in 
  ieee80211_{rx,tx}
* Fixed problem of driver allowing packets to be received before in the 
  associated state.
* Added HW kicking to the hang_check if the hardware has been silent for 
  more than 0.5s.
* Reworked how the driver initializes the ieee80211 subsystem.
* Changed mode change code to schedule an adapter restart vs. invoking 
  it directly.  This was needed to be comaptible with the semaphore code 
  added.
* Added ability to load WPA modules by load script

Changes in 1.0.0

* Version set to 1.0.0
* Misc. documentation updates

Changes in 0.62

* Fixed #361: After set to monitor, can't unload
* Fixed #351: Lockup/Panic/etc. on rmmod/modprobe looping
* Fixed compilation problems if legacy firmware loader enabled
* Fixed compilation problems if CONFIG_PM is not defined

Changes in 0.61

* Fixed problem with AdHoc networks not being created after the channel 
  and essid were provided
* Added support to reactively set the Cstate limit in the ACPI core 
  (requires cstate patch to ACPI core)

Changes in 0.60

* Fixed problem with adapter not shutting down on module unload (thanks 
  to Stefan Rompf)
* Added additional printks during the pci probe function to isolate 
  initialization errors.
* Fixed #327 - noise level always 256dBm.  iwconfig will no longer report
  the Noise level (we don't have access to that value)
* Changed delay for the wireless event (after association) to 1/10th second
  (vs 2. seconds) in an attempt to correct WPA problems (thanks to Pedro
  Ramalhais and Stefan Rompf)
* Fixed race condition during reset (thanks to Benjamin Osheroff)
* Reworked how context is tracked across monitor/managed/adhoc mode
* Added status, cfg, and capability sysfs entry
* Changed the security policy back to how it was in 0.58 to re-enable WPA
* Changed iwconfig output back to how it was in 0.58 to fix compatability with 
  waproamd and any scripts that rely on /proc/net/wireless entries existing
  even when not associated
* Cleaned up the fatal_error and pci sysfs reporting function
* Removed cardmem, txqueue, and rxqueue sysfs entries
* Fixed potential bug with printk being passed a non-null terminated string
* Changed delay for the wireless event (after association) to 1/10th second 
  (vs. 2 seconds) in an attempt to correct WPA problems.
* Fixed problem with the driver not loading if RF kill is active
* Added a KERN_INFO printk in net_dev->init indicating if RF kill is active.
* Fixed #340 - changing authentication mode resets the wep key
* Fixed #339 - txpower values are inverted
* Fixed problem where POWER_DOWN command was not being sent to card on 
  shutdown (possibly fixes #76)
* Fixed #192 can't switch over to new AP if you turn off a previously 
  associated AP

Known issues in 0.60

!- If C3 is enabled, you may occasionally see "PCI latency 
   error detected at 0x....:" messages in your kernel log, followed by 
   a firmware reset.  A temporary work around is to disable the C3 low 
   power state (either via the patch on the website to processor.c or 
   by unloading the ACPI processor module).


Changes in 0.59

* Fixed problem with version number not displaying on driver load
* Changed security policy change logic to reconfigure security subsystem on
  capability change vs. forcing a disassociate
* Added IEEE80211_DL_EAP for debugging EAP packet transfers
* Partial transition to unified status, config, and capability bit-fields vs. 
  multiple variables
* Significant changes to key management routines, especially in regard to 
  multiple WEP key support.
* Reworked how the HW/SW RF Kill state is reported via sysfs.  See 
  README.ipw2100 for details.
* Changed iwconfig output to not defined undefined wireless stats while not
  associated (ie., Link Quality)
* Fixed problem with compiling on 2.6.10 (thanks to Yi Zhu)

Known issues in 0.58

!- If C3 is enabled, you may occasionally see "PCI latency 
   error detected at 0x....:" messages in your kernel log, followed by 
   a firmware reset.  A temporary work around is to disable the C3 low 
   power state (either via the patch on the website to processor.c or 
   by unloading the ACPI processor module).

Changes in 0.58

* Reworked some of the TX fragmentation code (thanks to Rusty Lynch)
* Fixed problem with the rf_kill entry not reporting the correct values 
  (thanks to Guiseppe Della Ricca)
* Added support for setting the TX power while in Ad-Hoc mode

Known issues in 0.57

!- If C3 is enabled, you may occasionally see "PCI latency 
   error detected at 0x....:" messages in your kernel log, followed by 
   a firmware reset.  A temporary work around is to disable the C3 low 
   power state (either via the patch on the website to processor.c or 
   by unloading the ACPI processor module).


Changes in 0.57

* Fixed problem with WPA PSK not working (thanks to Stefan Rompf and 
  Pedro Ramalhais)
* Fixed erroneous kill of hang_check timer instead of rf_kill timer 
  (thanks to Giuseppe Della Ricca)
* Cleaned up #4: iwconfig eth1 frag off/auto/fixed not supported
* Fixed #9: iwconfig rts off/auto not supported
* Misc. fixes and cleanups (thanks to Giuseppe Della Ricca)
	* Moved offset_in_page to ieee80211.h so multiple crypt 
	  components can use it
	* Moved #include declration closer to module_param to ease 
	  2.4 backport support
	* Add #incldue <linux/kmod.h> to remove warning from 
	  request_module when compiling with CONFIG_IEEE80211_WPA
	* Fixed timeout value in the output of iwlist eth1 power
	* Changed output of iwprive eth1 get_power to match the 
	  documentation
* Fixed problem where enabling encryption after associated to a non-
  encrypted AP resulted in the client not being able to associate until 
  the ssid was manually reset to 'any'
* Changed iwconfig output to state 'unassociated' for protocol name if 
  appropriate
* Changed interpretation of WX flags for setting encryption such that if an
  authentication mode isn't specified, it defaults to OPEN (previously, if OPEN
  wasn't specified, it assumed RESTRICTED was configured)
* Changed IPW_DEBUG_FW_COMMAND to IPW_DEBUG_HC to standardize with 
  ipw2200
* Fixed problem with setting debug level to 0xffffffff on modprobe was 
  ignored
* Changed use of printk() to IPW_DEBUG_ 
* Changed WX delayed work to use queue_delayed_work
* Removed unnecessary memset after alloc_etherdev
* Removed unnecessary setting of name to "eth%d" already done by alloc_etherdev
* Changed error code path not to mask register_netdev error codes
* Report firmware version via ethtool
* Changed module parameter for interface name to ifname (from if_name) in 
  order to standardize with the ipw2200
* Removed ipw_net_change_mtu since alloc_etherdev will set it to eth_change_mtu
  which enforces the same restrictions.
* Changed inline debug printk_buf calls to static
* Changed spin_[un]lock_irq to spin_[un]lock since IRQ already disabled in 
  interrupt routine
* Modified open() call to start the network queue if associated prior to 
  dev->open being called
* Removed unnecessary priv->open flag
* Changed ndev => net_dev, and pdev => pci_dev to standardize with ipw2200
  project
* 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
* Added stub for dynamically disabling C3 when PCI latency problem is 
  detected

Known issues in 0.57

!- If C3 is enabled, you may occasionally see "PCI latency 
   error detected at 0x....:" messages in your kernel log, followed by 
   a firmware reset.  A temporary work around is to disable the C3 low 
   power state (either via the patch on the website to processor.c or 
   by unloading the ACPI processor module).

Changes in 0.56

* Changed ipw2100_netdev to use netdev_priv
* Changed use of timers for RF switch check and hang check to use 
  deferred workqueue
* Remapped debug numbering such that lower numbers produce fewer 
  messages
* Fixed problem with TX Watchdog kicking in occasionally if WPA is 
  being used
* Fixed latest wireless tools reporting failure when using 'iwconfig 
  ethX power on'
* Fixed problem with 802.1x not working with in configurations where 
  WEP was enabled (thanks to Pedro Ramalhais)
* Changed 'Corruption detected' message to 'PCI latency error 
  detected' to remove confusion of there possibly being disk data corruption.
* Fixed spurious interrupt problem if driver fails to load (thanks to 
  Yi Zhu)
* Fixed support for manual disable switch (thanks to Yi Zhu)
* Fixed resume maintaining manual disable state (thanks to Ralf 
  Hemmenstaedt)
* Fixed sysfs permissions on module parameter entries (thanks to Yi Zhu)
* Synchronized ieee80211 with ipw2200 v0.11
* Fixed problem with channels not being reported in scan output
* Fixed ordering of scan results to keep networks in order across 
  iterative probe receipts
* Fixed scan aging to be based on time vs. scan count
* Added time since last beacon received to scan output
* Pulled out 2.4 specific #ifdef/#endif blocks
* Reduced command timeout to 0.5s vs 3s 
* Added command_send check to the hang_check to try and identify hung firmware

Changes in 0.55

NOTE: 0.55 requires firmware v1.3.  You can obtain the latest firmware 
from http://ipw2100.sf.net/firmware.php

* Fixed rmmod oops in ieee80211 (thanks to Yi Zhu and Stephen Hemminger)
* Merged in WPA code (thanks to Lubomir Gelo)
* Fixed stricter type check warnings (thanks to Pedro Ramalhais)
* Fixed 'make uninstall' to correctly remove the modules vs. the entire
  directory.
* Renamed ipw2100_main.c to ipw2100.c
* Fixed IPW2100_DEBUG_FW to IPW_DEBUG_FW
* Changed CONFIG_IPW2100_(WPA|WEP) to CONFIG_IEEE80211_(WPA|WEP)
* Makefile fixes to enable WEP during the build
* Masked out DEBUG_RX code paths by CONFIG_IPW_DEBUG (thanks to Dominik 
  Bathon)
* Fixed suspend/resume (thanks to Yi Zhu)
* Misc. code cleanups (extra casts removed, unused function warning)
  (thanks to Scott Feldman)
* Added filtering of corrupted 802.11 frames in rfmon mode (thanks to 
  Jacek Wysoczynski)

Known issues in 0.54

!- If C3 is enabled, you may occasionally see "Corruption detected at 
   0x....:"" messages in your kernel log, followed by a firmware reset.  
   A temporary work around is to disable the C3 low power state (either 
   via the patch on the website to processor.c or by unloading the ACPI 
   processor module).

Changes in 0.54

* Test fix for spurious IRQs during firmware initialization.
* Fixed payload_size bug in fragmentation code (thanks to Yi Zhu)
* Removed "IRQ ignored" message.
* Changed IPW2100_DEBUG and IPW2100_DL to IPW_DEBUG and IPW_DL
* Updated dvals script to report out debug levels
* Switched legacy fw loader on 2.6 to use vfs (thanks to Yi Zhu)
* Merged all .c into single file (same with .h)  Removed ipwversion.h
* ipw2100_private_args and ipw2100_private_handler arrays are defined
  only once and CONFIG_IPW2100_PROMISC #ifdefs are moved inside array
  definitions (thanks to Lubomir Gelo) 
* Removed get|set_preamble and get|set_longpreamble schizofrenia and
  fixes ipw2100_wx_set_preamble. Also removes unused long_preamble
  variable (thanks to Lubomir Gelo)
* Resynced ieee80211 with ipw2200 (moved scan and probe logic from 
  ipw module into ieee80211 module)

Known issues in 0.54

!- If C3 is enabled, you may occasionally see "Corruption detected at 
   0x....:"" messages in your kernel log, followed by a firmware reset.  
   A temporary work around is to disable the C3 low power state (either 
   via the patch on the website to processor.c or by unloading the ACPI 
   processor module).


Changes in 0.53

* Fixed completely broken proc init/destruct code (thanks to Pedro 
  Ramalhais)
* Fixed problem with new get_power not returning any string output (due to 
  a missed line while integrating An-Cheng Huang's patch)
* Fixed SWSUSP2 build dependency check to CONFIG_SOFTWARE_SUSPEND2
* Fixed problem with IRQ not being freed correctly.
* Changed read to sys_read, etc. to fix legacy firmware compilation 
  problems (thanks to L Jensen)
* Added code to remove workqueue on PCI init error path (thanks to Yi 
  Zhu)
* Added dvals, load, and unload scripts.
* Updated in-kernel patch to 2.6.8

Known issues in 0.53

!- If C3 is enabled, you may occasionally see "Corruption detected at 
   0x....:"" messages in your kernel log, followed by a firmware reset.  
   A temporary work around is to disable the C3 low power state (either 
   via the patch on the website to processor.c or by unloading the ACPI 
   processor module).


Changes in 0.52

* Added disable module parameter to control whether the radio is disabled at
  load:
	% modprobe ipw2100 disable=1
* Added manual RF kill override support to /proc/.../state:
	% echo 1 > /proc/net/ipw2100/eth1/state
  disables the radio.  Echoing 0 will re-enable it. The existence of a HW
  RF switch will override the manual re-enable request.
* Misc. cleanups to ieee80211* (thanks to Christoph Hellwig)
* Fixed type-o in description for associate module parameter: default = on 
  (not off as previously reported)
* Fixed problem with NULL embedded ESSIDs being used while the HW is not 
  initialized.
* Fix #160 - Type-o in INSTALL referencing 1.1 firmware vs. 1.2
* Added iwpriv 'set_preamble' which can be used to limit the firmware to only
  use long preamble.  Setting to 0 sets it to AUTO (default).  Setting to 1
  limits to only using long preamble.
* Fix #162 - Attempts to set power options other than ON/OFF with 'iwconfig 
  eth1 power' now fail.  Clarified power level report out when get_power is
  used.
* Fixed #166 - setting more than 5 keys affects active key.  Any attempt to
  set a key outside the range 1-4 will result in Invalid Argument.
* Added compilation support for having the SWSUSP patch installed (thanks to 
  Morten Nilsen)
* Added support for the encryption modules that will be needed in order 
  to implement WPA (thanks to Lubomir Gelo)
* Modified net_dev declaration to compile on 2.4.27 (thanks to Yi Zhu)
* Updated ieee80211 to sync with the ipw2200 project
* Switched iwpriv get_power to use a larger buffer so a more informative 
  string can be returned (thanks to An-Cheng Huang)

Known issues in 0.52

!- If C3 is enabled, you may occasionally see "Corruption detected at 
   0x....:"" messages in your kernel log, followed by a firmware reset.  
   A temporary work around is to disable the C3 low power state (either 
   via the patch on the website to processor.c or by unloading the ACPI 
   processor module).


July 26 2004 Changes in 0.51

* Fixed setting of Level to 0 when not connected; fixed problem with waproamd
  not detecting when association is lost.
* Fixed problem with connection state going out of sync with association when
  interface closed.
* Added 'associate' module parameter to instruct the driver if it should
  auto-associate during scans.  Useful when using a user space utility for
  association policy.
* Reworked some of the driver init messages to be more in sync with other 
  netdev devices.
* Fixed bug with the treating ESSID as a null terminated string.
* Added reporting of level # for iwpriv ${IF_NAME} get_powermode
* Fixed problem with SIOCGIWESSID returning the wrong length of ESSIDs
* Some more changes to the suspend / resume portion of the driver to try and 
  get it stable on all systems.
* Fixed problem with mandatory BSSID filtering not persisting through adapter
  restarts.

Known issues in 0.51

!- If C3 is enabled, you may occasionally see "Corruption detected at 
   0x....:"" messages in your kernel log, followed by a firmware reset.  
   A temporary work around is to disable the C3 low power state (either 
   via the patch on the website to processor.c or by unloading the ACPI 
   processor module).


July 20 2004 Changes in 0.50

* Modified the way that Link Quality is calculated
* Fixed code so it would compile with gcc 2.95 (thanks to Victor Orlikowski)
* Fixed code from using default workqueue to using a custom workqueue.  
  This will (hopefully) fix any issues with keyboard craziness (thanks 
  to Stefan Dosinger)
* Changed the power setting interface to use iwpriv mechanism that more
  accurately maps to the power management support of the ipw2100 (thanks 
  to An-Cheng Huang)  See README.ipw2100 for information on the power
  interface.
* Added support code for WPA information element setting (untested)  NOTE: This
  does not enable WPA; it just provides the hooks so that WPA support can be
  added.
* Updated firmware to 1.2 with a potential fix for firmware restarts in areas
  of heavy RF interference (thanks to Mikolaj Kolakowski)  NOTE:  This means
  you need to update your firmware from http://ipw2100.sf.net/firmware.php with
  the version for ipw2100 v0.50+.

Known issues in 0.50

!- If C3 is enabled, you may occasionally see "Corruption detected at 
   0x....:"" messages in your kernel log, followed by a firmware reset.  
   A temporary work around is to disable the C3 low power state (either 
   via the patch on the website to processor.c or by unloading the ACPI 
   processor module).


July 8 2004 Changes in 0.49

* Fixed TX stall with MTU at 1500 (bug 133)
* Wrapped a few printk()'s in IPW2100_DEBUG macros so that they are not 
  filling the logs if you don't want to see them (bug 139)
* Removed av5100 and pbe5 modules from the IPW2100 project.  If you 
  require one of those modules you will need to obtain them from the RF 
  Switch project (http://rfswitch.sf.net)

Known issues in 0.49

!- If C3 is enabled, you may occasionally see "Packet Payload Too Large"
   messages in your kernel log, followed by a firmware reset.  A temporary
   work around is to disable the C3 low power state (either via the patch on
   the website to processor.c or by unloading the ACPI processor module).


July 7 2004 Changes in 0.48

* Fixed problem with scanning
* Updated INSTALL to indicate where the CRC32 library routine is
* Updated patches/ to 2.4.26 and 2.6.7

Known issues in 0.48

!- If C3 is enabled, you may occasionally see "Packet Payload Too Large"
   messages in your kernel log, followed by a firmware reset.  A temporary
   work around is to disable the C3 low power state (either via the patch on
   the website to processor.c or by unloading the ACPI processor module).


July 2 2004 Changes in 0.47

* Updated to sync with new networking APIs (thanks to Scott Feldman)
* Switched CONFIG_IPW2100_NOWEP to CONFIG_IEEE80211_NOWEP
* Removed dependency on Host AP for WEP (thanks to Pedro Ramalhais).
* Pulled all ieee80211* generic code into stand alone modules
* Started cleaning up and reworking the ieee80211_tx fragmentation code.
* Fixed module parameter and build problems for 2.4 systems
* Added code to better manage the state of interrupt enabling
* Added fix to stop network degradation after ICV mismatches (thanks to Pedro
  Ramalhais)
* Fixed code in the RF kill check that was erroneously setting the rf_kill
  variable to OFF if the switch was actually ON
* Added code to always check if the RF kill switch timer is running if the 
  device init fails.  
* Changed C3 corruption detection to only dump the status queue to the logs if
  you have defined CONFIG_IPW2100_DEBUG_C3

Known issues in 0.46

!- If C3 is enabled, you may occasionally see "Packet Payload Too Large"
   messages in your kernel log, followed by a firmware reset.  A temporary
   work around is to disable the C3 low power state (either via the patch on
   the website to processor.c or by unloading the ACPI processor module).


June 7 2004 Changes in 0.46

* _3 Fixed OOPS if RF switch disabled while loading the module (thanks to 
  Andrea Merello)
* _2 Added firmware restart backoff algorithm -- you should no longer have a 
  resource starved system if a restart storm hits.
* Set default bit rate mask to only cover valid rates
* Added ability to get/set expiration age for scans via proc
* Fixed kernel oops if queue allocation fails (thanks to Christian 
  Borntraeger)
* Corrected GPL license text to comply with code used in derivation (changed to
  specify the applicable license version)
* Fixed problem with using IPV6 when compiled as a module (thanks to 
  Antti Miettinen)
* Fix to remove compilation warning on ipw2100_set_tx_rates (thanks to Jan De 
  Luyck)
* Added mode and channel module parameters:
	% modprobe ipw2100 mode={0=bss,1=ibss,2=monitor} channel=n
* Added code to block FW commands while HW switch is enabled
* Added code to not enable the HW if the FW switch is enabled during module 
  load
* Fixed FW race condition experienced on some distributions (contributed to 
  inability to load FW as well as seeing 'fw ordinals used before HW 
  initialized' message)
* Restructured the C3 corruption detection logic to be more aggressive at 
  detection in an attempt to minimize interface downtime due to corrupt data
* Fixed bug in ipw2100_interrupt where the INTA value was being checked against
  0xffffffff after being masked (thanks to Mark Gross)
* Fixed bug in ipw2100_interrupt where dev->priv was being dereferenced 
  _before_ the check for dev being NULL
* Added code to ignore interrupts while loading the microcode (thanks to 
  Andrea Merello)
* Cleaned up some spelling and grammar mistakes (thanks to Pavel Machek)
* Fixed typo in INSTALL (thanks to Terry Simons)

Known issues in 0.46

!- If C3 is enabled, you may occasionally see "Packet Payload Too Large"
   messages in your kernel log, followed by a firmware reset.  A temporary
   work around is to disable the C3 low power state (either via the patch on
   the website to processor.c or by unloading the ACPI processor module).
!- If you use Monitor mode, make sure you take down the interface first:
     % ifconfig eth1 down
     % iwconfig eth1 mode monitor
     % ifconfig eth1 down
   Users have reported that failure do to so frequently does strange things
   with the keyboard.

May 20 2004 Changes in 0.45

* Added support for setting TX rates (thanks to An-Cheng Huang)
* Fixed problem with interrupt conflicts during suspend/resume and init while
  loading the microcode (thanks to Andrea Merello)
* Fixed kernel oops and system lockups under heavy small packet load (packet 
  starvation problem -- thanks to Pedro Ramalhais for helping on this one)
* Fixed support for providing custom MAC address (thanks to Andrea Merello)
* Test for corrupt TCP packet problem (not the C3 corruption)
* Added Ad-Hoc support.  This has had limited testing, so if you've been 
  waiting for Ad-Hoc and try this, please let me know how it goes
* You can use HOSTAP CVS by applying the patch located at 
    http://ipw2100.sf.net/downloads/ipw2100-0.45-HOSTAP_CVS.patch
  This patch will then allow you to use Host AP v0.2.x (thanks to Pedro 
  Ramalhais)
* Modified C3 detection code path to immediately halt the firmare, report out 
  full status queue buffer, and schedule a restart
* Added C3 corruption reset code such that it will restart on other detections 
  (thanks to Benjamin Osheroff)

Known issues in 0.45
!- If C3 is enabled, you may occasionally see "Packet Payload Too Large"
   messages in your kernel log, followed by a firmware reset.  A temporary
   work around is to disable the C3 low power state (either via the patch on
   the website to processor.c or by unloading the ACPI processor module).
!- If you use Monitor mode, make sure you take down the interface first:
     % ifconfig eth1 down
     % iwconfig eth1 mode monitor
     % ifconfig eth1 down
   Users have reported that failure do to so frequently does strange things
   with the keyboard.

May 10 2004 Changes in 0.44

* Firmware updated - you must update the firmware images on your system.  You 
  can obtain the latest firmware from http://ipw2100.sf.net/firmware.php
* More code restructuring --started moving the ctl and mgmt frame code into 
  the ieee80211* files (vs. contained in ipw2100_main.c and ipw2100.h)
* Switched all dev_kfree_skb calls in the generic packet handlers to use
  dev_kfree_skb_any so they are safe in user or interrupt context.  This 
  removed the opportunity for some more badness in the bh handlers during 
  error return path cleanup.
* Part 2 (of 2) for Monitor mode support added (thanks to Maciej Urbaniak and
  Jacek Wysoczynski)
* INSTALL typeo fix (thanks to |GeO| on #ipw2100)

Known issues in 0.43
!- If C3 is enabled, you may occasionally see "Packet Payload Too Large"
   messages in your kernel log, followed by a firmware reset.  A temporary
   work around is to disable the C3 low power state (either via the patch on 
   the website to processor.c or by unloading the ACPI processor module).

May 05 2004 Changes in 0.43

* HOSTAP issue in Makefile for 2.4 fix (thanks to Andreas Piesk)
* Typeo in Makefile (thanks to Eric C. Cooper)
* Improved signal quality metric (thanks to Mikolaj Kolakowski)
* Part 1 (of 2) for Monitor mode support added (thanks to Maciej Urbaniak)
* Changed aging of scan results such that if a beacon or response isn't 
  received within 3 scan's, it is not listed in scan results.
* Added support for 802.1x EAP authentication (thanks to Pedro Ramalhais)
* Fixed 'badness in local_bh_enable' (thanks to trash on IRC for testing)
* Increased timeout for detecting the hardware coming to life; this should help
  those that frequently see the 'No response from Symbol - hw not alive'
  message (I can't find who found this fix... let me know if it was you.)
* Fixed boot time initialization failure (thanks to Benjamin Osheroff)
* Added CONFIG_IPW2100_RX_DEBUG for dumping packet contents in the event that a
  WEP packet's ICV fails.

Known issues in 0.43
!- If C3 is enabled, you may occasionally see "Packet Payload Too Large"
   messages in your kernel log, followed by a firmware reset.  A temporary
   work around is to disable the C3 low power state (either via the patch on 
   the website to processor.c or by unloading the ACPI processor module).

Apr 29 2004 Changes in 0.42
* Test fix for WEP/SSL stalls.  Let me know if you still see Tx stalls with 
  WEP enabled.  If the problem is fixed, I can optimize the change I put in.
* Test fix for CONFIG_IP_NF_CONNTRACK hang/oops/crash (Badness in 
  local_bh_enable)
* Added fix to kill hang check timer if initialization fails (thanks to Ben 
  Osheroff)
* Added code to remove scan entries if a beacon has not been received within 
  the last 2 seconds.
* Fixed ipw2100_power_cycle_adapter to use write_register instead of 
  write_nic_dword (thanks to Damien Bergamini)
* Fixed problems in the Makefile not finding HOSTAP when provided as a 
  parameter by the user.
* Added more default search locations for finding HOSTAP sources in order to
  simplify the build process.
* Lots of new instrumentation to assist in tracking down problems, most 
  notably /proc/net/ipw2100/[if_name]/memory.
* Changed excessive retry statistics to report the number of failures vs. 
  just the number of retries.
* Updated INSTALL with some corrections on how to build Host AP

Known issues in 0.42
!- If C3 is enabled, you may occasionally see "Packet Payload Too Large"
   messages in your kernel log, followed by a firmware reset.  Disabling
   C3 (either via the patch on the website to processor.c or by unloading the
   ACPI processor module) should correct the problem.

Apr 15 2004 Changes in 0.41
* Updated INSTALL to (hopefully) better describe how to install Host AP
* If CONFIG_IPV6 is defined then we don't turn on the multicast filter.  
  This should allow IPv6 to work with the IPW2100 (thanks to Christian Hesse)
* Removed hostap/hostap_crypt.h from the IPW2100 distribution.  You now need
  to tell the build system where you have installed the hostap-driver-0.1.3
  sources.  See INSTALL for more information.
* Removed debug printk() from Rx path that was flooding some people's kernel
  logs with messages about packets not being RFC1042 or BRIDGE.
* Fixed AP beacon code to correctly update AP information when a new beacon
  with a matching BSSID is received
* Fixed Rx error cleanup code--buffer was being remapped _before_ the SKB
  was being reconfigured.  This would cause Bad Things if enough bad packets
  were received.
* Fixed "off by two orders of magnitude" bug on the timeout and period power
  values (seen if you use iwlist power)

Known issues in 0.41
!- WEP transfers are still stalling out on uploads.  Non-WEP is solid.
!- If C3 is enabled, you may occasionally see "Packet Payload Too Large" 
   messages in your kernel log, followed by a firmware reset.  Disabling
   C3 (either via the patch on the website to processor.c or by unloading the
   ACPI processor module) should correct the problem.

Apr 14 2004 Changes in 0.40
* Added wireless extension power management control (thanks to An-Cheng Huang)
* Added wireless extension delayed event to fetch the BSSID from the firmware 
  (thanks to Martin Whitaker)
* Fixed module parameters for ipw2100 and the SW switch modules (thanks to 
  Andreas Piesk)
* Fixed fetching of wireless values when RF switch is off (thanks to Martin 
  Whitaker)
* Fixed problem with ESSID setting code if NULL provided (thanks to Martin 
  Whitaker)
* Added WEP range getting support (thanks to Pedro Ramalhais)
* Fixed WX debug output bug (thanks to Pedro Ramalhais and Martin Whitaker)
* Added some queue statistics to /proc/net/ipw2100/[if_name]/internals
* Put in a delay test to see if we can reduce the number of firmware restarts
  people see during initialization.
* Non BSS beacons are now dropped to clear up stray IBSS messages
* Fixed some Tx debug output incorrectly listing TBD indexes
* Refactor e d  schedule_reset code into one routine
* Added a packet dump to kernel log when WEP decryption fails.  Hopefully this
  can help us determine the cause of ICV corruption

Apr 06 2004 Changes in 0.40-pre2...
Changes in 0.40-pre2

* Transitioned to a single tarball for distribution.  Kernel patches to perform
  internal builds are now stored in the 'patches' directory.  See the README
  in that directory for information on using them.
* Changed Tx code patch to a generic implementation
* WEP is now enabled by default.  In order to load the module with the default
  settings you must first install hostap-driver-0.1.3 (specifically the hostap
  and hostap_crypt_wep modules).  You can obtain Host AP from

        http://hostap.epitest.fi

* Added initial support for fragmentation in the new Tx code path (BROKEN!)
* Improved driver restart capabilities.  If the firmware is restarted it should
  now be able to reconfigure WEP keys, associated ESSID, etc.
* Added new debug output level for tracking dropped packets
* Fixed problem with the if_name parameter (thanks to Giuseppe Della Ricca)
* Scan output is now relative to the order in which the last beacon or probe
  response was received.
* Results from both Probe responses and Beacon reception are used to build the
  scan table
* Fixed WEP Rx failure code path (thanks to Pedro Ramalhais)
* Tx/Rx packets are both correctly accounted for via ifconfig
* Fixed support for OPEN and SHARED KEY authentication modes with WEP enabled
* Fragment buffers are now queued on each packet by ieee80211_tx() (skb_queue)

Known Issues in 0.40-pre2

!-Fragmentation is broken.  If you turn on Tx fragmentation you will stop
  sending data.

Mar 29 2004 Changes in 0.40-pre...
NOTE:  
  A lot of folks on IRC wanted a code drop now that I have WEP limping 
  along.  The changes in this version have not been extensively tested.
  So, if you upgrade to 0.40 you may see a regression in features or 
  stability--even with WEP disabled.

  To use the WEP, you must install hostap-drivers-0.1.3 (you will need
  the hostap and hostap_crypt_wep modules)

* Added IPWINFO gathering script (thanks to Jordi Martinez)
* Added full WEP authentication (HW) and Tx/Rx (SW) built on Host AP's WEP
  algorithm.  This is UNSTABLE.  You can play with it by configuring 
  CONFIG_IPW2100_WEP=y.
* Added ieee80211.c and ieee80211_wx.c as generic implementations of more 
  ieee80211 frame handling.  These are based on code from the Host AP project.
* Added rate/bitrate, channel/frequency support for iwlist (thanks to Pedro
  Ramalhais)
* Switched ieee80211_cryto_ops to hostap_crypto_ops and added a copy of 
  Host AP v0.1.3's hostap_crypt.h to ensure that we are using the same 
  structures as hostap.
* Fixed AP scanning to use Probe Response frames vs. Beacon frames for 
  collecting APs from a scan
* Added code such that if commands fail to be sent, a firmware restart is 
  scheduled.
* Switched firmware init to use schedule_timeout vs. udelay
* There is s a memory write flush test in place to see if C2->C3 transition 
  problems can be improved (search for !!!!TEST!!!! in ipw2100_main.c)
* Packets are only processed if the interface is up
* Some overly verbose Tx/Rx debug log messages were removed
* Fixed ISR incorrectly outputting the INTA value to the debug log
* Tx queue is flushed when interface is closed
* Added kernel compilation check to only use ethtool_ops if kernel > 2.4.23 
  (let me know if there is a better way to check for this)
* Added ieee80211_init to initialize the ieee80211_device struct
* Firmware load now tied to modprobe/rmmmod vs. ifup/ifdown.  This hasn't been
  thoroughly tested.
* Added addition compiler check on wake_up_interruptible_sync to help building
  on 2.4.22 (thanks to Giuseppe Della Ricca)

Known Issues in 0.40-pre... 
!-The WEP code is unstable.  
!-If WEP is enabled (CONFIG_IPW2100_WEP=y), it will eventually crash.
!-Occassionally, packets start failing decryption.
!-If the firmware restarts, it does not re configure the WEP keys correctly,
  so while you may re-associate with the WEP AP, you won't have keys 
  configured to actually exchange WEP packets.
!-ieee80211 packet stats are not reported through the /proc/net/wireless (just
  haven't switched that code over)
!-WEP Tx is a quick-fix to get the code working.  It will be restructured into
  a generic 802.11 mechanism.
!-Firmware restarts are still occurring too frequently.
 

Mar 26 2004 Changes in 0.39...
* Added 'make clean' and error message cleanup (thanks to Luca Capello)
* Fixed suspend/resume support C3 issue (thanks to Moled on IRC)
* Moved timer kill to ipw2100_down from the exit routine to stop timers when
  the interface goes down--otherwise the firmware hang check might kick in.
* More Makefile cleanups (thanks to Michael Rickmann)
* Attempted fix for using the external Makefile in a kernel configured for 
  building ipw2100 internally (in the case when ipw2100 has been added via
  menuconfig).
* Modified range settings for quality and level, also switched RSSI to DBM back
  to the original -98.  Otherwise if you have a strong signal, the value goes
  positive and the wireless tools switch to displaying as a ratio vs. dBm.
* Added /proc/net/ipw2100/[if_name]/internals to display some internal 
  variables to help track issues.
* Added connection check to quality return for iwconfig (thanks to Pedro 
  Corte-Real)

Mar 24 2004 Changes in 0.38...
* Added SW RF Kill switch support for Packard Bell EasyNote E5 (thanks to 
  Pedro Ramalhais)
* Fixed RSSI to DBM constant from 98 to 90
* Added patch for quality metrics in /proc/net/wireless (thanks to Martin 
  Schrodt)
* Refactored the start/stop code into ipw2100_up / down, and hooked the code 
  into the suspend/resume code.
* Added a 2s heartbeat timer to the firmware; if the RTC stalls then a reset
  is performed.
* Fixed ISR code to use a tasklet instead of scheduled work (fixes 
  'hw_command_send timed out' during firmware restart)
* Added 'firmware resets' and 'firmware hangs' counters to 
  /proc/net/ipw2100/[if_name]/stats

Mar 22 2004 Changes in 0.37...
* Fixed /proc/net/ipw2100 cleanup on exit (thanks to Giuseppe)
* Added initial eth_tool support for link detection (thanks to Martin Schrodt)
* Began code changes for WEP support (leveraging Host AP projec)
* Fixed firmware version # reporting in /proc/net/ipw2100/[if_name]/version
  with CONFIG_IPW2100_LEGACY_FW_LOAD
* Changed to unified build Makefile for all release versions
* Switched ISR code to a scheduled work item
* Upgraded patchset to 2.6.4

Mar 19 2004 Changes in 0.36...
* Fixed pci_free_consistent bug in ipw2100_msg_free (thanks to Damien 
  Bergamini).  Defect # 918004.
* Added dumping of status structure if payload size reported to be greater than
  allowable 802_11 payload size.
* Added firmware restart on bogus payload size; temporary work around until we i
  root cause the data corruption.
* Added printk() to output which firmware loading method is being used
* Added printk() to ipw2100_tx_timeout to track firmware stalls
* Several changes to the Makefile for supporting external and internal building

Mar 18 2004 Changes in 0.35...
* Added wireless extension get range support
* Added /proc/net/ipw2100/[if_name]/{ordinals,hw,registers,pci} for dumping 
  various pieces of data.
* Code cleanup in a couple spots
* Removed max transit unit (MTU) check in isr_rx (should fix MTU conflict some 
  users are seeing)
* Modified code path so that if wake_up_sync is not defined, we define
  wake_up_interruptible_sync to wake_up_interruptible so that the 
  __wake_up_sync patch is no longer needed.
* Added initial start for suspend/resume (thanks to Len Brown).

Mar 17 2004 Changes in 0.34...
* ACPI C3 conflict resolved. If you have applied the C3 patch to 
  drivers/acpi/processor.c, you can now reverse that patch and turn C3 back on. 
* Added HW register and PCI configuration data dump entries to 
  proc/net/ipw2100/[if_name]/{hw,pci} 
* Updated Makefile in the -full version (will migrate to the -2.4 and -2.6 
  patch versions soon) 

Mar 16 2004 Changes in 0.33...
* Added hotplug firmware loading support (thanks to Luc Saillard). If you need 
  to continue using the old style, you can turn it on via kernel configuration
  options. It defaults to the new mechanism. See INSTALL for information. 
* Added interface name module parameter (if_name) (thanks to Stanley Wang, 
  Boris Hu, and Cyril Jaquier for all submitting roughly the same patch) 
* Added port IO debug output for tracing IO to the actual hardware 
  (IPW2100_DEBUG_IO) 
* Moved proc info into /proc/net/ipw2100 from /proc/ipw2100 
* Added support for /proc/net/wireless (thanks to Luc Saillard). 
* Added external makefile (thanks to Peter Johanson). This Makefile was 
  modified slightly to target .../wireless/ipw2100 vs. .../wireless (thanks to 
  Luca Capello). 

Mar 12 2004 Changes in 0.32...
* Added support for toggling RF switch. If you have a HW based RF switch you 
  can now toggle it ON/OFF and the driver will resync. 
* Added IPW2100_DEBUG_RF_KILL to monitor RF transitions in debug log 
* Fixed module fault on iwconfig ethX nick (thanks Radu Graeb) 

Mar 12 2004 Changes in 0.31
* Hardware reset now supported 
* Support for hardware reset in response to fatal_interrupt 
* proc oops fixed (thanks to Radu Greab) 
* Fixed problem with dev->mem_end being set incorrectly 
* Fixed oops with accessing some iwconfig query commands while the driver is 
  uninitialized. 

Mar 11 2004 Changes in 0.30...
* Updated INSTALL with external build steps (thanks Andrea) 
* Added IPW2100_DEBUG_FRAG for fragmentation tracing 
* Fixed oops if module unloaded before interface initialized/up 
* Fixed oops if attempt to load corrupt firmware 
* Fixed oops if iwlist scan used before interface initialized/up 
* Moved printk() device info to after the device is registered (so you don't 
  see eth%d in the kernel log) 
* Began cleaning up the open/close logic so that it can reset the firmware 
  correctly on critical errors. 
* Incorporated several recommended code fixes by Jeff Garzik (still have quite 
  a few to incorporate) 

Mar 10 2004 Changes in 0.29
* Initial release 
* BSS support 
* Fragmentation 
* Some wireless extension support 
