NOTE: this page is for archival only, see the note at the end of the page.

Go back –> ath6kl

ath6kl todo

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 (kvalo)
    • add sparse annotations

    • cross compile to other arches
  • fix all FIXMEs (Most of them are addressed)
  • 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 (Needs more analysis - Vasanth)
  • Remove ath6kl_cookie (needs significant code change - 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
  • 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)

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


This is a static dump of the old wiki, taken after locking it in January 2015. The new wiki is at https://wireless.wiki.kernel.org/.
versions of this page: last, v110, v109, v108, v107, v106, v105, v104, v103, v102, v101, v100, v99, v98, v97, v96, v95, v94, v93, v92, v91, v90, v89, v88, v87, v86, v85, v84, v83, v82, v81, v80, v79, v78, v77, v76, v75, v74, v73, v72, v71, v70, v69, v68, v67, v66, v65, v64, v63, v62, v61, v60, v59, v58, v57, v56, v55, v54, v53, v52, v51, v50, v49, v48, v47, v46, v45, v44, v43, v42, v41, v40, v39, v38, v37, v36, v35, v34, v33, v32, v31, v30, v29, v28, v27, v26, v25, v24, v23, v22, v21, v20, v19, v18, v17, v16, v15, v14, v13, v12, v11, v10, v9, v8, v7, v6, v5, v4, v3, v2, v1