cleanup locking
* review all locking
* document what each lock is supposed to protect
* try to reduce the number of locks, semaphores and mutexes
* convert semaphores to mutexes
* the DMA bounce buffer should probably be protected by a lock so dueling threads don't corrupt it
use ath6kl prefix everywhere
Implement 802.11 ieee disconnect reasons
high coupling between main.c and init.c
confusion with header files
* function prototypes not in corresponding .h files
* no core.h
* no init.h
* no main.h
* no txrx.h
merge structs
* merge struct htc_target to struct ath6kl
* merge struct ath6kl_device to struct ath6kl
* merge struct aggr_info to struct ath6kl
* merge struct wmi to struct ath6kl
replace all void pointers with proper types
* for example, use property or unions
* if not possible for some reason, then document properly what types void pointer might contain
* * (There are about three void pointers in htc.h, this would result in significant amount of cleanup)
* remove nl80211_tx_power_setting comment
* ath6kl_cfg80211_change_iface() needs to change mode before function returns
* useless memset(ar→ssid, 0, sizeof(ar→ssid))
* ath6kl_cfg80211_get_key() should not call the callback in the -ENOENT case
* remove ieee80211com from a comment
* ath6kl_priv() should return a proper type
* scat_list should be scat_list[ ATH6KL_SCATTER_ENTRIES_PER_REQ] rather than scat_list[1]
* memcpy mess in htc_setup_tx_complete()
* ath6kl_cleanup_amsdu_rxbufs is racy
* * can't drop lock with list_for_each macros
* list_empty() in ath6kl_alloc_amsdu_rxbuf() is useless
* * you can iterate an empty list
* use ieee80211_data_to_8023()
* * instead of ath6kl_wmi_dot11_hdr_remove() Low priority:
* * use align macro in aggr_slice_amsdu()
* * clean up arEvent usage
* * clean up wmitimeout usage
* * remove mdelay()
* * remove casts from ar6k_priv() users
* * cleanup wait_event apis
* * bmi: use struct for commands, not memcpy()
* * fix 0x%lX debug format
* * * use %p
* * * remove (unsigned long) casts
* * * use decimals when printing lengths
* * change all read/write functions' buf to a void pointer
* * move WARN_ON() inside if test
* * cleanup ath6kl_init_netdev() & co
* * replace ntohs() with be16_to_cpu()
* * rename wmip to wmi
* * ath6kl firmware fetch fails if it's linked to kernel (Y choise)
* * ATH_COMMON kconfig enables some code which is not needed by ath6kl
* * fix all FIXMEs
* * remove ath6kl_cookie (vasanth)
* * * needs significant code change
* * inspect structs for alignment and packing appropiateness
-
* * switch from cfg80211_inform_bss_frame() to cfg80211_inform_bss()
* * * was there a reason why we actually need _frame() variant?
* * logic in htc_tx_from_ep_txq() is convoluted
* * buffer tx packets
* * * to improve throughput and avoid excessive stopping of queues
* * create separate queues for each AC
* * * so that they can be stopped individually
* * use of ar→nw_type is not consistent
* * * some places we test it with '==' even though '&' should be used as it's a bitfield
* * interface to enable tx uart with hi_serial_enable register
* * * maybe using debugfs? Then an item is done, please mark it with strike through. If you plan to work on something, please mark the item with “(nick)”.