Use the rdtscl call only on x86 achitectures
[acx-mac80211.git] / Changelog
blob10f725afe534938ce504db1a75b79b930d6ef449
1 2008-02-10 Matteo Croce <rootkit85@users.sf.net>
2         * Makefile: add support for out-of-kernel module compilation.
3         * Dropped support for kernel versions older than 2.6.19.
4         * Small code refactoring and cleanup changes.
6 2008-01-12 Matteo Croce <rootkit85@users.sf.net>
7         * 0.3.37 release.
8         * Added VLYNQ support. This allows the driver to support TNETW1130 and
9         TNETW1350 devices on ar7-based routers. The chipsets can apparently
10         work with either PCI (miniPCI) or VLYNQ, but the boards containing
11         them usually only implement VLYNQ.
12         See http://acx100.sourceforge.net/wiki/VLYNQ for further information.
13         Changes contributed from the openwrt project.
15 2007-10-03 Matteo Croce <rootkit85@users.sf.net>
16         * Added some endiannes-related functions. Changes contributed from the
17         openwrt project.
18         * Disabled the power management on PCI devices through the CONFIG_PM
19         definition.
21 2007-06-10 Matteo Croce <rootkit85@users.sf.net>
22         * Added support for the 2.6.22 kernel.
24 [20070101] 0.3.36
25 * Andreas Mohr <andi@lisas.de>
26   - cope with *tons* of Linux kernel API changes (via added version checks):
27     - linux/utsrelease.h required in 2.6.18
28     - linux/config.h include removal in 2.6.19
29     - pt_regs interrupt handler arg removal in 2.6.19
30     - INIT_WORK() change in 2.6.20-rc1-git1
31     - "ESSID last char missing" API change in WE-21
32     If anything fails to work for a real non-prerelease mainline kernel version
33     (supported ones, that is: >= 2.6.10), then please yell immediately!
34     Those people *REALLY* want me to concentrate on getting this stuff ready for
35     mainline, it seems...
36   - MAC address change fix (contributed by Carlos Martín Nieto/Luis Padilla)
37   - fix iwlist wlan0 scan output (updated wrong pointer variable --> only one
38     single rate value listed, doh!)
39   - fix buggy hidden ESSID handling (didn't cover all variants in all places)
40   - corrected(?) duration/sequence values in assoc steps handling
41   - use ioremap_nocache() instead of ioremap() (safer)
42   - add another TNETW1450 USB ID
43   - FIX buggy "correction" of medium busy percentage log message
44   - small /proc/driver/acx_wlan0_diag addition
45   - much more verbose firmware image query log message
46   - updated format of main hardware status log message
47   - slightly enhanced Reason Code log messages
48   - minor cleanup
50 [20061217]
51 * Sync with acxsm 0.4.9
52  - Moved some #includes (were sitting in the middle of the file)
53  - from Andreas Mohr: ioremap -> ioremap_nocache,
54    more descriptive error message on firmware upload failure
56 [20060707]
57 * Jeff Williams
58   Fixed Kconfig CONFIG_ACX_MAC80211_* in common.c and acx_struct.h
60 [20060707]
61 * Matthias Meyer
62   Moved GPL license to README
64 [20060605-20060706]
65 * Jeff Williams <jeff@wdwconsulting.net>
66   Added DeviceScape 80211 stack support to PCI
67   Works with wpa_supplicant and hostapd
68   Removed excess homegrown/linux-wlan 80211 stack
70 [20060518]
71 * Fix warnings about packed structs and printf format mismatches.
72   Fix "implicit declaration of function dma_free_coherent" warning.
74 [20060212] 0.3.35
75 * Carlos Martin <carlos@cmartin.tk>
76   - Fix breakage of "Get rid of circular list of adev's"
77   - Remove .owner = THIS_MODULE
79 [20060209] 0.3.34
80 * Get rid of circular list of adev's
82 [20060206]
83 * Register driver device ids to usb device table
85 [20060205] 0.3.33
86 * Andreas Mohr <andi@rhlx01.fht-esslingen.de>
87   - implement much more flexible firmware statistics parsing
88     (for /proc/driver/acx_wlanX_diag)
89     This has the nice effect that we now get output for both the older
90     TNETW1100 USB and TNETW1450.
91     Since firmware statistics information has non-stable layout depending on
92     firmware version, please report if you suspect any parsing mismatch!
93     This improved version now uses 2kB more driver space, unfortunately.
94   - use "% 8" modulo instead of more complicated "% 5" calculation
96 [20060202] 0.3.32
97 * Andreas Mohr <andim2@users.sourceforge.net>
98   - add initial support for new TNETW1450 USB chip (available on the market since
99     June or so): successful firmware booting, driver initialization working up to
100     a working iwconfig. Any network traffic whatsoever NOT working yet.
101     VERY EXPERIMENTAL! (especially since TNETW1450 sometimes uses enhanced,
102     longer structs for some IEs)
103   - add a ton of different TNETW1450 USB device VID/PID combinations; it's
104     highly likely that there will be many more TNETW1450 devices in the future...
105   - add many more firmware command IEs
106   - firmware upload cleanup (rename variables to better names, unify the various
107     firmware upload implementations, ...)
108   - add FIXME comment to remind about semaphore -> mutex conversion
109   The TNETW1450 firmware image is currently called tiacx111usbcRR, with RR being
110   the currently used radio ID 0x1D ("1D"): tiacx111usbc1D.
112 [20060126] 0.3.31
113 * fix bug uncovered by code added in support for firmware 2.3.1.31
115 [20060124] 0.3.30
116 * fix breakage introduced by vda
117 * Bas Vermeulen <bvermeul@blackstar.xs4all.nl>:
118   support for firmware 2.3.1.31
120 [20060117] 0.3.29
121 * Andreas Mohr <andim2@users.sourceforge.net>:
122   - fix OOPS in acx_l_rxmonitor() (wrong ndev->type setting leading to memcpy
123     of negative size) by reworking monitor mode type setup and adding
124     missing sanity checks
125   - rename acx1XX_ie_powermgmt_t to more correct acx1XX_ie_powersave_t
126   - fix format string compile warnings
127   - add <linux/compiler.h> include apparently required for __iomem define
128     around Linux 2.6.8
129   - rework eCPU init by replacing static msleep with faster, more intelligent
130     (hopefully) busy-wait
131 * acx_s_set_defaults slightly edited
132 * ioctls are changed to have correct prototypes
134 [20060116] 0.3.28
135 * Massive global replaces: priv->adev, netdev_priv->ndev2adev etc.
136   Minimal code changes
138 [20060113]
139 * Andreas Mohr <andim2@users.sourceforge.net>:
140   - add recommended cpu_relax() to busy-wait loops
141   - reorder struct wlandevice_t for better(??) cache use
142   - kill superfluous result variable in conv.c
143   - misc. small cleanup
144 * SEPARATE_DRIVER_INSTANCES is a 2.4ism, removed
146 [20060112] 0.3.27
147 * Andreas Mohr <andim2@users.sourceforge.net>:
148   - add support for configopt parsing for ACX100 EEPROM version v5
149   - only start another radio recalibration interval every 5 seconds
150     on ACX111 instead of every second
152 [20060111]
153 * drop compatibility cruft for kernels < 2.6.10
155 [20060109] 0.3.26
156 * From Andreas Mohr <andi@rhlx01.fht-esslingen.de>
157   - revert kzalloc change (too early, only Linux 2.6.14+ has support)
158   - add safe limit checks for probe_delay EEPROM values, log more
159     configopt values
160   - some early parts for packet fragmentation support
161     (I already know how to do it, I think, I just need some time
162     to implement it, and I *really* need this feature here with such
163     a BROKEN 3-wall connection here...)
164   - 802.11 power save mode improvements (not usable by mere mortals yet)
165   - switch fw cmd length structs depending on whether acx100 or acx111
166   - fix log message rate limiting (as a benefit code is now faster, too)
167   - unify acx100/acx111 scanning, saving a couple hundred bytes
168   - set Ctl2_8 to 0 which it most likely should be (please report if
169     this breaks anything - but it shouldn't since it's being initialized
170     to 0 on driver init anyway...)
172 [20060108] 0.3.25
173 * fix scanning breakage
174 * fix cmd timeout breakage
175 * attempt to fix suspend/resume
177 [20060104] 0.3.24
178 * From Andreas Mohr <andim2@users.sourceforge.net>
179   - activated acx100 configoption readout, unified acx100/acx111 parsing
180   - init NULL data template, required for 802.11 power save mode
181   - return actual, valid txpower levels in range ioctl (from configoption!)
182   fix bugs:
183   - fatal bug in 802.11 powersave structs
184   - some missing endianness conversions
185   - check for sane regulatory domain related settings on both SETting and GETting
186   - random optimizations making this much enhanced code *smaller* than the
187     previous version!
188   - optimized struct layout
189   - merge acx100_s_init_packet_templates and acx111_s_init_packet_templates
190   - use kzalloc instead of kmalloc where useful (yes, this driver is Linux 2.6.x
191     only, with x rather large)
192   - avoid some sprintf() and strlen()
193   - add support for new get_wireless_stats handling (...silence deprecation
194     warning!)
195   - add some unlikely()
196   - lower msleep() value in issue_cmd() in order to speed up card initialization
197     time (almost less than 1 second now, on P3/700!). should this lower msleep()
198     value be made init-only??
199   - disable get sensitivity ioctl for USB (unfortunately not working yet)
200   - make sure to call synchronize_irq(), (semi-)required for SMP
201   - group together some closely related functions
202   - misc cleanups/code maintenance
203   So, configoptions are now working for acx100, too, and unified, and
204   802.11 power save mode actually worked for acx100 when I tested it (large
205   delays during ping which indicate that it must be active, but I guess these
206   delays should be much reduced with a properly tuned implementation), but it's
207   not finished and thus not enabled by default.
209 [20051228]
210 * Global s/acxlog/log/
212 [20051220] 0.3.23
213 * timeout handling fixed for high load case
214   (patch by Andreas Mohr)
216 [20051219] 0.3.22
217 * acx100 active scanning must be working now, thanks to Carlos Martin
218   <carlos@cmartin.tk>.
220 [20051202]
221 * acx_s_update_card_settings cosmetic change
222   (but wasn't run tested)
224 [20051201] 0.3.21
225 * Thanks Carlos Martin
226 * Completely serialize USB rx. Tiny speed loss,
227   but even more safe wrt reordering.
228 * A few msleeps removed
230 [20051128] 0.3.20
231 * we will use only 2 rx usb buffers now. No apparent speed loss,
232   eliminates usb packet reordering risk.
233 * two USB fixes for real bugs and one fix for possible leak
234   of an urb on error path. Thanks Carlos Martin <carlosmn@gmail.com>.
236 [20051116] 0.3.19
237 * a few small fixes accumulated over time, nothing spectacular
239 [20051031] 0.3.18
240 * hopefully a final touch on USB tx autorate
242 [20051022] 0.3.17
243 * PCI command submission made simpler
245 [20051021] 0.3.16
246 * Small changes mostly designed to break USB ;)
247 * Auto rate handling for USB is still not confirmed to work.
248   I need USB logs from the users.
250 [20051020] 0.3.15
251 * Auto rate handling for USB is implemented. Untested.
253 [20051019]
254 * first step in proper auto rate handling for USB
256 [20051018] 0.3.14
257 * update for 2.6.14-rc4-mm1
258 * Kconfig bug (error if ACX=y, ACX_USB=y, USB=m) fixed
259 * PARANOID_LOCKING off by default
261 [20051016] 0.3.13
262 * Revert 20051013 fix, we have one which actually works.
263   Thanks Jacek Jablonski <yacek87@gmail.com> for testing!
265 [20051013]
266 * trying to fix "yet another similar bug"
267 * usb fix by Carlos Martin
269 [20051012] 0.3.12
270 * acx_l_clean_tx_desc bug fixed - was stopping tx completely
271   at high load. (It seems there exists yet another similar bug!)
272 * "unknown IE" dump was 2 bytes too short - fixed
273 * DUP logging made less noisy
274 * another usb fix by Carlos Martin <carlosmn@gmail.com>
276 [20051003]
277 * several usb fixes by Carlos Martin <carlosmn@gmail.com> - thanks!
278 * unknown IE logging made less noisy
279 * few unknown IEs added to the growing collection
280 * version bump to 0.3.11
282 [20050916]
283 * fix bogus MTU handling, add ability to change MTU
284 * fix WLAN_DATA_MAXLEN: 2312 -> 2304
285 * version bump to 0.3.10
287 [20050915]
288 * by popular request default mode is 'managed'
289 * empty handler for EID 7 (country info) is added
290 * fix 'timer not started - iface is not up'
291 * tx[host]desc micro optimizations
292 * version bump to 0.3.9
294 [20050914]
295 * tx[host]desc ring workings brought a bit back to two-hostdesc
296   scheme. This is an attempt to fix weird WG311v2 bug.
297   I still fail to understand how same chip with same fw can
298   work for me but do not work for a WG311v2 owner. Mystery.
299 * README updated
300 * version bump to 0.3.8
302 [20050913]
303 * variable and fields with awful names renamed
304 * a few fields dropped (they had constant values)
305 * small optimization to acx_l_clean_tx_desc()
306 * version bump to 0.3.7
308 [20050912]
309 * stop using 16 byte "private area" in txdesc - fw bug makes it unreliable
310 * better logging of DUPs
311 * version bump to 0.3.6
313 [20050911]
314 * use alloc_netdev/free_netdev/netdev_priv
315 * acx_inline.h incorporated into pci.c
316 * helper.c + helper2.c = common.c
317 * marking static functions
318 * enable IE_DOT11_CURRENT_ANTENNA for acx111
319 * version bump to 0.3.5
321 [20050910]
322 * minor fixes, 2.6.13-mm2 integration
324 [20050905]
325 * TIWLAN_DC is dead, ui32ACX[TR]xQueueStart is dead
326 * massive mucking with PCI and USB resulting in:
327   acx_pci.o + acx_usb.o = acx.o  ;)
328   Why? Here's why:
329     text    data     bss     dec     hex filename
330   116199     452      40  116691   1c7d3 acx.o
331   103435     244      20  103699   19513 acx_pci.o
332    81732     196      32   81960   14028 acx_usb.o
333 * helper.c is PCI/USB independent now. It was the last one.
334 * both modular and non-modular builds, PCI, USB, PCI+USB,
335   seem to compile successfully!
336 * version bump to 0.3.4
338 [20050904]
339 * acx_stop_queue() locking reviewed and mostly fixed
340 * 2.4isms in USB code are officially dead
341 * added debug stuff for discovering interrogate/configure IEs
342 * version bump to 0.3.3
344 [20050903]
345 * locking bug on error path fixed
346 * issue_cmd() logging made more sane
347 * issue_cmd() callers may abstain from printing issue_cmd() errors:
348   issue_cmd() itself gives enough info
349 * version bump to 0.3.2
351 [20050902]
352 * kill bogus configure() call in acx100_s_create_dma_regions()
354 [20050901]
355 * acx100_s_create_dma_regions: hopefully fixed for USB
356   (problem found with help of Carlos Martin <carlosmn@gmail.com> - thanks!)
357 * a load of cleanups:
358 * acx_s_create_tx_desc_queue -> acx_create_tx_desc_queue
359   (it doesn't sleep)
360 * struct acxp80211_nullframe -> acx_template_nullframe
361 * xXBUFFERCOUNT_ACXnn -> xXBUFCNT_ACXnn
362 * xXBUFFERCOUNT_USB -> USB_xXBUFCNT: these are _unrelated_ to xXBUFCNT_ACXnn,
363   should have visibly different names
364 * TODOs added (we have a few really Pascalish/Windowish names,
365   and some misleading ones)
366 * version bump to 0.3.1
368 [20050830]
369 * finally kill warning about acx_s_activate_power_save_mode()
370 * struct acx100_ie_memconfigoption: convert pRxHostDesc to acx_ptr type
371 * massive move of device-independent code from helper.c to helper2.c
373 [20050829]
374 * dummy handler for NONERP EID (47) added
376 [20050823]
377 * driver submitted for kernel inclusion
378 * #defines renamed: CONFIG_ACX_{PCI,USB} -> ACX_{PCI,USB}
379   (needed for correct compilation of two modules from the same source)
380 * version bump to 0.3.0
381 * sizes:
382    text    data     bss     dec     hex filename
383   78242     264       8   78514   132b2 drivers/net/wireless/acx/acx_pci.o
384   60622     208      20   60850    edb2 drivers/net/wireless/acx/acx_usb.o
386 [20050822]
387 * idma.c is incorporated into helper.c
388 * lots of cosmetic work: comments, struct member shuffling,
389   etc. TIWLAN_DC and other PCI data structs are #ifdef'ed
390   to be PCI-only. A few todos added. Extra #include's removed.
391 * added sem locking debug printout code (for amd64 debug)
392 * beacon tx rate and beacon ratevector is updated according to
393   "iwconfig rate" command immediately (required mode change before).
395 [20050821]
396 * Switch to wrapper functions for dealing with "tx buffers"
397   (memory areas where we create packets for tx. For USB, it's just
398   a part of wlandevice_t, for PCI it's a DMAable buffer pointed to
399   by txhostdesc).
400 * Completely hide nature of PCI txdescs under opaque pointer type tx_t*
401 * acx_l_ether_to_txdesc -> acx_l_ether_to_txbuf, not using knowledge
402   of PCI txdesc anymore.
403 * Massive surgery on usb.c, cutting all paths into PCI code.
404 * PCI code moved to pci.c - USB don't need these pieces anymore
405 * acx111 and acx100 txhostdesc creation unified into single function
407 [20050816]
408 * PCI code switched to single-txdesc scheme
409 * version bump to 0.2.5
411 [20050815]
412 * dev_kfree_skb -> dev_kfree_skb_any
414 [20050814]
415 * Auto rate was reset to lowest rate by scanning code
416   (AP beacons did it every tenth of a second!). Fixed.
417 * USB rx no longer uses PCI-style rx descriptor ring.
418   tx ring elimination needs 'single-descriptor' setup
419   to be developed for acx100 (patch exists for acx111).
420 * Very strange sem locking problems are reported on amd64.
421   Code which misbehaves looks fine. I do not know what's going on.
422   Workaround: turn off preemption.
424 [20050812]
425 * acx100 was failing to find out radio module #,
426   and wanted to load radio module 00. Must be fixed now.
427 * USB: more simplifications
429 [20050810]
430 * USB: simplified command submission code, removed some
431   wlandevice_t fields (now unused)
433 [20050808]
434 * USB changes: nuked global statics, simplified issue_cmd,
435   shortened wlandevice_t. Added some TODOs :)
437 [20050807]
438 * restart scan if AP is not found
439 * remove use_eth_name parameter. It was deprecated
440 * disable legacy firmware loader for 2.6. Driver printed a warning
441   about need to switch to hotplug.
442 * WARNING: new names for firmware images!
443   Driver will try to load the following images:
444   PCI driver:
445     'tiacxNNNcMM' (NNN=100/111, MM=radio module ID (in uppercase hex)):
446     combined firmware for specified chipset and radio.
447     failing that, it will try to load images named
448     'tiacxNNN' (NNN=100/111): main firmware for specified chipset
449     and 'tiacxNNNrMM': corresponding radio module.
450     For example, my firmware is in file named 'tiacx111c16'.
451     Alternatively, I may remove it and use pair of files
452     'tiacx111' and 'tiacx111r16' instead.
453   USB driver: loads image named 'tiacx100usb'
454   Hint: you can keep both old and new image names (via symlinks
455   or just by copying files) if you need to run older driver.
456 * fix "Debug: sleeping function called from invalid context..." for USB
457 * ACX_{PCI,USB} -> CONFIG_ACX_{PCI,USB} in preparation to 2.6 merge
458 * version bump to 0.2.4
460 [20050804]
461 * 'Fixed' deadlock on flush_scheduled_work (need a better fix eventually)
462 * We didn't completely disable IRQs on ifdown -> "Disabling IRQ#NN"
463   on second modprobe. Fixed.
465 [20050802]
466 * removed some // comments in order to please Andreas
467 * moved a field to PCI-only part of wlandevice_t
468 * Random Version Bump (tm) to 0.2.3
469 * no code changes
471 [20050730]
472 * Basically just incorporating acx-20050722.acx100fixed.patch
473   This is a bit of a backward step, because instead of figuring out
474   why active scanning doesn't work for acx100, we just disable it.
475   acx100 owners encouraged to try to make it work
477 [20050729]
478 * Added some IE IDs
480 [20050726]
481 * added probe request config to acx100_s_init_packet_templates,
482   maybe acx100 is working now
484 [20050721]
485 * del_timer_sync() sem lockup on SMP maybe fixed
487 [20050720]
488 * lots of amd64 warnings fixed, thanks to Matan Peled <chaosite@gmail.com>
490 [20050710]
491 * {tx,rx}hostdesc->desc_phy removed (was not used)
492 * netdev->type of ARPHRD_IEEE80211_PRISM was sticking forever
493   after monitor mode. Fixed
494 * monitor mode tx is working again
495 * rate reporting added in monitor mode packet header
497 [20050709]
498 * moved PCI specific ioctls to pci.c
499 * ioctl.c is PCI/USB independent now
501 [20050708]
502 * Fixed one apparent bug (wlandevice_t had different
503   layout for PCI and USB - conv.c would die horribly)
504 * Massive code shuffling with only trivial code changes.
505   Mostly sorting out PCI/USB stuff into relevant files.
506 * ihw.c eliminated
507 * helper2.c is PCI/USB independent now