Go back –> ath6kl
ath6kl todo
Contents
Cleanup items
High priority:
- 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
- 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)".