1
If this doesn't manage to fix some things reported here or if it has some
2
new bugs as compared to the last version, then please notify me
3
immediately at andi@lisas.de
5
52 (ACX111 WEP working. Important fixes for Linux 2.4.x and also
7
RELIABILITY FEEDBACK: NOT TESTED, no feedback yet.
9
2005-04-11 19:25 andim2
11
* src/acx100_helper.c (1.344): Fix 2.4.x compile by adding the
14
2005-04-11 18:52 andim2
16
* README (1.126): Small update.
18
2005-04-08 23:35 andim2
20
* src/acx100_ioctl.c (1.241): Further endianness fixes.
22
2005-04-08 23:35 andim2
24
* src/idma.c (1.275): Rasmus Rohde: One important PPC endianness
29
51 (ACX111 WEP NOW WORKING!!! thanks HEAPS to Luis Padilla Visdomine for
30
magically pin-pointing it!!):
31
Even more wonderful work by Denis Vlasenko.
32
NOTE that Auto mode got removed, you need to explicitly configure Ad-Hoc or
34
RELIABILITY FEEDBACK: appears to work mostly fine for Linux 2.6.x and non-PPC
35
people ("ACX111 WEP is nice"), but not too much testing happened.
37
2005-04-07 23:03 andim2
39
* include/acx100_helper2.h (1.35), src/acx100_helper.c (1.343),
40
src/acx100_helper2.c (1.244): Move static variable out of inlined
41
function, saves a couple 100 bytes. Constify (.rodata) yet
42
another variable, revert variable from int to unsigned int (some
43
architectures are said to work better on unsigned int), document
44
resetting the scan count back to 0, some logging update.
46
2005-04-07 23:00 andim2
48
* README (1.125): Auto mode status update, mention firmware loading
51
2005-04-07 22:56 andim2
53
* src/idma.c (1.274): Revert the number of ACX111 ring buffers back
54
to 32, since that was a temporary debugging change.
56
2005-04-07 22:54 andim2
58
* scripts/start_net (1.38): Make sure people know that Auto mode
59
isn't supported any more, try to modprobe the firmware_class
60
module for 2.6.x hotplug firmware loader support.
62
2005-04-07 00:48 andim2
64
* src/acx100_usb.c (1.88): Make USB driver compile when ACX_DEBUG=0
66
2005-04-07 00:27 andim2
68
* README (1.124), include/acx100.h (1.186), src/acx100_helper.c
69
(1.342), src/acx100_helper2.c (1.243): Add some comments, fix
72
2005-04-06 23:21 andim2
74
* include/acx100.h (1.185), include/acx100_helper.h (1.107),
75
src/acx100_helper.c (1.341), src/acx100_helper2.c (1.242): Fix
76
problematic C++ comments
78
2005-04-06 22:45 andim2
80
* include/acx100_helper.h (1.106), include/p80211mgmt.h (1.11),
81
src/acx100.c (1.306), src/acx100_conv.c (1.71),
82
src/acx100_helper.c (1.340), src/idma.c (1.273): Denis Vlasenko:
83
AP mode beacon problem sorted out + MONITOR mode can send
84
+arbitrary 802.11 packets now!
86
I figured out why there were huge AP beacons. We were not
87
setting up TIM template!
89
tx path: a) added (probably redundant) check that will prevent
90
any tx in ACX_MODE_OFF. b) any 802.11 frame can be submitted to
91
tx in monitor mode. I was able to simulate AP beacons via
92
userspace. (Confirmed with sniffer)
94
2005-04-06 22:30 andim2
96
* include/acx.h (1.1), include/acx100.h (1.184),
97
include/acx100_conv.h (1.11), include/acx100_helper.h (1.105),
98
include/acx100_helper2.h (1.34), include/idma.h (1.63),
99
include/p80211hdr.h (1.8), include/p80211mgmt.h (1.10),
100
src/acx100.c (1.305), src/acx100_conv.c (1.70),
101
src/acx100_helper.c (1.339), src/acx100_helper2.c (1.241),
102
src/acx100_ioctl.c (1.240), src/acx100_usb.c (1.87),
103
src/acx80211frm.c (1.20), src/idma.c (1.272), src/ihw.c (1.121),
104
src/ihw_usb.c (1.31), src/ioregister.c (1.19): Denis Vlasenko: 1
107
Fix wrong data copying in acx_rxdesc_to_txdesc() by correcting
110
Kill several unused structures, #defines and so on, put all
111
#includes in dedicated acx.h file.
113
rename priv->macmode_wanted into just priv->mode, ISTATUS_xxx
116
acx_process_probe_response is reworked so that there is no
117
open-coded IE handling.
119
2005-04-06 21:54 andim2
121
* README (1.123), doc/firmware_versions.txt (1.11),
122
include/acx100_helper.h (1.104), scripts/start_net (1.37),
123
src/acx100_conv.c (1.69), src/acx100_helper.c (1.338): This patch
124
***FINALLY*** makes ACX111 WEP work!! (many, many, many thanks go
125
to Luis Padilla Visdomine for magically nailing down the
126
incredibly obscure issue!!) Update documentation as well to tell
127
people about the new Good Times.
129
2005-04-06 19:49 andim2
131
* include/acx100.h (1.183), include/acx100_helper.h (1.103),
132
include/acx100_helper2.h (1.33), include/p80211mgmt.h (1.9),
133
src/acx100.c (1.304), src/acx100_conv.c (1.68),
134
src/acx100_helper.c (1.337), src/acx100_helper2.c (1.240),
135
src/acx100_ioctl.c (1.239), src/idma.c (1.271): Denis Vlasenko:
136
introduce MONITOR and OFF mode.
140
a) Renames ACX_MODE_xxx consts so that they do not contain
141
useless parts (we dont need MANAGED in ACX_MODE_3_MANAGED_AP),
142
adds MONITOR and OFF, removes AUTO.
144
b) Removes a bunch of priv->xxx members which do not seem to be
145
needed. We already have far too many. Code is changed to work
146
without them. In particular, we do not need macmode_wanted,
147
macmode_chosen, macmode_joined triplet. We need macmode.
148
Period. Auto mode is silly. User shall just make up his mind
149
ad decide does he want ad-hoc or infrastructure mode. Thus
150
macmode_wanted==macmode_chosen. Also we do not expect to
151
want to join ad-hoc cell but suddenly find ourself in joined
152
to an AP (that will be utterly strange), thus
153
macmode_wanted==macmode_joined. (I plan to rename it it
154
acx_mode, and status to acx_status for better grep. Later.)
156
c) acx_scan_chan and acx_join_bssid got _cmd_ added to name
157
(to make it clearer that they just submit a cmd to firmware)
159
d) switched many places from if() to switch() to make code paths
160
related to different iwconfig modes more visible
162
e) made ah-hoc, ap, monitor, off modes work right at least in
163
regard to emitting (or not emitting) proper beacons. Monitor
164
mode tested for capture. This is the most important part of
167
f) added and trimmed comments, WLAN_ defines, switched from
168
numeric consts to symbolic, other minor work.
170
2005-04-05 23:49 andim2
172
* include/acx100.h (1.182), include/ihw.h (1.38), src/acx100_conv.c
173
(1.67), src/acx100_helper2.c (1.239), src/acx100_ioctl.c (1.238),
174
src/acx100_usb.c (1.86), src/idma.c (1.270): Denis Vlasenko:
175
consolidate mac copy/compare functions
177
This patch replaces MAC_XXX macros with inline functions and
178
replaces acx_is_mac_address_XXX function with mac_is_XXX for
181
1) names were just far too long 2) they have nothing to do
182
specifically with acx, acx_prefix is unjustified 3) they did
183
not follow TRUE=1,FALSE=0 convention. Compare this: -
184
else if (OK == acx_is_mac_address_equal(priv->dev_addr,
185
+hdr->a3.a1)) { + else if
186
(mac_is_equal(priv->dev_addr, hdr->a3.a1)) {
188
Some memcmp's and memcpy's were converted to new functions
190
2005-04-05 23:37 andim2
192
* include/acx100.h (1.181), include/acx100_helper.h (1.102),
193
include/acx100_helper2.h (1.32), src/acx100_helper2.c (1.238):
194
Denis Vlasenko: clean up client and mgmt packet handling
196
This patch does the following:
198
a) renames some previously unknown client_t structure members
200
b) introduces and uses CLIENT_xxx constants for client.used
202
c) fixes a place where code used totally unrelated variable
203
for access to challenge IE (grep for "NB Andreas:")
205
d) memcpy(clt->ratevec, ...) are commented out because they
206
are OOPSable (we do initialize clt->ratevec nowhere).
208
e) client lookups were open-coded in a number of places.
209
Converted to use acx_sta_list_get(). Added
210
acx_sta_list_get_or_add and used it in several places.
212
f) struct alloc_p80211mgmt_req_t and it's the only usage in
213
the form of global variable (alloc_p80211mgmt_req! ugggh) is
214
reworked. struct is changed to a union and moved to the only
215
place where it is used: acx_process_mgmt_frame(). Variable is
216
placed on stack and renamed so that my head does not explode
217
anymore. Comment is added.
219
g) arg_0 parameters are renamed.
221
2005-04-04 22:45 andim2
223
* src/acx100_usb.c (1.85): Slightly change kernel version check to
224
make sure it also hits Mandrake's botched "2.6.8.1" kernel
227
2005-04-03 23:22 andim2
229
* src/: acx100.c (1.303), acx100_helper.c (1.336): Further logging
232
2005-04-03 23:19 andim2
234
* src/idma.c (1.269): Fix failure logging, fix dma_addr_t logging
236
2005-04-03 22:39 andim2
238
* README (1.122): Mention limited firmware filename checks, mention
239
that update-modules is Debian-only.
241
2005-04-03 22:34 andim2
243
* src/idma.c (1.268): Better use unsigned loop variable, it's
246
2005-04-03 22:32 andim2
248
* include/acx100_helper.h (1.101): Tiny spelling fix
250
2005-04-03 22:30 andim2
252
* src/ihw.c (1.120): Tiny change
254
2005-04-03 22:30 andim2
256
* include/ihw.h (1.37): Optimize acx_is_mac_address_broadcast()
258
2005-04-03 22:26 andim2
260
* src/: acx100.c (1.302), acx100_helper.c (1.335), acx100_helper2.c
261
(1.237), acx100_ioctl.c (1.237): Constify some data structures to
262
avoid needless paging. (.rodata vs .data seg, see objdump -x)
264
2005-04-03 21:23 andim2
266
* include/acx100_helper2.h (1.31), include/p80211hdr.h (1.7),
267
include/p80211mgmt.h (1.8), include/wlan_compat.h (1.10),
268
src/acx100_helper.c (1.334), src/acx100_helper2.c (1.236): Denis
269
Vlasenko: sanitize mgmt packet generation
271
This patch is large, please review.
273
a) introduce wlan_hdr structure which documents 802.11 frame
274
layout. (currently unused, but eliminates the need to reach
275
for large .pdf file each time I forget it! :) Since it is
276
still unconvenient to work with unions (hdr.addr.mgmt.da!
277
ugggh...), I also added wlan_mgmt_hdr for use when header
278
type is known. (hdr.da, joy joy). More will be added as
281
(Why I did not use existing types? I find it hard to work with
283
named acxp80211_hdr when they are not related specifically to
285
and p80211_hdr is only slightly better - too many numbers...
286
I am thinking about using wlan_/WLAN_ prefix consistently for
287
all 802.11 stuff (unless it's related to acx hardware))
289
b) WF_MGMT_CAP_INFO_xxx enums added (similarly to one of earlier
290
patches) and used where appropriate. IEEE16 macro was moved.
292
c) acx_transmit_XXXXX functions are reworked, renaming local
293
variables with consistent names, using wlan_fill_ie_XXX to
294
fill IEs instead of open-coding it, etc.
296
d) TxData struct is dropped. It was misnamed: name emphasized the
297
fact that frame was to be transmitted, while layout was about
298
the fact that we are working with mgmt frame; also most of
299
it's fields was never used. I am using wlan_mgmt_hdr instead.
301
e) large no-content function comments trimmed down
303
2005-04-03 19:58 andim2
305
* include/acx100.h (1.180), include/acx100_helper2.h (1.30),
306
src/acx100_helper2.c (1.235): Denis Vlasenko: rename
309
A related bug is spotted/squashed.
311
Client hash table usages was sanitized and commented.
313
An unrelated inline was moved to .h file
315
2005-04-03 19:37 andim2
317
* include/acx100.h (1.179), src/acx100_helper.c (1.333),
318
src/acx100_helper2.c (1.234), src/acx100_ioctl.c (1.236),
319
src/ihw.c (1.119), src/ihw_usb.c (1.30): Denis Vlasenko: simplify
320
logging of MAC addresses No actual logic changes, but now printks
321
look much more compact
323
2005-04-03 19:24 andim2
325
* include/acx100_helper.h (1.100), include/p80211mgmt.h (1.7),
326
src/acx100_helper.c (1.332): Denis Vlasenko: sanitize template
327
initialization a) Template structures are grouped together and
328
consistently named b) Missing structure members defined (I tried
329
to preserve sizes of the structs, but please review...) c)
330
Added lots of comments d) Added helper functions for setting IEs
331
e) Template setting functions heavily reworked/simplified
333
2005-04-03 19:08 andim2
335
* src/: acx100_helper.c (1.331), acx100_helper2.c (1.233),
336
acx100_ioctl.c (1.235): Denis Vlasenko: we don't need to zero out
337
fields in scruct we just memset() to zero; kill stray ';;',
340
2005-04-03 19:03 andim2
342
* include/acx100.h (1.178), include/p80211hdr.h (1.6),
343
src/acx100_conv.c (1.66), src/acx100_helper.c (1.330),
344
src/acx100_helper2.c (1.232), src/acx100_ioctl.c (1.234),
345
src/idma.c (1.267): Denis Vlasenko: use better macros a) move
346
VEC_SIZE into .h file b) use it where appropriate c) add WF_
347
macros which allow for more efficient code (bit shifts and
348
ieee2host conversion can be avoided) and also their usage
349
looks more compact and understandable. Old macros are
352
2005-04-03 18:52 andim2
354
* include/acx100.h (1.177), src/acx100_helper.c (1.329), src/idma.c
355
(1.266): Denis Vlasenko: cleanup: kill #ifdefs By defining some
356
macros, we can eliminate pair of #ifdefs
358
2005-04-03 18:12 andim2
360
* Makefile (1.21), src/Makefile (1.54): Further fixes. This is not
361
perfect, but hopefully it works.
363
2005-04-03 18:09 andim2
365
* Makefile (1.20): Doh, make distclean didn't actually do what we
368
2005-04-01 00:25 andim2
370
* include/p80211hdr.h (1.5), src/idma.c (1.265): Denis Vlasenko:
371
untangle #ifdef forest a bit in dma alloc routines
373
We have way too many #ifdefs, I'm working on reorganizing code to
376
2005-04-01 00:21 andim2
378
* src/acx100_conv.c (1.65): Denis Vlasenko: sanitize eth<->wlan
379
conversion routines: a) copying and comparing 3-byte arrays
380
with constant contents is larger and slower than simply
381
comparing with constants. do inline compares (wrap them into
382
conveniently named inlines) b) rename acx_stt_findproto to
383
(hopefully) more understandable name c) start moving tovards
384
kernel convention: wlan_ethhdr_t -> struct wlan_ethhdr
385
(although I prefer former form) d) reorganize if() expressions,
386
they were hard to follow. kill redundant if() check.
388
Comment: let's just hope he's right in explaining one difficult
389
change in this patch - at this time of day I cannot really follow
395
50 (ACX111 WEP still not functional, will work more on it soon):
396
Many cool patches by Denis Vlasenko, but COMPLETELY UNTESTED.
397
NOTE that within the new hotplug patch, some alternate ACX111 firmware filenames
398
got removed. The driver now REQUIRES TIACX111.BIN
399
RELIABILITY FEEDBACK: problematic behaviour with various kernel versions,
400
use pf49 if you get compile errors. Otherwise seems to be fine.
402
2005-03-30 00:29 andim2
404
* include/acx100.h (1.176), src/acx100.c (1.301),
405
src/acx100_helper.c (1.328), src/acx100_helper2.c (1.231),
406
src/acx100_ioctl.c (1.233), src/idma.c (1.264): Fix invalid C++
407
comment style, fix 2.6 firmware loader to only be used in case
408
it's compiled in kernel, change FW_xxx defines to USE_FW_xxx,
411
2005-03-30 00:09 andim2
413
* include/acx100.h (1.175), include/acx100_helper.h (1.99),
414
src/acx100.c (1.300), src/acx100_helper.c (1.327),
415
src/acx100_ioctl.c (1.232), src/acx100_usb.c (1.84), src/idma.c
416
(1.263), src/ihw.c (1.118), src/ihw_usb.c (1.29): Denis Vlasenko:
417
make it compile if ACX_DEBUG=0 in Makefile
419
a) change #ifdef ACX_DEBUG into #if ACX_DEBUG so that ACX_DEBUG=0
420
in Makefile works as expected b) give debug and L_xxxx
421
constant zero values, allowing gcc to optimize debug code out
422
c) convert static string variables into #defines, allowing
423
them to be optimized out d) style fixes
425
2005-03-30 00:04 andim2
427
* src/acx100_conv.c (1.64): Denis Vlasenko: Fix two grave bugs in
428
ethernet header conversion: missing header->length assignment,
429
fix payload->length = proto code a) reduce le_to_cpu'ing using
430
temp variables b) do not doubly initialize local vars c) fix
433
2005-03-29 23:44 andim2
435
* src/acx100_conv.c (1.63): Denis Vlasenko: fix debug output:
436
Previous code would emit tons of "<n>" in the middle of the line.
438
2005-03-29 23:43 andim2
440
* src/acx100_helper.c (1.326): Denis Vlasenko: sprintf here is a
441
massive overkill While we're at it, add 'static' and use int for
444
2005-03-29 23:40 andim2
446
* src/acx100_helper.c (1.325): Denis Vlasenko: misplaced FN_ENTER
448
2005-03-29 23:39 andim2
450
* src/acx100_helper2.c (1.230): Denis Vlasenko: from_ds==to_ds==1
451
is a wds frame - Do not call it "rx error".
453
2005-03-29 23:37 andim2
455
* src/: acx100.c (1.299), acx100_helper.c (1.324), acx100_helper2.c
456
(1.229), acx100_ioctl.c (1.231), idma.c (1.262), ihw.c (1.117):
457
Denis Vlasenko: utterly trivial stuff: brace placement fixes and
460
2005-03-29 22:26 andim2
462
* include/acx100_helper.h (1.98), include/ihw.h (1.36),
463
src/acx100_helper.c (1.323), src/ihw.c (1.116), src/ihw_usb.c
464
(1.28): Denis Vlasenko: move inlines to .h files ...where they
467
2005-03-29 22:19 andim2
469
* src/acx100_ioctl.c (1.230): Denis Vlasenko: simplify fill_txrate:
472
2005-03-29 22:13 andim2
474
* src/acx100_ioctl.c (1.229): Denis Vlasenko: ioctl.c cleanup: a)
475
many instances of - if (0 != (err = acx_lock(priv,
476
&flags))) { - result = err; + result =
477
acx_lock(priv, &flags); + if (result) {
478
goto end; } b) deinline large functions c) reduce indent
479
levels in acx_ioctl_set_ap d) random style cleanups
481
2005-03-29 22:01 andim2
483
* src/: acx100.c (1.298), acx100_helper.c (1.322), acx100_helper2.c
484
(1.228), acx100_usb.c (1.83), idma.c (1.261), ihw.c (1.115):
485
Denis Vlasenko: stop doing assignments in if() - it's unreadable
488
2005-03-29 21:53 andim2
490
* src/acx100_helper2.c (1.227): Denis Vlasenko: fix:
491
switch(ftype)->switch(fstype) and reduce indenting depth there.
493
2005-03-29 21:50 andim2
495
* src/idma.c (1.260): Denis Vlasenko: small performance fix: a)
496
convert runtime warning into compile-time b) don't be silly. We
497
don't need to isolate highest bit of txrate in fixed rate
498
mode, there is already only one nonzero bit. c) small speed up
500
2005-03-29 21:47 andim2
502
* include/acx100.h (1.174), include/acx100_helper.h (1.97),
503
src/acx100.c (1.297), src/acx100_helper.c (1.321),
504
src/acx100_usb.c (1.82): Denis Vlasenko: add 2.6-style hotplug
505
firmware loader. Old way is retained so far, can be disabled
508
2005-03-29 21:08 andim2
510
* src/acx100.c (1.296): Denis Vlasenko:
511
acx_cleanup_card_and_resources has exactly one callsite. Let's
512
move it in there, fixing bugs on the way.
516
49 (ACX111 WEP still not functional, will work more on it soon):
517
Many nice updates, such as e.g. new dupe packet detection code
518
RELIABILITY FEEDBACK: no reports yet, very well-tested locally, should be
521
2005-03-28 01:14 andim2
523
* include/acx_ioreg.h (1.1): Doh, forgot that file.
525
2005-03-28 00:57 andim2
527
* include/acx100_helper.h (1.96): Remove bogus static variable
528
reference in include file to fix compile error on certain
529
compilers (reported by Steve Whine).
531
2005-03-27 13:53 andim2
533
* README (1.121): Mention firmware version issues.
535
2005-03-27 00:54 andim2
537
* include/ihw.h (1.35), src/acx100_helper2.c (1.226), src/idma.c
538
(1.259): Fix grave bug with descr init that I introduced recently
539
(caused 0x80 Tx errors). Improve some logging, fix some comment.
541
2005-03-26 16:14 andim2
543
* src/: acx100.c (1.295), acx100_helper.c (1.320), idma.c (1.258):
544
Some small improvements
546
2005-03-25 00:15 andim2
548
* include/acx100_helper.h (1.95), src/acx100_helper.c (1.319): Much
549
improved FeatureConfig mechanism, easily allows tweaking of
550
individual bits, saves almost 1K of memory already.
552
2005-03-25 00:13 andim2
554
* include/ihw.h (1.34): Small correction
556
2005-03-25 00:12 andim2
558
* src/acx100_helper2.c (1.225): Smallish change
560
2005-03-24 20:45 andim2
562
* include/acx100.h (1.173), src/acx100_helper2.c (1.224): First
563
attempt at providing duplicate packet detection. So far it
564
really seems to work (when creating DUPs by pinging with low Tx
565
power at 1Mbps), but not fully tested.
567
2005-03-24 19:50 andim2
569
* src/ihw.c (1.114): Fix horrible mistake of mine causing the
570
driver to crash'n burn
572
2005-03-22 23:29 andim2
574
* include/acx100.h (1.172), include/idma.h (1.62),
575
src/acx100_helper.c (1.318), src/acx100_helper2.c (1.223),
576
src/idma.c (1.257): Mainly ring buffer preparation cleanup
577
(ACX111 initializes on its own, no need to mess with buffer init
578
there), some other cleanup
580
2005-03-22 23:27 andim2
582
* scripts/fetch_firmware (1.10): Mention firmware version issues at
585
2005-03-21 21:15 andim2
587
* include/acx100_helper.h (1.94), src/acx100.c (1.294),
588
src/acx100_conv.c (1.62), src/acx100_helper.c (1.317),
589
src/acx100_helper2.c (1.222), src/acx100_ioctl.c (1.228),
590
src/acx100_usb.c (1.81), src/idma.c (1.256), src/ihw.c (1.113),
591
src/ihw_usb.c (1.27): Denis Vlasenko: split FN_EXIT into FN_EXIT0
594
2005-03-21 20:59 andim2
596
* include/ihw.h (1.33), src/acx100.c (1.293), src/acx100_helper.c
597
(1.316), src/acx100_ioctl.c (1.227), src/idma.c (1.255),
598
src/ihw.c (1.112): Denis Vlasenko: Remove duplicate
599
implementations of acx_read_reg and friends (one as #defines and
600
other as functions). Single codebase can provide inline or
601
non-inline variants now.
603
2005-03-21 20:54 andim2
605
* include/acx100_helper.h (1.93), src/acx100_helper.c (1.315),
606
src/acx100_ioctl.c (1.226): Denis Vlasenko: hide
607
acx100/111_scan_chan() differences from user
609
2005-03-21 20:51 andim2
611
* src/: acx100.c (1.292), acx100_conv.c (1.61), acx100_helper.c
612
(1.314), acx100_helper2.c (1.221), acx100_ioctl.c (1.225), idma.c
613
(1.254), ihw.c (1.111): Denis Vlasenko: remove obfuscating casts
615
2005-03-21 20:46 andim2
617
* src/acx100_helper2.c (1.220): Denis Vlasenko: reorganize code to
618
avoid excessive indenting
620
2005-03-21 20:30 andim2
622
* src/: acx100.c (1.291), acx100_conv.c (1.60), acx100_helper.c
623
(1.313), acx100_helper2.c (1.219), acx100_usb.c (1.80): Denis
624
Vlasenko: Replace "if (0 != expr)" by "if (expr)" everywhere
625
except acx100_ioctl.c
627
2005-03-18 09:32 andim2
629
* README (1.120): Fix ACX111 sensitivity status, more WEP details
631
2005-03-17 00:17 andim2
633
* include/acx100_helper.h (1.92), src/acx100_helper.c (1.312),
634
src/idma.c (1.253): Further cleanup towards hopefully making
637
2005-03-16 21:15 andim2
639
* include/acx100.h (1.171): Change some defines.
641
2005-03-16 21:15 andim2
643
* src/acx100_helper2.c (1.218): Small experimental optimization.
645
2005-03-16 21:14 andim2
647
* src/idma.c (1.252): Don't modify the whole set, only individual
650
2005-03-16 21:07 andim2
652
* README (1.119): Add hint about OpenVPN
656
48 (ACX111 WEP still not functional yet, despite all attempts to force it to
658
RELIABILITY FEEDBACK: appears to be fine, at least ACX111
660
2005-03-12 19:08 andim2
662
* include/acx100.h (1.170), include/acx100_helper.h (1.91),
663
src/acx100.c (1.290), src/acx100_helper.c (1.311), src/idma.c
664
(1.251): Huge WEP related update (no, I didn't manage to get
665
ACX111 WEP to work, not even after 4 hours :-((():
667
Add more logging, add some disabled debug code for further
668
testing, don't do ACX111 WEP stuff in acx_init_wep(), fix WEP
669
change not causing a rescan, disable ACX111 ED and CCA
670
configuration (unsupported), Change descriptor flag
673
2005-03-12 13:53 andim2
675
* src/idma.c (1.250): Enable new Tx descr cleanup locking, since it
676
is faster. Hopefully there won't be any issues, but please
677
report it if there are.
679
2005-03-12 13:51 andim2
681
* src/acx100.c (1.289): Fix grave problem: for some reason we
682
didn't manage to get to the next tx descr cleanup counter value
683
in time, so the whole descr was DONE and the net queue stopped,
684
so no further cleanup taking place. Fixed by making sure we
685
always clean up the ring buffer in case more than 50% of all
686
descrs are done. To make sure this doesn't happen again in a
687
severe way, call the normal tx descr cleanup handler in the
688
timeout handler, too (doh, how could I have forgotten that when
689
disabling the emergency cleanup handler there??).
691
2005-03-12 12:30 andim2
693
* include/acx100.h (1.169), src/acx100_helper.c (1.310), src/idma.c
694
(1.249): Fix auto rate algorithm (it was choosing a wrong new
695
rate), make it ignore descriptors with outdated rate bytes (i.e.
696
rate settings which are older than the last range change), large
697
Tx descr cleanup (speedup, locking improvements), large logging
700
2005-03-11 23:13 andim2
702
* src/idma.c (1.248): Disable TXPRC triggering, I don't think it's
705
2005-03-11 23:12 andim2
707
* include/acx100_helper.h (1.90), src/acx100_helper.c (1.309):
708
Merge ACX100/ACX111 radio recalib functions. Saves some bytes ;)
710
2005-03-11 23:10 andim2
712
* doc/firmware_versions.txt (1.10): Small addition
714
2005-03-11 14:28 andim2
716
* doc/firmware_versions.txt (1.9): Add information about
717
recalibration lockups in 0.1.0.11.
719
2005-03-11 10:40 andim2
721
* doc/firmware_versions.txt (1.8): Add new Safecom firmware.
723
2005-03-11 10:23 andim2
725
* include/acx100.h (1.168), src/acx100.c (1.288): Safecom driver
726
hints at a new radio type 0x19...
728
2005-03-10 22:55 andim2
730
* include/idma.h (1.61), src/acx100_helper.c (1.308),
731
src/acx100_helper2.c (1.217), src/idma.c (1.247), src/ihw.c
732
(1.110): More detailed Tx logging, fix ACX111 CCA and ED
733
requests, further cleanup.
735
2005-03-10 22:54 andim2
737
* doc/firmware_versions.txt (1.7): Document ACX111 1.2.1.34
739
2005-03-10 17:14 andim2
741
* TODO (1.34): Small update
744
47 (ACX111 WEP not functional yet, but might be soon):
745
46 had too many compile issues, thus a quick 47.
746
RELIABILITY FEEDBACK:
747
"first release that has successfully connected to my wireless AP" :-)
748
Otherwise almost no reports yet, untested before release!
750
Carlos Martin: fix pci_name() compatibility define
751
In case of a broken peer that doesn't announce Ad-Hoc or Managed mode, don't
752
assume it's Ad-Hoc, instead assume it's using whatever mode we configured
754
Fix endianness logging for older compilers. *sigh*
755
Further cleanup, save some 500 bytes of executable size, too.
756
Remove all function implementation state logging, it's not really needed any
759
46 (ACX111 WEP not functional yet, but might be soon):
760
NOTE: fails to compile for some kernel versions or very old gcc versions
761
RELIABILITY FEEDBACK: appears to be very good, minus the compilation issues
764
Even some more endianness fixes (can you believe it!?)
765
Associating with AP is working now!
767
Update the driver to also cope with the USB changes done in 2.6.11.
769
2.6.11-bk1 removes slot_name member, so we have to use pci_name() now.
770
Fix descriptor Ctl_8 initialization in order to be able to remove Ctl_8
771
clearing hack in case of ACX111 (suggested by Rasmus Rohde).
772
Indicate the CPU endianness on driver startup
773
Configure: Relax SMP safety warning to reflect current status.
774
README: Mention memory region change, multicast issues.
776
45 (ACX111 WEP not functional yet):
777
Interim release, USB hang probably not fixed.
778
I won't do further development for some smaller amount of time...
780
RELIABILITY FEEDBACK: quite ok so far, possibly even better than pf44,
781
but a crash on card eject slipped in somewhere after pf43 (didn't happen
782
to me during testing!)
784
Configure ACX111 to do "automatic" radio recalibration instead of "manual",
785
since it seems as if the firmware default setting actually is to do
786
automatic recalibration from time to time (exact default period length not
787
known yet), so by setting up a manual recalibration we actually made things
788
worse in some situations...
789
Add /proc registration to USB driver, hopefully fix /proc unregistration
790
issues with PCI driver.
791
Unify duplicate CTL_xxx descr bits,
792
improve/fix(?) CTL_xxx bit check in get_tx_descr(),
794
display card query failure in /proc file.
795
Change descriptor flag update position.
797
move logging functions to acx100_helper.c to be able to use one
798
implementation in both PCI and USB drivers (not sure whether it's
799
really a good idea yet, since some stuff remains in acx100.h and we now
800
also need to include acx100_helper.h in some files).
801
Some logging updates.
802
Remove old power management code.
803
Some cleanup in misc. places.
804
Small power management updates/fixups
805
Add optional Tx descriptor cleanup in task handler (too CPU intensive,
806
so don't enable it by default), some more cleanup, reorder task handler
807
entries (most often accessed ones first).
808
Replace some code with new macro MAC_CNT_RCVD()
809
Replace old integer value 5000 with ACX_CMD_TIMEOUT_DEFAULT define when
810
calling acx_issue_cmd().
814
Add hint about missing fragmentation support
816
Tell users to disable 4x mode support in the AP.
818
44 (USB still working, ACX111 WEP not functional yet):
819
NOTE that ACX100 USB still has a nasty hang on unload if you don't do an
820
ifconfig wlan0 down before unloading, so take care! (I plan to fix it soon)
822
RELIABILITY FEEDBACK: at least one report that it works very well.
823
Please report on AMD64 and PPC, since there were large important changes
824
in that area and I didn't have any way to verify correctness!
826
- fix potentially fatal bug with uninitialized Association ID during AP assoc.
827
- Better don't set CCA and ED and antenna settings on initialization
828
(and especially not with arbitrary values possibly not matching config
830
Doh, completely removing that initialization of CCA and ED with custom
831
values broke traffic completely. It turned out that the card requires an
832
initial query of those values to get initialized correctly, so do just
833
that and nothing more.
834
This important initialization improvement might fix 5 tons of communication
837
- Many USB endianness fixes done together with Julien PERVILLE.
838
- The dev->init function should DEFINITELY have a return value, otherwise
839
an undefined return value can easily cause an error abort (as reported).
840
- Add missing FN_EXIT() as reported by Julien PERVILLE.
841
Inspired by bug #1098219 from Hugo Herbelin:
842
fixed a large number of remaining endianness issues in the 802.11 protocol
844
- Improve radio recalibration code to not eternally disable recalibration
845
in case of too many consecutive radio recalibration failures (in tight loop).
846
Instead, try another round of recalib attempts after one second has passed.
847
Large work queue related cleanup (now ACX100 USB is using work queues, too),
848
some general driver files cleanups,
849
- Slightly modified patch by Luca Melette:
850
we were announcing too many rates in case of extended rates present,
851
put them into the extended rates area instead.
852
Fix Tx power display to show fixed output, not auto power.
853
- Fix one inversed return value check (argh!), better NEVER use OK/NON_OK
854
for non-boolean return values.
855
Don't clear all bits - this is what the debug output right after it
858
- MUCH improved IRQ handler performance (haven't tested it, but an
859
astonishing amount of optimizations was still possible), some other
861
- Keep an external copy of descriptor Ctl bytes to be able to write back
862
the modifications in one step, which is both more thread-safe and faster.
863
- Slightly adapted patch by Luca Melette to get Master mode/HostAP a little
865
Don't do /proc stuff in case CONFIG_PROC_FS isn't defined.
866
Change IEEE 802.11g/b+ into IEEE 802.11b+/g+, since cards are often
867
named in the 802.11a/b/g order (is this useful? I think it is, but maybe
868
we should use a different protocol name??)
869
- Change all UINTxx variable types into commonly used Linux kernel uxx
871
- Don't forget proper macro bracketing
872
- Constify and staticize two tons of parameters and variables,
873
move loop variable initialization directly in front of loop,
874
change loop counter to use 1 to 5,
875
rename acx_load_radio() to acx_upload_radio().
876
Further variable type cleanup, remove some non-ACX1xx header file stuff.
877
Improve init messages about documentation and 32bit/16bit I/O access.
878
Make pause between recalibrations easily configurable.
879
We don't support sensitivity for ACX100 USB yet, so don't offer it, too...
880
Workaround for Linux <= 2.4.20 not having a generic dump_stack().
881
Change check to use 2.4.22, since it seems that 2.4.20 didn't add it yet.
884
Mention EEPROM content backup copy, add Rx level blurb
885
Mention that firmware upload is non-permanent, small depmod update
886
Monitor mode additions.
887
More detailed 32bit/16bit I/O explanation.
888
All things considered, D-Link seems to care more about us than some
889
other companies, so mention that properly.
891
43 (USB now working, ACX111 WEP not functional yet):
892
RELIABILITY FEEDBACK: seems to work very well ("works like a charm")
893
Don't assign brange_max_quality if parameter wasn't specified, in order
894
to avoid division by zero OOPS.
895
Largish acx_start_xmit() cleanup, some other cleanups.
896
Move power LED link quality update to end of IRQ handler,
897
add unlikely(), correct #ifdef, misc. stuff
898
Use IEEE 802.11g/b+ protocol name for ACX111 (and fixed segfault caused by
899
stupid mistake in this very change).
900
Disable non-essential and potentially misleading features (EEPROM ID check)
902
Add another unlikely(), add #ifdef
903
constify *_is_mac_address_*()
904
"manufactor" -> "manufacturer"
905
Remove obsolete comment, improve log message
906
Replace memcmp() by acx_is_mac_address_equal()
908
USB: Remove obsolete functions
909
README: Add depmod -a hint, More info about USB support status,
910
update card status matrix, prefer Linux 2.6.x to 2.4.x.
911
iwpriv.txt: Fix broken SetLEDPower/GetLEDPower information
912
general_info: Add very detailed info about Radia radios.
914
42 (USB now working, ACX111 WEP not functional yet):
915
RELIABILITY FEEDBACK: "very good"
916
ACX100 USB really shouldn't try to set the power LED (as reported by
918
Fix places with direct register access in USB case (will cause OOPS),
919
undefine register functions to make sure people will get warnings if they add
920
more register accesses which will be used in USB mode, too.
921
Disable non-essential and potentially misleading features (EEPROM ID check)
923
start_net: Check for some other allowed firmware names, too.
925
41 (USB **FIXED** by Martin Wawro, ACX111 WEP not functional yet):
926
RELIABILITY FEEDBACK: "very good"
928
Corrected a bunch of bugs in the USB subsystem. Should work now (at least
929
it does on my machines). Added support for multiple URBs to gain some speed,
930
was able to get around 1MB/s transfer rate.
931
Fixed USB support. Code is now able to handle fragmented packets from the
932
USB bus (main source of error). I noticed that under 2.4.x kernels, it seems
933
that the UHCI host controller drivers are buggy (both of them). The
934
standard uhci driver simply trashes the host controller when confronted with
935
queueing and the usb-uhci driver seems to have bug in its list handling
936
(an entry appears more than once in the freespace list). The code runs well
937
with EHCI and OHCI drivers on 2.4.x and also on UHCI under 2.6.9.
938
Fixed USB support. Also introduced something like a "hard timeout" for
939
control transfers (5.5s).
940
Fixed USB support. Introduced several new defines to facilitate debugging
941
of some of the USB resources. Also substantially extended some of the
942
USB data structures in the wlandevice_t type.
945
Reenable USB compilation now that USB support is fixed. :)
946
Merged LED link quality blinking into Get/SetLEDPower.
947
Merged SetScanDelay/SetScanMode into much better Get/SetScanParams.
948
Revert ill-committed re-enabling of Tx timeout ring buffer reinit.
949
start_net: Reverse key and algorithm order, since the current order supposedly
950
makes setting the key fail. (huh?? this is documented as working in either
951
order; maybe specific iwconfig versions only have problems with this)
952
A lot of cleanup to iwpriv code.
953
Fix some return value documentation
954
(UGH, don't you hate overly verbose documentation of simple facts that
955
will then be faster out of date than you can say "outdated"??)
956
Update USB code to use new module_param() stuff.
958
40 (USB still broken, ACX111 WEP not functional yet):
959
Hopefully resolve those all too popular DMA memory alloc issues...
960
(use a wrapper for both pci_alloc_consistent() and the improved
961
dma_alloc_consistent()).
962
Don't update the Rx config in atomic context, do it in after_interrupt_task
964
Another endianness fix.
965
Include linux/moduleparam.h as suggested for new module_param().
966
Small optimization of the link quality blinking code as suggested by
969
README: Add missing "promiscuous" keyword. Transfer speed hint. Some changes.
972
39 (USB still broken, ACX111 WEP not functional yet):
973
Readd asm/uaccess.h, since it's required for 2.4.x (doh!)
974
Change ring buffer count for ACX111 from 32 down to 16 due to memory
976
Add support for 2.6.10 module_param() change
977
Change/improve some WIRELESS_EXT ifdefs
979
38 (USB still broken, ACX111 WEP not functional yet):
980
** NOTE ** grave slowdowns have been reported with pf35+ and 2.6.x,
981
but I couldn't reproduce that with pf38 and 2.6.10-rc1-mm5...
983
We were often allocating twice as much ring buffer memory as actually
985
This led to some frequent out of memory issues, especially with current
987
Add some wmb() and rmb() memory barriers (maybe that helps to avoid ring
988
buffer sync issues?).
989
With default "easy" rate setup, make sure to not specify basic rates
990
other than standard 802.11b, since otherwise 22Mbps settings or 802.11g
991
rates won't be able to establish a proper Ad-Hoc "master" (other
992
clients won't connect).
993
Pierre Marc Dumuid: Patch to blinking the Power LED at a rate related to
994
the quality (plus some changes of mine)
995
Add some more missing endianness conversions required to get ARM big-endian
997
Set default rate stepup slightly higher, since we were too aggressive here.
998
Fix firmware version parsing
999
2.4.7 doesn't even know __devexit_p, so attempt a workaround
1000
fetch_firmware: Add another ACX111 URL
1001
Rename acx100_power_led() to acx_power_led() as it should be,
1002
add another unlikely(), another rmb(), add comment about Tx ring buffer
1004
Reverse struct framehdr error message arguments, since it makes more
1006
Add acx_ioctl_set_scan_mode invocation.
1007
Add some log messages, fix some comments.
1008
README: Detail kernel version requirements, small update.
1010
37 (USB still broken, ACX111 WEP not functional yet):
1011
Remove iwpriv SetLowPkgRx, SetExLowPkgRx in favour of acx111 sensitivity
1012
ioctl setting (range 1 to 3).
1013
Add special radio recalibration support for ACX111, not tested! (please
1015
Reorder many ACX100/ACX111 chip type branches to have ACX111 first,
1016
since this is the dominant chip now market-wise.
1017
Tiny IRQ handler optimization.
1018
Add some unlikely().
1019
Slightly stronger EEPROM writing warning message.
1020
Reorder some wlandevice_t members.
1022
36 (USB still broken, ACX111 WEP not functional yet):
1023
Get rid of static variable to hopefully fix issues when using two cards
1025
Update pci_save/restore_state check to assume that it will be changed in
1026
stock 2.6.10, since stock 2.6.9 didn't contain the update yet.
1027
Maciek Gajewski: fix off-by-1 error when setting current WEP key.
1028
Alessandro Suardi: Remove bogus inline's that gcc 3.4.2 is complaining about.
1029
The USB timeout member has been removed before 2.6.9.
1030
Make sure people won't try the broken USB driver any more...
1031
README: Add blurb about wireless-tools version issues.
1033
35 (USB still broken, ACX111 WEP not functional yet):
1034
First attempt to fix promiscuous/multicast support in order to
1035
not always let the card capture all packets.
1036
Improve recalibration by only recalibrating in 5-minute intervals to
1037
avoid excessive recalibration which might perhaps lead to excessive
1038
temperature due to keeping the card running permanently.
1039
Completely revised net queue handling (use netif_carrier_xxx() functions,
1040
too). Not too much testing, seems to work for me.
1041
Fix firmware version parsing.
1042
scripts/start_net: Usability improvements by Craig Fields.
1043
Make power LED toggling work on acx111, too (PLEASE REPORT WHETHER IT STILL
1044
WORKS ON AN EXTERNAL ACX100 CARD!).
1045
Revise state handling, since it was broken.
1046
Fix error on "iwconfig rate auto" on acx100.
1047
On joining, the DTIM interval had been set slightly incorrectly.
1048
Clear CTL_OWN bit AFTER having set the Status field.
1049
Fix incorrect rx filter config bits.
1050
Remove queue task flushing, caused hang on shutdown by itself, and it
1052
Fix potential calculation error due to endianness conversion issues,
1053
add some missing endianness corrections.
1054
Disable setting of Master mode for now, since it's totally not working
1056
Add Short Preamble Tx logging for ACX111.
1057
IO_ACX_INT_TRIG should simply have individual bits set, not the ones
1058
read back from IO_ACX_INT_TRIG plus the one I want to notify.
1059
Introduce more aggressive locking possibility in clean_tx_desc, but
1060
this might break things, deactivated.
1061
Add a cond_resched() at some places when useful and supported.
1062
Shorten log messages.
1063
Comment out some struct members.
1064
Add some more unlikely()/likely().
1065
Add notification about limited acx111 power level capability
1066
README: 5 tons of updates.
1069
34 (USB still broken, ACX111 WEP not functional yet):
1070
Free netdev at the very end only to avoid timeout handler OOPS due to
1071
invalid dev (appears to have fixed it!).
1072
Don't keep recalibrating endlessly, since it led to an endless loop.
1073
Calibrate the radio in the timeout handler, too.
1074
Make sure to use low rates initially on Tx rate auto in order to not
1075
have transfer problems with distant/slow peers.
1076
static'ize some functions and ifdef out several unused functions,
1077
thus saving 5kB file/memory size :-)
1078
Don't disable the radio Tx/Rx before enabling it, since I suspect it
1079
might confuse the firmware during packet handling.
1080
Fix struct packing to do the same as other kernel drivers do and to
1081
get rid of gcc 3.4.x warnings.
1082
More accurate PCI device ID defines.
1083
Add more diag output to /proc (struct TIWLAN_DC).
1084
Remove some bogus struct length initialization.
1085
Slight logging improvements.
1088
33 (USB still broken, ACX111 WEP not functional yet):
1089
Wake net queue on timeout if needed.
1090
Use an emergency Tx descriptor cleanup handler in Tx timeout handler,
1091
because the standard Tx descriptor cleanup handler expects
1092
the ring buffer to be in a certain state, which is a bad thing.
1093
Retry radio calibration in case a calib operation failed (e.g. Tx busy
1095
We forgot to remove the task scheduler, which caused an OOPS on
1096
unloading in case the task scheduler got called after vital resources
1097
had already been freed...
1098
Make acx_after_interrupt_task use dev instead of priv.
1099
Add FIXME for problematic mysterious OOPS.
1100
"failed" --> "FAILED"
1101
Log firmware_numver, too.
1103
32 (USB still broken, ACX111 WEP not functional yet):
1104
[sorry, forgot cvs update, pf32 now updated to be the REAL pf32]
1105
Get rid of repeated calibration notification messages by disabling
1106
them after some time.
1107
Dynamic scaling of Tx cleanup period depending on number of
1108
Tx buffers (rather boring feature).
1109
Tell people to go to README on out of memory situations.
1110
Several README updates.
1111
Add some error text.
1114
31 (USB still broken):
1115
- do implement radio recalib on Tx error 0x20, since it much improves
1116
availability for me on acx100. Watch out for possible side-effects which *might* happen such as prolonged card operation into fatal temperature levels!!
1117
- fix *HORRIBLE* bug in host memory allocation for Rx buffers:
1118
we only allocated a struct size instead of sufficient space for many
1119
Rx packet bodies (who changed that for the worse?)
1120
- halted member of struct usb_device got removed in 2.6.9-rc1
1121
- fix acx100_ie_memconfigoption_t reversed TxBlockNum/RxBlockNum
1122
- merge acxlog(), printk, sprintf into single statements(saves 5K(!) o
1124
- much improved driver startup speed (improved scheduling)
1125
- Rename many functions from acx100_XXX to acx_XXX
1126
- Makefile: Don't pretend that compile succeeded when we don't actuall
1128
- add some more unlikely()
1129
- move some debug logs after the stuff has been done that they're talk
1131
- changes in the acx100_dump_bytes area
1132
- slightly improve acx100_rxmonitor
1133
- add debugging of Rx data
1134
- add debugging to resume handler
1135
- remove some bogus casts
1137
30 (AMD64 should work now, please test! USB still broken):
1139
- Clean up structure naming and packing (should fix AMD64 problems).
1140
- Fix kernel version dependent __devinitdata problem, change
1142
- default acx111 ring buffers to 32 entries, remove some bogus casts.
1143
- Improve beacon frame creation, improve error message
1144
- Fix my max_rate screwup.
1145
- fetch_firmware: Add 20 second timeout to avoid eternally hanging on first URL in list.
1146
- Makefile: Less confusing firmware directory message.
1147
- More accurate PCI device ID defines.
1148
- Remove some bogus struct length initialization.
1149
- README and docu updates.
1150
Fix variable naming: erate -> orate, emask -> omask, ...
1153
- Remove ISTATUS_5_UNKNOWN and unknown0x2350.
1154
- add some comments and TODOs and rename fields to more understandable names.
1155
- fix cases where we print MAC addresses 'smashed together'
1157
00.E0.98.BA.20.C300.E0.98.BA.20.C300.04.E2.64.23.C200.04.E2.64.23.C200.04.E2.64.23.C2<4>
1159
29 (mainly cleanup, some AMD64 fixes, USB still broken):
1161
Clean up structure naming and packing (should fix AMD64 problems, too,
1163
More accurate PCI device ID defines.
1164
Remove some bogus struct length initialization.
1167
Remove ISTATUS_5_UNKNOWN and unknown0x2350.
1168
acx100_probe_pci() has far too many error cases,
1169
cannot be handled by acx_cleanup_card_and_resources().
1170
I actually hit a bug when fw upload fails due to
1171
missing file. I am sure there are other cases.
1173
Patch takes care of that by reworking error
1176
28 (this one should be much better; USB still broken):
1178
Don't comment out card rate fallback activation, since we need it
1179
for proper auto rate support (otherwise e.g. we're stuck with the
1180
card staying at the same *unsupportedly* high rate during the same
1181
Tx attempt round, which is bad if we only attempt to send once,
1182
e.g. for MGMT frames...).
1183
in iwconfig rate, make sure to fill up all lower rates, too,
1184
since APs *expect* to have full support for all rates, not just the
1185
highest, and we cannot configure this aspect in iwconfig rate,
1186
only in iwpriv set_rates. This implies we need to restrict acx111
1187
rate mask to highest rate on Tx if not in auto mode, so added support
1189
Indicate proper acx111 Tx power levels (according to the two levels
1190
the card usually supports).
1191
Revert default safe 16bit I/O to faster 32bit and instead make sure
1192
that people notice the problem and know what to do then.
1193
start_net: Make sure to use auto rate by default.
1194
Fix configoptions output.
1195
Rename some variables to useful names, add some hopefully helpful comments.
1198
* Eliminate ACX_TXRATE (replace with RATE100)
1199
* Add an explanation about preambles
1200
* const char *str => const char str[]
1201
* untangle if (OK != (err = register_netdev(dev)))
1205
Not so much trivial:
1206
* someone broke SET/GET convention, fix it.
1207
You may need to test that I didn't accidentally broke
1208
ENABLE_[EX_]LOW_POWER_PACKETS ioctl with this.
1211
27 (USB still broken):
1213
Revert to 16bit I/O access as default, since it appears to fix some
1214
firmware upload failure cases.
1215
Several cleanups, mainly towards better WEP support for ACX111 (not done yet!).
1216
Cleanup patch, e.g. to enable me to debug the rmmod OOPS a bit better:
1217
Move /proc handling to acx100_helper.c.
1218
Move some functions around, renaming.
1219
Shorten many log messages.
1220
Move more I/O register init stuff to ioregister.c
1221
Remove bogus netif_device_detach()
1222
capability is a 16bit value, so print it accordingly.
1224
26 (USB still broken):
1226
- hack to make acx111 actually attempt to authenticate with an AP
1227
in case we explicitly stop the scan (I've still got issues with connecting
1228
to my WRT54GS-DE, though, maybe spec compliance of auth frames?)
1229
When connecting, I get assoc req error 18 (invalid basic rate set).
1230
Seems we've got some fixup to do after the recent rate patch...
1232
25 (USB still broken, sorry):
1234
- large Tx auto rate patch (improvements, work towards per-peer auto rate)
1236
- AMD64 fixes (is it better now?)
1237
- add many more fields to /proc/driver/acx_wlanX_diag
1238
- Some acx111 scanning updates. Hopefully this will only improve stuff
1239
- more endianness fixes
1240
- TONS of cleanups in the driver
1241
- Makefile: clean up some temp files
1242
- README and TODO updates
1244
24 (USB still fatally broken - no time AT ALL! this release took **WAY** too
1245
much time anyway...):
1248
- fix (unify) return values
1249
- use CLEAR_BIT/SET_BIT macro
1251
- acx111 features - (extremely) low power packet receive
1253
- Fix an endless amount of buggy commits.
1254
- Reinit the templates whenever an important parameter changes (doh!).
1255
- Reopen netdev queue on assoc, hopefully fixes all remaining
1256
- NETDEV WATCHODG issues.
1257
- Unify acx100 and acx111 reset_dev code.
1258
- Correct /proc/driver/acx_wlanX output.
1259
- Remove "wrong" kmalloc result casts.
1260
Denis Vlasenko (sorry, didn't commit your enhanced 23.1 patch due to conflicts
1261
from previous commit):
1262
- moves logging code out of line - 50kb saved
1263
- speed optimizes it
1264
- removes return's at end of void functions
1265
- brings sanity to p802addr_to_str
1266
- As a bonus, it fixes a bug: '/* Driver defaults */' were defined inside #ifdef ACX_DEBUG.
1268
- some scripts/fetch_firmware fixes
1272
improve acx100 auto rate support, interfacing to the acx111
1273
auto rate layer. (ed. note: works beautifully!)
1274
Fix problem with leftover acx111 code causing acx111 oops
1276
22 (note: acx111 still awkward for me - rate setting):
1277
DON'T reset Ctl field to 0, this caused ring buffer lockup after some 30
1278
minutes or some hours due to timing issues and thus TxQueueFree drift
1279
down to 0 (note: will disrupt traffic for acx111, so don't do that here for
1281
Reset rts/ack counters in Tx clean handler, not during the precious time
1282
when we want to send something.
1283
Reset error byte, too.
1284
Improve ring buffer printout (also display Linux netdev queue status).
1285
Reset TxQueueFree in Tx timeout helper to original value to improve
1287
Rename pDesc to pRxDesc/pTxDesc.
1288
Several endianness fixes (especially USB).
1289
Rename descriptors' Ctl values to x_8 and x_16 to directly indicate
1290
byte or word width (endianness!!).
1292
21 (20 tons of new fixes, ChangeLog is... yawn... ok, sorry, too tired, will do
1295
20 (USB still not fixed, ACX111 is now (much?) more reliable, for me at least):
1297
- add support for 802.11g rates
1298
- Improve/fix info mailbox management
1299
- split buffer debugging into tx/rx
1301
- Makefile clean target fix
1302
- add more WEP keys to start_net
1304
Some README updates.
1306
19 (USB still not fixed, ACX111 is still flaky, probably a bit less):
1307
Ring buffer improvements to fix recent fatal NETDEV WATCHDOG deadlock issue
1308
caused by a ring buffer weakness exposed by recent optimization.
1309
Peter 'p2' De Schrijver: Many endianness fixes for PPC.
1310
Partial AMD64 fixes.
1311
HUGE dma queue cleanup (much simplified, plugged several leaks, saves
1312
>= 1.5kB driver size!), rename GetPhyMediumBusy to GetPhyChanBusy
1313
(that name turned out to be too long for some very strange reason),
1314
try to prevent GetPhyChanBusy calculation overflow.
1315
Gabor Csuri: wep ioctl fixes, preparation for 802.11g rates
1316
Denis Vlasenko: add missing FN_EXIT statements
1318
18 (USB still not fixed, ACX111 is quite flaky at least since pf13,
1319
will do more fixing/testing soon :-\):
1320
Sascha Sommer: brown paper bag fix (-> Andreas) breaking acx111 cards.
1321
(NOTE: acx111 still doesn't really work for me in any recent tar file
1322
for some reason, dma errors)
1323
Fix "IRQ xx: nobody cared" fatal card deactivation message with help from
1324
Denis Vlasenko (turned out we used a slightly wrong I/O register,
1325
so we had to do problematic IRQ activation).
1326
Cleaned up ACX111 reset procedure considerably (now basically identical
1328
Implement iwpriv GetPhyMediumBusy (determine busy percentage of phy medium).
1329
Add priv->irq_mask_off to store the "all IRQs off" mask for ACX100/ACX111.
1330
Add position indicators to ring buffer printout in acx_wlan0_diag.
1331
The Rx descriptor full/empty flag (BIT31) was actually REVERSED!
1332
(tested, works, and maybe it even works better now...)
1333
Add some more hardware IDs.
1335
Add unlikely(), clean Tx descriptor queue on Tx timeout,
1336
don't clean Tx descriptors on every IRQ,
1337
set dev->last_rx at the correct moment, use macros instead of memcpy() /
1339
Updated iwpriv docu doc/iwpriv.txt.
1341
17 (doh!!! Not even ACX100 worked in plus_fixes_15!):
1342
(I disabled and re-enabled radio Rx/Tx, but this broke ACX100 Rx completely!)
1343
Huge ring buffer cleanup/speedup.
1344
Replace I/O register management by much more memory saving static version.
1345
Some ACX100/ACX111 Tx descriptor size differences fixup (not too important).
1346
Small descriptor speedup.
1347
Rename SetPHYAmpBias to SetPhyAmpBias.
1348
pci_free_consistent pTxHostDescQPool copy&paste(?) / USB support bug fix.
1350
Zero out issue_cmd result buffer on failure.
1352
16 (the "embarrassing bug fix release"; sorry, USB still not fixed):
1353
Denis Vlasenko: fix fatal typo in acx111_get_io_register_array()
1354
killing all ACX111 cards dead (the box, that is...)
1356
15 (sorry, USB still not fixed):
1357
Implement iwpriv SetPHYAmpBias. YAY! :)
1358
Fix USB compile on 2.4.x. My bad! (USB does NOT work currently...)
1359
Figure out exact chip names according to firmware ID.
1360
Make sure we don't list our own MAC when scanning.
1361
Proper documentation of antenna diversity settings.
1362
separate set_wepkey()
1363
Tried fixing ACX111 phy reg access, no luck.
1364
Disable Rx/Tx when modifying PHY stuff.
1365
Fix compiler warnings.
1366
Change acxlog() to use more sane syntax.
1368
Unify ACX100 USB and non-USB descriptor flag defines.
1369
Updated README, TODO.
1370
Add some firmware documentation.
1372
14 (ACX100 USB does NOT work in this tar any more, will fix soon):
1373
Olli: ACX111 changes:
1374
- Added support to change tx power level
1375
- Added support to receive low power packets but not enabled yet.
1376
- Removed setting of WEP options (not available on ACX111)
1377
- Added ACX111_IE_RADIO_BAND
1378
- Added two structures: ACX111TxLevel, ACX111FeatureConfig
1379
Denis Vlasenko: Fixed my (Andreas's) 16-bit acx100_write_reg32() screwup.
1380
Fix compile for users attempting a make in src/
1381
Fix two horrible WEP bugs:
1382
- two WEP config cmds were REVERSED!
1383
- off-by-1 struct addressing bug
1384
Do dump_stack in L_CTL case only.
1385
Allow set_ap in Auto mode, too (LinuxTag relevant ;-).
1386
Dr. Olaf Flebbe: The Ralink radio appears to have the same PHY register layout, so add support for Tx level and sensitivity for it.
1387
fix bug in acx100_write_cmd_type, unify to acx100_write_cmd_type_or_status
1388
unify ihw_usb.c into ihw.c (most likely broke USB operation, will fix
1389
soon, should also be able to achieve MUCH more unification)
1390
Finally found out that radio type 0x16 must be Radia!
1391
Add verbose message to explain set_ap failure reason.
1392
Add DbgGetIo and DbgSetIo to be able to debug lockups more closely
1393
fetch_firmware: Update yet again outdated URLs. Ask people to report any broken links. More detailed error message.
1394
Rename all commands to indicate their chip suitability (ACX100 / ACX111).
1395
Unify some redundant struct definitions into one authoritative one.
1396
Remove annoying log output.
1397
Add FW1130.BIN to the firmware names we attempt to find.
1398
Endianness fixes done on LinuxTag! :-) (not fully finished yet!)
1399
(with LOTS of help from Linux ports expert Peter De Schrijver using his
1400
Powerbook G3, a VERY capable guy :-)
1401
Memory access functions already do byte-swapping themselves!! (undid
1402
many changes, doh! :-\)
1403
Many fixes in 802.11 stack.
1404
Remove many non-acx defines.
1405
PowerPC fix: PPC seems to have char defined as unsigned.
1406
Fixup USB code to use more sane packet format, just like the normal
1408
Improve assoc logging, add comment about buggy code.
1409
More experiments with memory read/write via firmware. No luck.
1410
Remove oldish Makefile messages
1411
replace acx111 command numeric values by their names
1412
Small README update.
1415
RENAME ALL IWPRIV COMMANDS TO Upper-Lower-Case TO MAKE THEM SHORTER.
1416
Added acx111 scan functions.
1417
Fix Ad-Hoc "master" mode (we were sending out Beacon frames with an
1418
outdated ESSID since we forgot to reinit Beacon templates on config
1420
Add iwpriv SetScanDelay to set the per-channel wait time.
1421
Use macros instead of inlined functions for I/O access (faster/smaller).
1422
Do dump_stack in L_CTL case only.
1423
Print jiffies for profiling.
1424
Set iwconfig name to "IEEE 802.11g+" for acx111 cards.
1426
removed unneeded parameter from acx111_init_packet_templates
1428
12 (no acx111-specific fixes):
1429
Use standard default values for short and long retry limits (7 and 4 instead
1431
Reduce default Tx power level to 18dBm everywhere due to WRT54G radio damage
1433
Fix iwlist scan to not output an error if we found 0 stations.
1434
Many optimizations: always log AFTER the dirty work, add likely/unlikely
1435
branch prediction tunings, slightly speed up IRQ handler.
1436
Fix WEP variable size bug.
1437
Fix slight auto increment bug.
1438
Fix use of incorrect size for wep_mgmt cmd transfer.
1439
Fix incorrect use of "1" parameter for 0 parameters at ACX100_CMD_DISABLE_TX.
1440
Add read/write memory access by firmware capability.
1441
README updates: warning about Tx power level, "link failed" issue.
1445
ACX111 scanning fixes.
1446
Mention how to disable console flooding.
1448
10 (aka the "where are the non-x86 architecture ports, dammit!?" version):
1449
More fixes for triggering a scan in Auto mode.
1450
Fix macro compile error with certain compilers.
1451
Small memory and speed fixes.
1453
Improve info mailbox support.
1455
Fix Israel regulatory domain parameters.
1459
Fix scan broken in mode Auto.
1460
Fix sensitivity update (timing?) problem.
1461
Fix/improve bus access width log.
1463
At least do make clean for make distclean.
1466
Fix gcc 2.95 c++ism screwups.
1467
Fix sensitivity setting failure. Thanks to Paisa Seeluangsawat.
1468
Document ACX100 USB status.
1471
Merge final pieces of ACX111 support!!! (untested for lack of hardware, though)
1472
Disable power save mode again (broke scanning).
1473
Fix *.o/*.ko handling in scripts/start_net
1474
Another gcc 3.4.x fix.
1475
More endianness fixes.
1476
Much more user-friendly installation.
1477
USB updates, make driver load /usr/share/acx/ACX100_USB.bin.
1478
Add task handler (IRQ BH handling).
1479
Add iwpriv DbgSetMasks (for debugging only).
1480
Kill compiler warnings.
1484
Fix broken acx_signal_to_winlevel inlining breaking gcc 3.4.x compile.
1485
It looks a lot like wireless_send_event is actually only available with
1487
ACX USB should also use /usr/share/acx/ as default firmware directory.
1488
Fix another AMD64 issue.
1489
Reorder probe_pci failure cleanup, hopefully fix annoying
1490
"unregister_netdevice: device wlan0/XXXXXXXX never was registered" message.
1492
5 (aka the "sorry, 4 was too broken" version):
1493
Fix problems caused by Linux 2.6.x define screwup.
1494
Fix SET_NETDEV_DEV symbol non-existing in 2.4.x.
1495
Fix some pointers to be real pointers, not integers (for AMD64).
1496
Fix variable defines in order to fix broken variable lengths.
1497
This causes > 100 bytes less memory use :)
1498
Should fix AMD64 firmware loading issue.
1499
Fix some USB compile warnings.
1500
All in all I'm a happy camper, should make AMD64 work a lot better now. :)
1503
Fix DMA memory leak on suspend/resume.
1504
Improve locking (optimize for speed), some small locking fix.
1505
Actually install the acx_usb.ko module on 2.6.x, since it's compiling
1506
(and working!) properly now.
1507
Add the device and driver symlinks in /sys/class/net/<ifname>
1508
More detailed Tx error output.
1509
Many -pedantic fixes.
1510
Remove some foreign information from acx100.h.
1511
Remove wireless extension version info warning from acx100_ioctl.c.
1515
Fix floating point use in driver, add warning infrastructure.
1516
Newer ACX111 firmware versions seem to have switched to using an
1517
external radio module, so reenable radio module loading for ACX111.
1518
inject_kernel_tree updates.
1522
IMPLEMENT ACTUALLY RATHER WELL-WORKING POWER MANAGEMENT!! :-)
1523
Now I can fully suspend/resume the card and can actually continue with the
1524
OLD connection if it hasn't timed out yet :)
1525
Use default firmware directory /usr/share/acx in case no custom
1526
firmware_dir has been specified and tell the user we did that.
1527
Calling iwconfig commit before ifup led to OOPS since the timer wasn't
1528
initialized yet. Make sure we only update card settings if the interface
1530
Increment initial scan time from 1.5s to 2.5s: short scan time
1531
missed some upper channels :-\
1532
reg_domain_ids cleanup; hopefully fix array corruption.
1533
Fix screwed up wireless extensions version checks.
1534
Fix off-by-1 error in iwlist scan channel frequency calculation.
1535
Do some further ACX_IO_WIDTH work that I missed.
1536
Fix DEPMOD lookup for users lacking /sbin in PATH.
1537
Fix some small variable size issue.
1540
Fix pci_name() screwup for kernels < 2.4.21. Doh, not again!
1541
Add define ACX_IO_WIDTH, use 32bit access everywhere per default now.
1542
Some small USB driver updates.
1543
More useful signal quality calculation.