Go back –> ath6kl
ath6kl todo
Cleanup items
High priority:
fix checkpatch reported errors/warnings
fix sparse reported errors/warnings
cleanup of kernel config options
remove board config choise (see below)
- 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
big endian support
add sparse annotations
cross compile to other arches
rework firmware handling
Cleanup scatter gather (vasanth)
Fix cleaning up resource when init fails (Vasanth)
remove BUG()s
- 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)
replace A_CACHE_LINE_PAD with proper linux macros (or remove altogether)
remove useless rtnl locking
remove remaining of wext code (kvalo)
IW_AUTH_CIPHER_NONE
IW_ENCODE_SEQ_MAX_SIZE
cleanup ieee80211.h (kvalo)
move all generic code to include/linux/ieee80211.h
hw/driver specific code to somewhere else
WPA1 preferred over WPA2 (kvalo)
this happens in ath6kl_set_wpa_version()
shouldn't we prefer WPA2?
check errors from ath6kl_set_auth_type()
don't check ssid in cfg80211.c
use pairwise parameter in ath6kl_cfg80211_add_key()
remove ath6kl_cfg80211_set_default_mgmt_key()
- remove nl80211_tx_power_setting comment
- ath6kl_cfg80211_change_iface() needs to change mode before function returns
return error if ibss_param->channel_fixed is set
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()
Port suspend patch from the staging version
Port testmode support from the staging version
Debugfs for host and target stats (Vasanth)
Low priority:
- use align macro in aggr_slice_amsdu()
WLAN node optimization
- 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
rename osbuf to skb
- 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
Clean up read/write request buffer abstraction ( Vasanth)
- fix all FIXMEs
- remove ath6kl_cookie (vasanth)
- needs significant code change
remove most (all?) function names from logging messages
- 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?
check roaming and background scan
wpasupplicant currently handles roaming and sets bssid
do ath6kl and firmware disable roaming and background scan in that case?
- logic in htc_tx_from_ep_txq() is convoluted
Finished tasks:
typedef cleanup
remove THREAD_X support
dl list cleanup
netbuf cleanup - skbuff should be used
rearchitecture of debug architecture
remove unnecessary modparams:
enabletimerwar
node_caching
wlaninitmode
wmitimeout
mbox_yield_limit
reduce_credit_dribble
enablerssicompenstation
process_dot11_hdr
resetok
reset_sdio_on_unload
simplify htc
refactor functions
remove kernel thread – Ongoing
replace macros,apis with linux specific APIs
handle error codes properly
remove test cmd support and add it back later
too many header files and lot of duplicates... clean it up.
sysfs cleanup
remove bluetooth driver
remove camel case
remove hungarian notation
remove #if 0 code
remove cplusplus definitions
flatten directory structure
remove exported symbols
replace wlan_ieee2freq() and wlan_freq2ieee()
choose common prefix, ath6kl
remove all bt code
remove all suspend and wow code (kvalo)
simplify hif
refactor code
follow more linux style
try to use as much as public ieee80211 defines and make local ieee80211.h smaller
remove unused/unneeded ifdefs
remove global variables
remove static variables) * --(msgno in wmi_control_rx()
remove all wext code and config
wireless_send_event() in ath6kl_connect_ap_mode()
wireless_send_event() in ath6kl_tkip_micerr_event()
wireless_send_event() in ath6kl_disconnect_event()
remove while(false)/while(0) constructs
remove '== true' and '== false'/'false ==' tests
Then an item is done, please mark it with strike through. If you plan to work on something, please mark the item with "(nick)".
config cleanup
AP Mode support using cfg80211
Initial support for AP mode has been commited, but the support is not enabled yet.
WiFi Direct
No one is working on this yet