User Tools

Site Tools


en:users:drivers:ath6kl:todo

Go back –> ath6kl

ath6kl todo

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
  • 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)”.
en/users/drivers/ath6kl/todo.txt · Last modified: 2016/07/12 21:10 by Eddy M