Original 20060124 tarball
[acx-mac80211.git] / Changelog
blob6b7d22b7250d5ff7c4b8fc42df7bb033296ad2f4
1 TODO:
2 e100.c: pci_dma_sync_single_for_cpu(nic->pdev, rx->dma_addr, sizeof(struct rfd), PCI_DMA_FROMDEVICE);
3 do we need to do something like above for rxhostdescs/rxbufs?
5 TODO: from Efthym <efthym@gmx.net>:
6 13:12:42 wlan0: rx: 31 DUPs in 551 packets received in 10 sec
7 13:12:48 wlan0: tx error 0x20, buf 20! (excessive Tx retries
8 13:12:48 wlan0: tx error 0x20, buf 21! (excessive Tx retries
9 13:12:48 wlan0: several excessive Tx retry errors occurred, a
10 13:12:48 wlan0: tx error 0x20, buf 22! (excessive Tx retries
11 13:12:48 wlan0: tx error 0x20, buf 23! (excessive Tx retries
12 13:12:48 wlan0: tx error 0x20, buf 24! (excessive Tx retries
13 13:12:48 wlan0: recalibrating radio
14 13:12:48 wlan0: successfully recalibrated radio
15 13:12:52 wlan0: tx error 0x20, buf 25! (excessive Tx retries
16 13:12:52 wlan0: several excessive Tx retry errors occurred, a
17 13:12:52 wlan0: tx error 0x20, buf 26! (excessive Tx retries
18 13:12:52 wlan0: tx error 0x20, buf 27! (excessive Tx retries
19 13:12:52 wlan0: tx error 0x20, buf 28! (excessive Tx retries
20 13:12:52 wlan0: tx error 0x20, buf 29! (excessive Tx retries
21 13:12:52 wlan0: several excessive Tx retry errors occurred, a
22 13:12:52 wlan0: tx error 0x20, buf 30! (excessive Tx retries
23 13:12:52 wlan0: tx error 0x20, buf 31! (excessive Tx retries
24 13:12:52 wlan0: tx error 0x20, buf 00! (excessive Tx retries
25 13:12:52 wlan0: less than 5 minutes since last radio recalibr
26 13:12:58 wlan0: tx error 0x20, buf 01! (excessive Tx retries
27 13:12:58 wlan0: several excessive Tx retry errors occurred, a
28 13:12:58 wlan0: tx error 0x20, buf 02! (excessive Tx retries
29 13:12:58 wlan0: tx error 0x20, buf 03! (excessive Tx retries
30 13:12:58 wlan0: tx error 0x20, buf 04! (excessive Tx retries
31 13:12:58 wlan0: tx error 0x20, buf 05! (excessive Tx retries
32 13:12:58 wlan0: several excessive Tx retry errors occurred, a
33 13:12:58 disabling above notification message
34 13:12:58 wlan0: tx error 0x20, buf 06! (excessive Tx retries
35 13:12:58 wlan0: tx error 0x20, buf 07!
36 13:12:58 wlan0: tx error 0x20, buf 08!
37 13:12:58 wlan0: less than 5 minutes since last radio recalibr
38 13:13:06 wlan0: tx error 0x20, buf 09!
39 13:13:06 wlan0: tx error 0x20, buf 10!
40 13:13:06 wlan0: tx error 0x20, buf 11!
41 13:13:06 wlan0: tx error 0x20, buf 12!
42 13:13:06 wlan0: tx error 0x20, buf 13!
43 13:13:06 wlan0: tx error 0x20, buf 14!
44 13:13:06 wlan0: tx error 0x20, buf 15!
45 13:13:06 wlan0: tx error 0x20, buf 16!
46 13:13:06 wlan0: less than 5 minutes since last radio recalibr
47 13:13:18 wlan0: tx error 0x20, buf 17!
48 13:13:18 wlan0: tx error 0x20, buf 18!
49 13:13:18 wlan0: tx error 0x20, buf 19!
50 13:13:18 wlan0: tx error 0x20, buf 20!
51 13:13:18 wlan0: tx error 0x20, buf 21!
52 13:13:18 wlan0: tx error 0x20, buf 22!
53 13:13:18 wlan0: tx error 0x20, buf 23!
54 13:13:18 wlan0: tx error 0x20, buf 24!
55 13:13:18 wlan0: less than 5 minutes since last radio recalibr
56 13:13:25 wlan0: tx error 0x20, buf 25!
57 13:13:25 wlan0: tx error 0x20, buf 26!
58 13:13:25 wlan0: tx error 0x20, buf 27!
59 13:13:25 wlan0: tx error 0x20, buf 28!
60 13:13:25 wlan0: tx error 0x20, buf 29!
61 13:13:25 wlan0: tx error 0x20, buf 30!
62 13:13:25 wlan0: tx error 0x20, buf 31!
63 13:13:25 wlan0: tx error 0x20, buf 00!
64 13:13:25 wlan0: less than 5 minutes since last radio recalibr
65 13:13:25 disabling above message
66 13:13:32 wlan0: tx error 0x20, buf 01!
67 13:13:32 wlan0: tx error 0x20, buf 02!
68 13:13:32 wlan0: tx error 0x20, buf 03!
69 13:13:32 wlan0: tx error 0x20, buf 04!
70 13:13:32 wlan0: tx error 0x20, buf 05!
71 13:13:32 wlan0: tx error 0x20, buf 06!
72 13:13:32 wlan0: tx error 0x20, buf 07!
73 13:13:32 wlan0: tx error 0x20, buf 08!
74 13:13:41 wlan0: tx error 0x20, buf 09!
75 13:13:41 wlan0: tx error 0x20, buf 10!
76 13:13:41 wlan0: tx error 0x20, buf 11!
77 13:13:41 wlan0: tx error 0x20, buf 12!
78 13:13:41 wlan0: tx error 0x20, buf 13!
79 13:13:41 wlan0: tx error 0x20, buf 14!
80 13:13:41 wlan0: tx error 0x20, buf 15!
81 13:13:41 wlan0: tx error 0x20, buf 16!
82 13:13:51 wlan0: tx error 0x20, buf 17!
83 13:13:51 wlan0: tx error 0x20, buf 18!
84 13:13:51 wlan0: tx error 0x20, buf 19!
85 13:13:51 wlan0: tx error 0x20, buf 20!
86 13:13:51 wlan0: tx error 0x20, buf 21!
87 13:13:51 wlan0: tx error 0x20, buf 22!
88 13:13:51 wlan0: tx error 0x20, buf 23!
89 13:13:51 wlan0: tx error 0x20, buf 24!
90 13:14:02 wlan0: tx error 0x20, buf 25!
91 13:14:02 wlan0: tx error 0x20, buf 26!
92 13:14:02 wlan0: tx error 0x20, buf 27!
93 13:14:02 wlan0: tx error 0x20, buf 28!
94 13:14:02 wlan0: tx error 0x20, buf 29!
95 13:14:02 wlan0: tx error 0x20, buf 30!
96 13:14:02 wlan0: tx error 0x20, buf 31!
97 13:14:02 wlan0: tx error 0x20, buf 00!
98 13:14:13 wlan0: tx error 0x20, buf 01!
99 13:14:13 wlan0: tx error 0x20, buf 02!
100 13:14:13 wlan0: tx error 0x20, buf 03!
101 13:14:13 wlan0: tx error 0x20, buf 04!
102 13:14:13 wlan0: tx error 0x20, buf 05!
103 13:14:13 wlan0: tx error 0x20, buf 06!
104 13:14:13 wlan0: tx error 0x20, buf 07!
105 13:14:13 wlan0: tx error 0x20, buf 08!
107 [20060124] 0.3.30
108 * fix breakage introduced by vda
109 * Bas Vermeulen <bvermeul@blackstar.xs4all.nl>:
110   support for firmware 2.3.1.31
112 [20060117] 0.3.29
113 * Andreas Mohr <andim2@users.sourceforge.net>:
114   - fix OOPS in acx_l_rxmonitor() (wrong ndev->type setting leading to memcpy
115     of negative size) by reworking monitor mode type setup and adding
116     missing sanity checks
117   - rename acx1XX_ie_powermgmt_t to more correct acx1XX_ie_powersave_t
118   - fix format string compile warnings
119   - add <linux/compiler.h> include apparently required for __iomem define
120     around Linux 2.6.8
121   - rework eCPU init by replacing static msleep with faster, more intelligent
122     (hopefully) busy-wait
123 * acx_s_set_defaults slightly edited
124 * ioctls are changed to have correct prototypes
126 [20060116] 0.3.28
127 * Massive global replaces: priv->adev, netdev_priv->ndev2adev etc.
128   Minimal code changes
130 [20060113]
131 * Andreas Mohr <andim2@users.sourceforge.net>:
132   - add recommended cpu_relax() to busy-wait loops
133   - reorder struct wlandevice_t for better(??) cache use
134   - kill superfluous result variable in conv.c
135   - misc. small cleanup
136 * SEPARATE_DRIVER_INSTANCES is a 2.4ism, removed
138 [20060112] 0.3.27
139 * Andreas Mohr <andim2@users.sourceforge.net>:
140   - add support for configopt parsing for ACX100 EEPROM version v5
141   - only start another radio recalibration interval every 5 seconds
142     on ACX111 instead of every second
144 [20060111]
145 * drop compatibility cruft for kernels < 2.6.10
147 [20060109] 0.3.26
148 * From Andreas Mohr <andi@rhlx01.fht-esslingen.de>
149   - revert kzalloc change (too early, only Linux 2.6.14+ has support)
150   - add safe limit checks for probe_delay EEPROM values, log more
151     configopt values
152   - some early parts for packet fragmentation support
153     (I already know how to do it, I think, I just need some time
154     to implement it, and I *really* need this feature here with such
155     a BROKEN 3-wall connection here...)
156   - 802.11 power save mode improvements (not usable by mere mortals yet)
157   - switch fw cmd length structs depending on whether acx100 or acx111
158   - fix log message rate limiting (as a benefit code is now faster, too)
159   - unify acx100/acx111 scanning, saving a couple hundred bytes
160   - set Ctl2_8 to 0 which it most likely should be (please report if
161     this breaks anything - but it shouldn't since it's being initialized
162     to 0 on driver init anyway...)
164 [20060108] 0.3.25
165 * fix scanning breakage
166 * fix cmd timeout breakage
167 * attempt to fix suspend/resume
169 [20060104] 0.3.24
170 * From Andreas Mohr <andim2@users.sourceforge.net>
171   - activated acx100 configoption readout, unified acx100/acx111 parsing
172   - init NULL data template, required for 802.11 power save mode
173   - return actual, valid txpower levels in range ioctl (from configoption!)
174   fix bugs:
175   - fatal bug in 802.11 powersave structs
176   - some missing endianness conversions
177   - check for sane regulatory domain related settings on both SETting and GETting
178   - random optimizations making this much enhanced code *smaller* than the
179     previous version!
180   - optimized struct layout
181   - merge acx100_s_init_packet_templates and acx111_s_init_packet_templates
182   - use kzalloc instead of kmalloc where useful (yes, this driver is Linux 2.6.x
183     only, with x rather large)
184   - avoid some sprintf() and strlen()
185   - add support for new get_wireless_stats handling (...silence deprecation
186     warning!)
187   - add some unlikely()
188   - lower msleep() value in issue_cmd() in order to speed up card initialization
189     time (almost less than 1 second now, on P3/700!). should this lower msleep()
190     value be made init-only??
191   - disable get sensitivity ioctl for USB (unfortunately not working yet)
192   - make sure to call synchronize_irq(), (semi-)required for SMP
193   - group together some closely related functions
194   - misc cleanups/code maintenance
195   So, configoptions are now working for acx100, too, and unified, and
196   802.11 power save mode actually worked for acx100 when I tested it (large
197   delays during ping which indicate that it must be active, but I guess these
198   delays should be much reduced with a properly tuned implementation), but it's
199   not finished and thus not enabled by default.
201 [20051228]
202 * Global s/acxlog/log/
204 [20051220] 0.3.23
205 * timeout handling fixed for high load case
206   (patch by Andreas Mohr)
208 [20051219] 0.3.22
209 * acx100 active scanning must be working now, thanks to Carlos Martin
210   <carlos@cmartin.tk>.
212 [20051202]
213 * acx_s_update_card_settings cosmetic change
214   (but wasn't run tested)
216 [20051201] 0.3.21
217 * Thanks Carlos Martin
218 * Completely serialize USB rx. Tiny speed loss,
219   but even more safe wrt reordering.
220 * A few msleeps removed
222 [20051128] 0.3.20
223 * we will use only 2 rx usb buffers now. No apparent speed loss,
224   eliminates usb packet reordering risk.
225 * two USB fixes for real bugs and one fix for possible leak
226   of an urb on error path. Thanks Carlos Martin <carlosmn@gmail.com>.
228 [20051116] 0.3.19
229 * a few small fixes accumulated over time, nothing spectacular
231 [20051031] 0.3.18
232 * hopefully a final touch on USB tx autorate
234 [20051022] 0.3.17
235 * PCI command submission made simpler
237 [20051021] 0.3.16
238 * Small changes mostly designed to break USB ;)
239 * Auto rate handling for USB is still not confirmed to work.
240   I need USB logs from the users.
242 [20051020] 0.3.15
243 * Auto rate handling for USB is implemented. Untested.
245 [20051019]
246 * first step in proper auto rate handling for USB
248 [20051018] 0.3.14
249 * update for 2.6.14-rc4-mm1
250 * Kconfig bug (error if ACX=y, ACX_USB=y, USB=m) fixed
251 * PARANOID_LOCKING off by default
253 [20051016] 0.3.13
254 * Revert 20051013 fix, we have one which actually works.
255   Thanks Jacek Jablonski <yacek87@gmail.com> for testing!
257 [20051013]
258 * trying to fix "yet another similar bug"
259 * usb fix by Carlos Martin
261 [20051012] 0.3.12
262 * acx_l_clean_tx_desc bug fixed - was stopping tx completely
263   at high load. (It seems there exists yet another similar bug!)
264 * "unknown IE" dump was 2 bytes too short - fixed
265 * DUP logging made less noisy
266 * another usb fix by Carlos Martin <carlosmn@gmail.com>
268 [20051003]
269 * several usb fixes by Carlos Martin <carlosmn@gmail.com> - thanks!
270 * unknown IE logging made less noisy
271 * few unknown IEs added to the growing collection
272 * version bump to 0.3.11
274 [20050916]
275 * fix bogus MTU handling, add ability to change MTU
276 * fix WLAN_DATA_MAXLEN: 2312 -> 2304
277 * version bump to 0.3.10
279 [20050915]
280 * by popular request default mode is 'managed'
281 * empty handler for EID 7 (country info) is added
282 * fix 'timer not started - iface is not up'
283 * tx[host]desc micro optimizations
284 * version bump to 0.3.9
286 [20050914]
287 * tx[host]desc ring workings brought a bit back to two-hostdesc
288   scheme. This is an attempt to fix weird WG311v2 bug.
289   I still fail to understand how same chip with same fw can
290   work for me but do not work for a WG311v2 owner. Mystery.
291 * README updated
292 * version bump to 0.3.8
294 [20050913]
295 * variable and fields with awful names renamed
296 * a few fields dropped (they had constant values)
297 * small optimization to acx_l_clean_tx_desc()
298 * version bump to 0.3.7
300 [20050912]
301 * stop using 16 byte "private area" in txdesc - fw bug makes it unreliable
302 * better logging of DUPs
303 * version bump to 0.3.6
305 [20050911]
306 * use alloc_netdev/free_netdev/netdev_priv
307 * acx_inline.h incorporated into pci.c
308 * helper.c + helper2.c = common.c
309 * marking static functions
310 * enable IE_DOT11_CURRENT_ANTENNA for acx111
311 * version bump to 0.3.5
313 [20050910]
314 * minor fixes, 2.6.13-mm2 integration
316 [20050905]
317 * TIWLAN_DC is dead, ui32ACX[TR]xQueueStart is dead
318 * massive mucking with PCI and USB resulting in:
319   acx_pci.o + acx_usb.o = acx.o  ;)
320   Why? Here's why:
321     text    data     bss     dec     hex filename
322   116199     452      40  116691   1c7d3 acx.o
323   103435     244      20  103699   19513 acx_pci.o
324    81732     196      32   81960   14028 acx_usb.o
325 * helper.c is PCI/USB independent now. It was the last one.
326 * both modular and non-modular builds, PCI, USB, PCI+USB,
327   seem to compile successfully!
328 * version bump to 0.3.4
330 [20050904]
331 * acx_stop_queue() locking reviewed and mostly fixed
332 * 2.4isms in USB code are officially dead
333 * added debug stuff for discovering interrogate/configure IEs
334 * version bump to 0.3.3
336 [20050903]
337 * locking bug on error path fixed
338 * issue_cmd() logging made more sane
339 * issue_cmd() callers may abstain from printing issue_cmd() errors:
340   issue_cmd() itself gives enough info
341 * version bump to 0.3.2
343 [20050902]
344 * kill bogus configure() call in acx100_s_create_dma_regions()
346 [20050901]
347 * acx100_s_create_dma_regions: hopefully fixed for USB
348   (problem found with help of Carlos Martin <carlosmn@gmail.com> - thanks!)
349 * a load of cleanups:
350 * acx_s_create_tx_desc_queue -> acx_create_tx_desc_queue
351   (it doesn't sleep)
352 * struct acxp80211_nullframe -> acx_template_nullframe
353 * xXBUFFERCOUNT_ACXnn -> xXBUFCNT_ACXnn
354 * xXBUFFERCOUNT_USB -> USB_xXBUFCNT: these are _unrelated_ to xXBUFCNT_ACXnn,
355   should have visibly different names
356 * TODOs added (we have a few really Pascalish/Windowish names,
357   and some misleading ones)
358 * version bump to 0.3.1
360 [20050830]
361 * finally kill warning about acx_s_activate_power_save_mode()
362 * struct acx100_ie_memconfigoption: convert pRxHostDesc to acx_ptr type
363 * massive move of device-independent code from helper.c to helper2.c
365 [20050829]
366 * dummy handler for NONERP EID (47) added
368 [20050823]
369 * driver submitted for kernel inclusion
370 * #defines renamed: CONFIG_ACX_{PCI,USB} -> ACX_{PCI,USB}
371   (needed for correct compilation of two modules from the same source)
372 * version bump to 0.3.0
373 * sizes:
374    text    data     bss     dec     hex filename
375   78242     264       8   78514   132b2 drivers/net/wireless/acx/acx_pci.o
376   60622     208      20   60850    edb2 drivers/net/wireless/acx/acx_usb.o
378 [20050822]
379 * idma.c is incorporated into helper.c
380 * lots of cosmetic work: comments, struct member shuffling,
381   etc. TIWLAN_DC and other PCI data structs are #ifdef'ed
382   to be PCI-only. A few todos added. Extra #include's removed.
383 * added sem locking debug printout code (for amd64 debug)
384 * beacon tx rate and beacon ratevector is updated according to
385   "iwconfig rate" command immediately (required mode change before).
387 [20050821]
388 * Switch to wrapper functions for dealing with "tx buffers"
389   (memory areas where we create packets for tx. For USB, it's just
390   a part of wlandevice_t, for PCI it's a DMAable buffer pointed to
391   by txhostdesc).
392 * Completely hide nature of PCI txdescs under opaque pointer type tx_t*
393 * acx_l_ether_to_txdesc -> acx_l_ether_to_txbuf, not using knowledge
394   of PCI txdesc anymore.
395 * Massive surgery on usb.c, cutting all paths into PCI code.
396 * PCI code moved to pci.c - USB don't need these pieces anymore
397 * acx111 and acx100 txhostdesc creation unified into single function
399 [20050816]
400 * PCI code switched to single-txdesc scheme
401 * version bump to 0.2.5
403 [20050815]
404 * dev_kfree_skb -> dev_kfree_skb_any
406 [20050814]
407 * Auto rate was reset to lowest rate by scanning code
408   (AP beacons did it every tenth of a second!). Fixed.
409 * USB rx no longer uses PCI-style rx descriptor ring.
410   tx ring elimination needs 'single-descriptor' setup
411   to be developed for acx100 (patch exists for acx111).
412 * Very strange sem locking problems are reported on amd64.
413   Code which misbehaves looks fine. I do not know what's going on.
414   Workaround: turn off preemption.
416 [20050812]
417 * acx100 was failing to find out radio module #,
418   and wanted to load radio module 00. Must be fixed now.
419 * USB: more simplifications
421 [20050810]
422 * USB: simplified command submission code, removed some
423   wlandevice_t fields (now unused)
425 [20050808]
426 * USB changes: nuked global statics, simplified issue_cmd,
427   shortened wlandevice_t. Added some TODOs :)
429 [20050807]
430 * restart scan if AP is not found
431 * remove use_eth_name parameter. It was deprecated
432 * disable legacy firmware loader for 2.6. Driver printed a warning
433   about need to switch to hotplug.
434 * WARNING: new names for firmware images!
435   Driver will try to load the following images:
436   PCI driver:
437     'tiacxNNNcMM' (NNN=100/111, MM=radio module ID (in uppercase hex)):
438     combined firmware for specified chipset and radio.
439     failing that, it will try to load images named
440     'tiacxNNN' (NNN=100/111): main firmware for specified chipset
441     and 'tiacxNNNrMM': corresponding radio module.
442     For example, my firmware is in file named 'tiacx111c16'.
443     Alternatively, I may remove it and use pair of files
444     'tiacx111' and 'tiacx111r16' instead.
445   USB driver: loads image named 'tiacx100usb'
446   Hint: you can keep both old and new image names (via symlinks
447   or just by copying files) if you need to run older driver.
448 * fix "Debug: sleeping function called from invalid context..." for USB
449 * ACX_{PCI,USB} -> CONFIG_ACX_{PCI,USB} in preparation to 2.6 merge
450 * version bump to 0.2.4
452 [20050804]
453 * 'Fixed' deadlock on flush_scheduled_work (need a better fix eventually)
454 * We didn't completely disable IRQs on ifdown -> "Disabling IRQ#NN"
455   on second modprobe. Fixed.
457 [20050802]
458 * removed some // comments in order to please Andreas
459 * moved a field to PCI-only part of wlandevice_t
460 * Random Version Bump (tm) to 0.2.3
461 * no code changes
463 [20050730]
464 * Basically just incorporating acx-20050722.acx100fixed.patch
465   This is a bit of a backward step, because instead of figuring out
466   why active scanning doesn't work for acx100, we just disable it.
467   acx100 owners encouraged to try to make it work
469 [20050729]
470 * Added some IE IDs
472 [20050726]
473 * added probe request config to acx100_s_init_packet_templates,
474   maybe acx100 is working now
476 [20050721]
477 * del_timer_sync() sem lockup on SMP maybe fixed
479 [20050720]
480 * lots of amd64 warnings fixed, thanks to Matan Peled <chaosite@gmail.com>
482 [20050710]
483 * {tx,rx}hostdesc->desc_phy removed (was not used)
484 * netdev->type of ARPHRD_IEEE80211_PRISM was sticking forever
485   after monitor mode. Fixed
486 * monitor mode tx is working again
487 * rate reporting added in monitor mode packet header
489 [20050709]
490 * moved PCI specific ioctls to pci.c
491 * ioctl.c is PCI/USB independent now
493 [20050708]
494 * Fixed one apparent bug (wlandevice_t had different
495   layout for PCI and USB - conv.c would die horribly)
496 * Massive code shuffling with only trivial code changes.
497   Mostly sorting out PCI/USB stuff into relevant files.
498 * ihw.c eliminated
499 * helper2.c is PCI/USB independent now