Go back –> ath6kl
ath6kl todo
Contents
Note that all cleanup happens in ath6kl-cleanup tree! More in the main page.
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
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
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
- 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
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
Automatic board detection
You can only build ath6kl for a static targeted chipset model. So for example you only build ath6kl to support a dual band or single band setup, plugging in a dual band chipset into an box where ath6kl was compiled into for single band support will yield with no dual band support. The same applies to Bluetooth support. The options are:
- SD31: 2.4 GHz wifi
- WB31: 2.4 GHz wifi + BT
- SD32: 2.4 and 5 GHz wifi
We need to support all these dynamically, not statically through kconfig options. Unfortunately currently it's not know if there's any way to detect boards automatically.
AP Mode support using cfg80211
No one is working on this yet.
WiFi Direct
No one is working on this yet