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!
109 # Revert 20051013 fix, we have one which actually works.
110 Thanks Jacek Jablonski <yacek87@gmail.com> for testing!
113 * trying to fix "yet another similar bug"
114 * usb fix by Carlos Martin
117 * acx_l_clean_tx_desc bug fixed - was stopping tx completely
118 at high load. (It seems there exists yet another similar bug!)
119 * "unknown IE" dump was 2 bytes too short - fixed
120 * DUP logging made less noisy
121 * another usb fix by Carlos Martin <carlosmn@gmail.com>
124 * several usb fixes by Carlos Martin <carlosmn@gmail.com> - thanks!
125 * unknown IE logging made less noisy
126 * few unknown IEs added to the growing collection
127 * version bump to 0.3.11
130 * fix bogus MTU handling, add ability to change MTU
131 * fix WLAN_DATA_MAXLEN: 2312 -> 2304
132 * version bump to 0.3.10
135 * by popular request default mode is 'managed'
136 * empty handler for EID 7 (country info) is added
137 * fix 'timer not started - iface is not up'
138 * tx[host]desc micro optimizations
139 * version bump to 0.3.9
142 * tx[host]desc ring workings brought a bit back to two-hostdesc
143 scheme. This is an attempt to fix weird WG311v2 bug.
144 I still fail to understand how same chip with same fw can
145 work for me but do not work for a WG311v2 owner. Mystery.
147 * version bump to 0.3.8
150 * variable and fields with awful names renamed
151 * a few fields dropped (they had constant values)
152 * small optimization to acx_l_clean_tx_desc()
153 * version bump to 0.3.7
156 * stop using 16 byte "private area" in txdesc - fw bug makes it unreliable
157 * better logging of DUPs
158 * version bump to 0.3.6
161 * use alloc_netdev/free_netdev/netdev_priv
162 * acx_inline.h incorporated into pci.c
163 * helper.c + helper2.c = common.c
164 * marking static functions
165 * enable IE_DOT11_CURRENT_ANTENNA for acx111
166 * version bump to 0.3.5
169 * minor fixes, 2.6.13-mm2 integration
172 * TIWLAN_DC is dead, ui32ACX[TR]xQueueStart is dead
173 * massive mucking with PCI and USB resulting in:
174 acx_pci.o + acx_usb.o = acx.o ;)
176 text data bss dec hex filename
177 116199 452 40 116691 1c7d3 acx.o
178 103435 244 20 103699 19513 acx_pci.o
179 81732 196 32 81960 14028 acx_usb.o
180 * helper.c is PCI/USB independent now. It was the last one.
181 * both modular and non-modular builds, PCI, USB, PCI+USB,
182 seem to compile successfully!
183 * version bump to 0.3.4
186 * acx_stop_queue() locking reviewed and mostly fixed
187 * 2.4isms in USB code are officially dead
188 * added debug stuff for discovering interrogate/configure IEs
189 * version bump to 0.3.3
192 * locking bug on error path fixed
193 * issue_cmd() logging made more sane
194 * issue_cmd() callers may abstain from printing issue_cmd() errors:
195 issue_cmd() itself gives enough info
196 * version bump to 0.3.2
199 * kill bogus configure() call in acx100_s_create_dma_regions()
202 * acx100_s_create_dma_regions: hopefully fixed for USB
203 (problem found with help of Carlos Martin <carlosmn@gmail.com> - thanks!)
204 * a load of cleanups:
205 * acx_s_create_tx_desc_queue -> acx_create_tx_desc_queue
207 * struct acxp80211_nullframe -> acx_template_nullframe
208 * xXBUFFERCOUNT_ACXnn -> xXBUFCNT_ACXnn
209 * xXBUFFERCOUNT_USB -> USB_xXBUFCNT: these are _unrelated_ to xXBUFCNT_ACXnn,
210 should have visibly different names
211 * TODOs added (we have a few really Pascalish/Windowish names,
212 and some misleading ones)
213 * version bump to 0.3.1
216 * finally kill warning about acx_s_activate_power_save_mode()
217 * struct acx100_ie_memconfigoption: convert pRxHostDesc to acx_ptr type
218 * massive move of device-independent code from helper.c to helper2.c
221 * dummy handler for NONERP EID (47) added
224 * driver submitted for kernel inclusion
225 * #defines renamed: CONFIG_ACX_{PCI,USB} -> ACX_{PCI,USB}
226 (needed for correct compilation of two modules from the same source)
227 * version bump to 0.3.0
229 text data bss dec hex filename
230 78242 264 8 78514 132b2 drivers/net/wireless/acx/acx_pci.o
231 60622 208 20 60850 edb2 drivers/net/wireless/acx/acx_usb.o
234 * idma.c is incorporated into helper.c
235 * lots of cosmetic work: comments, struct member shuffling,
236 etc. TIWLAN_DC and other PCI data structs are #ifdef'ed
237 to be PCI-only. A few todos added. Extra #include's removed.
238 * added sem locking debug printout code (for amd64 debug)
239 * beacon tx rate and beacon ratevector is updated according to
240 "iwconfig rate" command immediately (required mode change before).
243 * Switch to wrapper functions for dealing with "tx buffers"
244 (memory areas where we create packets for tx. For USB, it's just
245 a part of wlandevice_t, for PCI it's a DMAable buffer pointed to
247 * Completely hide nature of PCI txdescs under opaque pointer type tx_t*
248 * acx_l_ether_to_txdesc -> acx_l_ether_to_txbuf, not using knowledge
249 of PCI txdesc anymore.
250 * Massive surgery on usb.c, cutting all paths into PCI code.
251 * PCI code moved to pci.c - USB don't need these pieces anymore
252 * acx111 and acx100 txhostdesc creation unified into single function
255 * PCI code switched to single-txdesc scheme
256 * version bump to 0.2.5
259 * dev_kfree_skb -> dev_kfree_skb_any
262 * Auto rate was reset to lowest rate by scanning code
263 (AP beacons did it every tenth of a second!). Fixed.
264 * USB rx no longer uses PCI-style rx descriptor ring.
265 tx ring elimination needs 'single-descriptor' setup
266 to be developed for acx100 (patch exists for acx111).
267 * Very strange sem locking problems are reported on amd64.
268 Code which misbehaves looks fine. I do not know what's going on.
269 Workaround: turn off preemption.
272 * acx100 was failing to find out radio module #,
273 and wanted to load radio module 00. Must be fixed now.
274 * USB: more simplifications
277 * USB: simplified command submission code, removed some
278 wlandevice_t fields (now unused)
281 * USB changes: nuked global statics, simplified issue_cmd,
282 shortened wlandevice_t. Added some TODOs :)
285 * restart scan if AP is not found
286 * remove use_eth_name parameter. It was deprecated
287 * disable legacy firmware loader for 2.6. Driver printed a warning
288 about need to switch to hotplug.
289 * WARNING: new names for firmware images!
290 Driver will try to load the following images:
292 'tiacxNNNcMM' (NNN=100/111, MM=radio module ID (in uppercase hex)):
293 combined firmware for specified chipset and radio.
294 failing that, it will try to load images named
295 'tiacxNNN' (NNN=100/111): main firmware for specified chipset
296 and 'tiacxNNNrMM': corresponding radio module.
297 For example, my firmware is in file named 'tiacx111c16'.
298 Alternatively, I may remove it and use pair of files
299 'tiacx111' and 'tiacx111r16' instead.
300 USB driver: loads image named 'tiacx100usb'
301 Hint: you can keep both old and new image names (via symlinks
302 or just by copying files) if you need to run older driver.
303 * fix "Debug: sleeping function called from invalid context..." for USB
304 * ACX_{PCI,USB} -> CONFIG_ACX_{PCI,USB} in preparation to 2.6 merge
305 * version bump to 0.2.4
308 * 'Fixed' deadlock on flush_scheduled_work (need a better fix eventually)
309 * We didn't completely disable IRQs on ifdown -> "Disabling IRQ#NN"
310 on second modprobe. Fixed.
313 * removed some // comments in order to please Andreas
314 * moved a field to PCI-only part of wlandevice_t
315 * Random Version Bump (tm) to 0.2.3
319 * Basically just incorporating acx-20050722.acx100fixed.patch
320 This is a bit of a backward step, because instead of figuring out
321 why active scanning doesn't work for acx100, we just disable it.
322 acx100 owners encouraged to try to make it work
328 * added probe request config to acx100_s_init_packet_templates,
329 maybe acx100 is working now
332 * del_timer_sync() sem lockup on SMP maybe fixed
335 * lots of amd64 warnings fixed, thanks to Matan Peled <chaosite@gmail.com>
338 * {tx,rx}hostdesc->desc_phy removed (was not used)
339 * netdev->type of ARPHRD_IEEE80211_PRISM was sticking forever
340 after monitor mode. Fixed
341 * monitor mode tx is working again
342 * rate reporting added in monitor mode packet header
345 * moved PCI specific ioctls to pci.c
346 * ioctl.c is PCI/USB independent now
349 * Fixed one apparent bug (wlandevice_t had different
350 layout for PCI and USB - conv.c would die horribly)
351 * Massive code shuffling with only trivial code changes.
352 Mostly sorting out PCI/USB stuff into relevant files.
354 * helper2.c is PCI/USB independent now