2007-11-11, ZD1211LnxDrv_2_22_0_0, CVS Rep. : ZD1211_2_22 1. zd1205.c, 1.1->1.2 To clear ZD1211_TX_BUSY bit in macp->flags. In certain case, this bit is on after down and up. And we can't tx frames anymore. 2. zd1205.c, 1.2->1.3 zd1211.c, 1.1->1.2 zdhci.c, 1.1->1.2 To avoid 'large amount small packet tx and scan concurrently' testing problem. Like, 30 ping -f + scanning/s . This will cause out of frmdesc and something will be wrong in SigProcess. 3. zdsynch.c, 1.1->1.2 Scanning sometimes causes crash. 4. zdapi.h, 1.1->1.2 Replace our endian translation function with kernel's . That could stop user complain endian issue. 5. zd1205.c, 1.4->1.5 zd1205.h, 1.2->1.3 skb->tail in AMD64 become an int not pointer to save space. 6. zd1211.c, 1.3->1.4 TX zero Copy 7. zd1205.c, 1.5->1.6 WPS beacon recv and software button support 8. zd1205.c, 1.6->1.7 zd1205.h, 1.3->1.4 zd1211.c, 1.4->1.5 If all rx_struct is in deferred RX, rx_comp will fail to submit_rx_urb. So, when handling deferred rx, it may need to submit rx urb. 9. zd1211.c, 1.6->1.7 in some systems, hard_header_len isn't configurable. So, if we set it to 64, there would be no data from upper layer. So , we need to give up TX_NOCOPY 10. apdbg.c, 1.1->1.2 zd1205.c, 1.8->1.9 zd1205.h, 1.4->1.5 zddebug.c, 1.1->1.2 zydas_common.h 1.1->1.2 Add pbc for apdbg to active push button. Add ZD_IOCTL_PARAM_WPS_FILTER for WPS to filter beacon and probersp. 11. zd1205.c, 1.9->1.10 A. add lock to access intraBss skb Queue B. remove eth_trans_type...in intraBSS forwarding. Since it is for receiving not for tx. The function will change skb->data pointer 12. zd1211.c, 1.7->1.8 the original protection is not enough. We change the lock position. 13. zd1205.c, Mode, monitor , secondary, and repeater are not supported. Now, we report error instead of changing to pseudo ibss mode 14. zd1211.c, 1.8->1.9 We update IBSS beacon every SWBA that would cause problem. Not, we only update that when something change. 15. zd1205.c, 1.11->1.12 fix for different definition 16. zdusb.c, 1.1->1.2 Suspend / Resume support 17. zdusb.c, 1.2->1.4 Suspend resume support in ifdown state. And only turn on on kernel > 2.6.22. Since this is the only paltform I had to get success on other kernel 18. zd1205.c, 1.14->1.15 Use right function to release buffer. The original code has problem. Or we get crash in Machintosh always. Sometimes on x86. 19. zdhw.c, 1.1->1.2 We add set pending bit when we want to access CAM. But hw will fail to access CAM when set. This will cause some problem. Especially in AP mode, STA is ok. 20. zd1205.c, 1.15->1.16 zddebug.c, 1.3->1.4 zdhci.c, 1.3->1.4 zdhci.h, 1.1->1.2 zdsorts.h, 1.2->1.3 every 5 second, we dowgrade tx rate . This ensure to max the reachable range. 2007-09-07, ZD1211LnxDrv_2_21_0_0, CVS Rep. : ZD1211_2_21 ======================================================== 1. Linux kernel style configurable menu. Try 'make menuconfig' to enable necessary functions only. 2. Scanning function in AP mode 2007-08-1, ZD1211LnxDrv_2_20_0_0, CVS Rep. : ZD1211_2_20 ======================================================== 1. zd1205.c, 1.1->1.2 Change the giwscan max available buffer by return a -E2BIG to upper layer. Then, upper layer will provide something bigger. 2. zd1205.c, 1.2->1.3 zdhci.c, 1.1->1.2 -abandon Stop-and-wait scanning -Enlarge the scanning buffer to 16k in giwscan() 3. zd1205.c, 1.3->1.4 zd1205.h, 1.1->1.2 zd1205_proc.c, 1.1->1.2 zd1211.c, 1.1->1.2 -Support iwconfig rate to fix rate -config.h is not available in new kernels -asmlinkage is removed -save /load cardsetting is removed because of asklinkage is removed -scan_tout is removed because of useless -schedule_work prototype change. 4. zdhci.c, 1.2->1.3 Move notify to where after bChannelScan =0 Or the giwscan will be called right away but bChannelScan is still on 5. Makefile 1.1->1.2 Auto detect kernel 2.4 or 2.6 6. zdhci.c, 1.3->1.4 Release all signal when the zd_SigProcess() can't stop 7. WS11UPhR.h, 1.1->1.2 The device would deattach by access EP0 during busy traffic. For ex, run bidirection chariot test and run lsusb -v, cat /proc/bus/usb/devices, or plug/unplug other USB devices. 8. zd1205.c, 1.4->1.5 AP function in Fedora7 occurs warning about "Protocol 0000, buggy..." It is caused by some skb fields are wrong. We fix that for kernel 2.6.21 below and above 9. zd1205.c, 1.5->1.6 Drop frames when scanning. Since we don't handle tx pending when scanning attempts. We drop it now. If not, you would see some errors. And Stop in busy traffic condition. 10. zd1211.c, 1.2->1.3 Try to allocate buffer immediately. Or we will get some problme in uncertain condtion. 11. zd1211.c, 1.3->1.4 Disable refill beacon buffer in every beacon. Rewrite the fifo every beacon time could case some unrecoverable problem in busy traffic. 12. zd1211.c, 1.4->1.5 To prevent race condition of kevent_flags Or, we may lose the event 13. zdhw.c, 1.1->1.2 The CAM_Read / CAM_Write just check the CAM status but doesn't lock it. It could result in CAM_Read wrong values. It is very easy to observe this by camdump in busy traffic. 14. Maekfile, 1.2->1.3 apdbg.c, 1.1->1.2 zd1205.c, 1.6->1.7 zd1205.h, 1.2->1.3 zd1211.c, 1.6->1.7 zddebug.c, 1.1->1.2 zdhci, 1.4->1.5 Add function to Support APClient( Ethernet Client, or Bridge Mode) with Atheros AP. We use 4 address to do the apclient function . That would be much easier. 2007-01-18, ZD1211LnxDrv_2_18_0_1. ================================================== 1. Added support for New RF type 8 (AR2124), which is new version of UW2453. 2007-01-18, ZD1211LnxDrv_2_18_0_0, CVS Rep. : ZD1211_2_18 ================================================== 1. Fix incorrect modulation type problem of normal continuous Tx when issued via "apdbg cont_tx" command. 2. Does not call zd1205_lock() and zd1205_unlock before and after processing ZDAPIOCTL and ZDPRODUCTIOCTL command since this version. 3. Doesn't support Power saving mode in IBSS and AP mode. 4. Set correct channel in AP mode. 5. Added ZD_IOCTL_STA_LIST debug command for AP mode. 6. Modified ZD_IOCTL_CAM_DUMP debug command. 7. Update zd1205_cont_tx() 8. In addition to Infrastructure STA mode, also call zd_StartSTA() in IBSS and Pseudo IBSS mode. 9. Set idleTime to zero if the value of current jiffies is less than or equal to last ttl. 10. Change IDLE_TIMEOUT definition to HZ*60*10, because it is used in jiffies unit. 11. Reduce AGE_HASH_PERIOD from 10 min to 1 min. (org value: 60*10 (sec), new value: 60 (sec)) 2007-01-10, ZD1211LnxDrv_2_17_0_0, CVS Rep. : ZD1211_2_17 ================================================== 1. Fix WPA connection problem in some AP by reducing the time need to install PTK.(such Cisco1232, Buffalo G54, DI-624) 2. Also need modify the wpa.c file in wpa_supplicant utility package to fix the problem described in item 1. 3. Wpa Supplicant can work with zd1211b driver for Adhoc+open+wep mode. 2006-11-01, ZD1211LnxDrv_2_16_0_0, CVS Rep. : ZD1211_2_16 ================================================== 1. zdshare.c, 1.1->1.2 In getElem, all index and length are stored in U8. But in recent days, Beacon are over 256Byte. We use U16 to store these variables. Or this could result in infinite loop 2. d1211.c, 1.1->1.2 zd1211.h, 1.1->1.2 When tx timeout, we call usb_kill_urb. This will block the kernel we delay it to kevent 3. zd1211.c, 1.1->1.2 The check of infinite loop of zd_SigProcess() break but no re-enqueue the signal. This could result in loss of signal. 4. zdhw.c, 1.1->1.2 Fix incorrect Synthesizer value 5. zd1205.c, 1.1->1.2 Temporary AAAA03 Fix. Just use buffer copy. The issue is we fill the SNAP on the original data. But the data is also used for other network interface. It causes the source mac changed to AAAA03. 6. zd1205.c, 1.2->1.3 Reset encryption parameters when open the device. Used to solve long connection time when running PSK. 7. zd1205.c, 1.3->1.4 In some kernels, ioctl is in atomic operation. We need to defer the wpa_ioctl. Because it rw regsiters. 8. zdusb.c, 1.1->1.2 Add parameters for driver to prevent downloading the firmware twice. After rmmod & insmod again. It will cause the firmware crash. 9.Add infinite loop check 10. zdusb.c, 1.3->1.4 The driver parameter syntax is different in 2.4 and 2.6 11. zd1205.c, 1.5->1.6 zd1211.c, 1.5->1.6 Abandon interruptible_sleep_on_timeout(). use wait_event_interruptible_timeout to repalce it. The former has race condition issue. And showes many warnings in kernel 2.6 12. zd1205.c, 1.7->1.8 When get Beacon, it show "AP is alive...." 13. zd1205.c, 1.8->1.9 zd1211.c, 1.6->1.7 (1) clear_bit(ZD1211_TX_BUSY, &macp->flags); in tx_comp could cause race condtion on SMP. Because it clear busy status before remove it from queue. At the same time, submit_tx_urb gets change to submit it to urb. (2) ZD1211_TX_BUSY locking warning when locks over 5 seconds. 14. zd1205.c, 1.10->1.11 AAAA03 should free skb when return by certain error. 15. zd1205.c, 1.11->1.12 zd1205.h, 1.1->1.2 zdshared.c, 1.3->1.4 Slow Pairwis key install issue is casued by a too fast response 1/2 group key update before PTK is installed. The group update is discarded caused key update fails. 16. zd1205.c, 1.12->1.13 If you don't do this, the wpa supplicant will scan nothing in up after a prior down 17. Makefile WS11UPhR.h WS11UPhR_Turbo.h zd1211.c, 1.8->1.9 Use old firmware for non-turbo mode. This is used to solve warm reboot issue. The new firmware(with Turbo capability) can't handle warm reboot. You must re-plug the dongle to relive the device. The driver will include WS11UPhR.h when ZDCONF_LP_SUPPORT == 0, and WS11UPhR_Turbo.h when ZDCONF_LP_SUPPORT == 1 18. zdauthreq.c, 1.1->1.2 Prevent panic by calling to StartTimer twice in AuthReq This could occur when an immediate Deauth after previous auth sucess. 19. zdusb.c, 1.4->1.5 Add mdelay(1000) in disconnect after flush_scheulded_work(). Or, other timer could be called after modprobe -r and cause a panic. 20. zdauthreq.c, 1.2->1.3 zdhci.c, 1.4->1.5 In some cases (mostly scanning), signal or frmDesc may lose and result n an out of resouce. So, we can't get any AP information and disconnect forver. This fix the places that don't return the resource. 21. zd1205.c, 1.13->1.14 zd1205.h, 1.2->1.3 zdhci.c, 1.5->1.6 zdshared.c, 1.4->1.5 Fix Setting Mechanism of PSM. Use iwconfig ethX power timeout XXXu. See User Guide 22. zd1205.c, 1.18->1.19 zd1205.h, 1.5->1.6 zd1211.c, 1.10->1.11 zddebug.c, 1.3->1.4 zdhci.c, 1.9->1.10 zdhci.h, 1.3->1.4 zdpmfilter.c, 1.5->1.6 zdusb.c, 1.7->1.8 ADHOC has issues of construction and join IBSS. The former version can't indicate the mac mode and channel. We fix it and it can construct the 1st IBSS now. 2006-07-13, ZD1211LnxDrv_2_15_0_0, CVS Rep. : ZD1211_2_15 ================================================== 1. Remove noise level report. ZD1211 doesnt' have this capability. 2. Scanning result is shown from head/tail respectively. Because the wireless extension provides 4k for return scanning result only. APs in later part of scanning results can't show at most time. 3. USB firmware download could not succeed. We add warning messages. 4. zd_SigProcess() infinite loop prevention. 5. SMP fix 2006-07-07, ZD1211LnxDrv_2_14_0_0, CVS Rep. : ZD1211_2_14 ================================================== 1. UW2453_RF Settings update 2006-06-16, ZD1211LnxDrv_2_13_0_0, CVS Rep. : ZD1211_2_13 ================================================== 1. zdbuf.c, 1.1->1.2 reset frmDesc when allocating We need to reset it to zero. Or the duration could be non-zero and generates TXOP operations. 2. zd1211.c, 1.1->1.2 Add __attribute__ ((packed)) in the declare of USB_READ/WRITE buffer. The non-packed structure could result in sending out two u32 data. This behavior depends on compiler, I guess... 3. zd1205.c, 1.2->1.3 Remove warning message when get unknown ioctl 4. zd1205.c, 1.3->1.4 Station in embedded system can't use chariot EP to test performance. We let the PC behind the ethernet port run chariot. And the station associates by using PC's MAC. But, when we receive MAC from ourself, the bridge keeps warning and droping packets. So, we do a little tricks. We set the MAC for association only but the MAC in structure dev remains unchanged. 5. zd1205.c, 1.4->1.5 We allocate rx buffer in takslet. On a moderate speed machine, there always has the opportunity of out of rx buffer when busy rx. Out of rx buffer causes the "No available buffer" and all stop. Now, we allocate rx buffer when skb_req > 10. This solve the issue & is verified on RDC's platform. 6. zdasocsvc.c, 1.1->1.2 Fix Association with Zero MAC prevention mechanism The original one queues the signal . But it could exhaust all signal buffer. Now we drop it. 7. zd1205.c, 1.5->1.6 zdhci.c, 1.1->1.2 zdhci.h, 1.1->1.2 Add rate adaption function 8. zdusb.c, 1.1->1.2 zdapi.h, 1.2->1.3 zd1211.c, 1.2->1.3 zd1205.c, 1.6->1.7 Big Endian fix. WE compatibility issue in WE > 18 (FC5) zd1211_rx_alloc not in tasklet causes performance seriously drop in PC. But it is ok in RDC's platform. 9. zd1205.c, 1.7->1.8 zd1211.c, 1.3->1.4 zd1211_submit_rx_urb return 1 means rx_struct is NULL. This could be out rx buffer in slow system because it reallocate buffer to slow. We allocates it immedately when rx_struct is NULL. 2006-05-30, ZD1211LnxDrv_2_12_0_0, CVS Rep. : ZD1211_2_12 ================================================== 1. Compilation Errors and Warnings fix 2006-05-26, ZD1211LnxDrv_2_11_0_0, CVS Rep. : ZD1211_2_11 ================================================== 1. Makefile Fix 2. New firmware for rebooting issue doesn't support large packet. We replace it with the old one. 2006-05-25, ZD1211LnxDrv_2_10_0_0, CVS Rep. : ZD1211_2_10 ================================================== 1. zd1205.c, 1.1->1.2 Fix compilation error when LP_MODE = 0 2. WS11UPhR.h, 1.1->1.2 In linux, reboot doesn't power off the USB. This makes the firmware keep running in the dongle. The old firmware doesn't handle USB suspend command well that should run into boot code. It causes the firmware is downloaded to the dongle when a normal firmware is running. 3. zdsync.c, 1.1->1.2 zdsorts.h, 1.1->1.2 zdshared.c, 1.1->1.2 zdhci.c, 1.1->1.2 zdapi.h, 1.1->1.2 zd1205.c, 1.2->1.3 SES(Secure Easy Setup) IE Support And fix disconnection after scanning 2006-05-15, ZD1211LnxDrv_2_9_0_0, CVS Rep. : None ================================================== 1. ZyDAS Turbo Mode (BurstMode + Larget Packet) Support 2006-05-08, ZD1211LnxDrv_2_8_0_0, CVS Rep. : None ================================================== 1. UW2453 RF Support 2. Simple Production Interface support. Debug command only 3. Fix usb_unlink_urb compatibility issue. 4. HW_Set_IF_Synthesizer doesn't lock phy reg. 5. Fix kevent stops scanning when schedule SCAN_TIMEOUT fails. 6. Remove unused RF. 2006-04-17, ZD1211LnxDrv_2_7_0_0, CVS Rep. : None ================================================== 1.Fix frequency shift issue 2.Add 1 supported devices PID/VID 2006-03-31, ZD1211LnxDrv_2_6_0_0, CVS Rep. : None ================================================== 1.Airoha AL2230S RF Support 2.Fix unsupported functions issue in kernel > 2.6.13 3.Fix for bandedge(CH1, CH11) 4.Add 2 supported devices PID/VID 2006-03-08, ZD1211LnxDrv_2_5_0_0, CVS Rep. : None ================================================== 1. Add Supported PID/VID. 2. in zdpmfilter.c, SendPkt() When used as AP and a STA with PSM, driver fills header with wrong subtype. 2006-01-26, ZD1211LnxDrv_2_4_0_0, CVS Rep. : ZD1211_2_4 ======================================================= 1. zdhw.c, 1.1->1.2 Read CR157 value from EEPROM, and write to CR157 in ResetPhy 2. zdusb.c, 1.1->1.2 Add delays before buffer release. This issue ususally occurs in 2.4 + USB 1.1 It causes kernel panic. 3. zdhw.c, 1.2->1.3 It fails when compile ZD1211B code. 4. zd1211.c, 1.1->1.2 Remove The message "before wait 2". It occurs too often in usb 1.1. 5. zd1205.c, 1.1->1.2 Remove macp->flag = 0, in close function .The incorrect operation make kernel panic when driver removing. 6. zd1205.c, 1.2->1.3 zd1211.c, 1.2->1.3 When ZDCONF_WE_STAT = 0, the compilation fails. Add some condtion compile option to ZDCONF_WE_STAT_SUPPORT. 7. Synchronize the firmware files with Windows. Solve FTP fail in USB 1.1. 2005-11-25, ZD1211LnxDrv_2_3_0_0, CVS Rep. : ZD1211_2_3 ======================================================= 1. zd1205.c, 1.1->1.2 Del Timer of Scan When Isolate driver. This bug report from SourceForge. 2. zd1211.c , 1.1->1.2 In the PACKAGE_READ_REGISTER, the interruptible_sleep_on_timeout wait 2 jiffies in Kernel 2.4.x. This is ok when operate in Mixed/G Mode. But when PURE B, it seems badly degrade the performace. It's nearly 10k only. If the first attempt failed, the second attepmt timeout is modifed as HZ/10 while the origin one is HZ/2. The TxCalibration job is also reschedule to do one time of ten loops. 3. One section of setting AL2230 RF has the following mistype. #ifdef ZD1211B ..... #elif defined(ZD1211B) --> fixed #elif defined(ZD1211) .... #endif 4. zd1205.c, 1.2->1.3 , Remove inline delcare zd1205.h, 1.1->1.2 , Remove inline delcare zd1211.c, 1.2->1.3 , Change usb_unlink_urb to usb_kill_urb in zd1211_unlink_all_urbs. There will be shown some error information when ifdown interface in Fedora Core4. 5. zd1211.c, 1.3->1.4 When the interface is down, we need to use usb_kill_urb to remove urbs in kernel 2.6, or oops shown. A wireless iwstatistics callback function is also in this update. 6. zd1205.h, 1.2->1.3 Add variable and prototype defintion in this file. 7. zd1205.c, 1.3->1.4 Add the wireless statistics support function. The Singal Quality and Strength accounting formula is also updated to more accuracy. 8. zd1205.c, 1.4->1.5 zd1205.h, 1.3->1.4 Condtion Compile option 'ZDCONF_WE_STAT_SUPPORT' 9. zd1205.c, 1.5->1.6 set macp->flag = 0 when device close. If the interface is down and the TX_BUSY is set, the next time you open the device, it stays in TX_BUSY = 1. Then nothing can send. Now, we clean the status in close() functino. 10. zd1211.c , 1.4->1.5 If the call to interruptible_sleep_on_timeout in register read operation fails twice, it will return a 'read result' even if it fails. Note: The fix doesn't totally sove the issue, when fails for 10 times, it also return a value. But it will show the warning message.