香洲 前进街 出租:ath9k_hw

来源:百度文库 编辑:九乡新闻网 时间:2024/05/06 06:30:13

ath9k_hw

ath9k_hw provides the routines used to access modify and tune Atheros hardware directly. It supports all Atheros 802.11n devices including the USB devices (and in the future possibly SDIO). 802.11 devices typically have firmware for direct hardware access, but some Atheros 802.11 devices do not require any firmware at all. Instead all direct hardware access code is performed directly through the driver. The exception to this is the USB AR9271 and the Mobile AR6003 devices, AR9287 for example performs some things in firmware and others through the hardware code on ath9k_hw. All current PCI, PCI-E and mini-pci-e devices do perform all tasks directly through the hardware code provided by ath9k_hw.

Contents

  1. ath9k_hw
  2. Hardware access components
  3. ath9k_hw initvals
  4. ath9k_hw APIs

Hardware access components

the ath9k_hw module is built by linking the following objects.

Specific hardware family hardware code:

  • ar9002_hw.o
  • ar9003_hw.o

Generic hardware family code:

  • hw.o

Specific hardware family PHY code:

  • ar9003_phy.o
  • ar9002_phy.o
  • ar5008_phy.o

Specific hardware family calibration code:

  • ar9002_calib.o
  • ar9003_calib.o

Generic hardware calibration code:

  • calib.o

EEPROM code:

  • eeprom.o
  • eeprom_def.o - Default EEPROM callbacks
  • eeprom_4k.o - for 4k family type of EEPROM (AR9285 and AR9271)
  • eeprom_9287.o - EEPROM callbacks for AR9287
  • ar9003_eeprom.o - EEPROM code for AR9003 family

Generic ANI code, Adaptive Noise Immunity:

  • ani.o

Bluetooth Coexistence:

  • btcoex.o

Specific hardware family MAC code:

  • ar9002_mac.o
  • ar9003_mac.o

Generic MAC code:

  • mac.o

PAPRD:

  • ar9003_paprd.o

These object currently export 87 symbols for use for other drivers to directly tune hardware.

ath9k_hw initvals

The ath9k_hw module has an array of registers with their respective values which are to be programmed into the hardware during initialization. These original value maps are kept in what Atheros calls 'initvals' for initialization values. The initvals are split up by hardware family on ath9k.

To help with the initval header style format, integrity checking and synchronization the ath9k initvals-tool can be used.

ath9k_hw APIs

This documents the public APIs exported by ath9k_hw.

  • hw.c:ath9k_hw_wait
  • hw.c:ath9k_hw_computetxtime
  • hw.c:ath9k_hw_init
  • hw.c:ath9k_hw_init_global_settings
  • hw.c:ath9k_hw_deinit
  • hw.c:ath9k_hw_check_alive
  • hw.c:ath9k_hw_reset
  • hw.c:ath9k_hw_setpower
  • hw.c:ath9k_hw_beaconinit
  • hw.c:ath9k_hw_set_sta_beacon_timers
  • hw.c:ath9k_hw_cfg_gpio_input
  • hw.c:ath9k_hw_gpio_get
  • hw.c:ath9k_hw_cfg_output
  • hw.c:ath9k_hw_set_gpio
  • hw.c:ath9k_hw_getdefantenna
  • hw.c:ath9k_hw_setantenna
  • hw.c:ath9k_hw_getrxfilter
  • hw.c:ath9k_hw_setrxfilter
  • hw.c:ath9k_hw_phy_disable
  • hw.c:ath9k_hw_disable
  • hw.c:ath9k_hw_set_txpowerlimit
  • hw.c:ath9k_hw_setopmode
  • hw.c:ath9k_hw_setmcastfilter
  • hw.c:ath9k_hw_write_associd
  • hw.c:ath9k_hw_gettsf64
  • hw.c:ath9k_hw_settsf64
  • hw.c:ath9k_hw_reset_tsf
  • hw.c:ath9k_hw_set_tsfadjust
  • hw.c:ath_gen_timer_alloc
  • hw.c:ath9k_hw_gen_timer_start
  • hw.c:ath9k_hw_gen_timer_stop
  • hw.c:ath_gen_timer_free
  • hw.c:ath_gen_timer_isr
  • hw.c:ath9k_hw_htc_resetinit
  • hw.c:ath9k_hw_name
  • ar9003_phy.c:ar9003_hw_bb_watchdog_dbg_info
  • ar9002_phy.c:ath9k_hw_antdiv_comb_conf_get
  • ar9002_phy.c:ath9k_hw_antdiv_comb_conf_set
  • calib.c:ath9k_hw_reset_calvalid
  • calib.c:ath9k_hw_getchan_noise
  • calib.c:ath9k_hw_bstuck_nfcal
  • ani.c:ath9k_hw_ani_monitor
  • ani.c:ath9k_hw_disable_mib_counters
  • ani.c:ath9k_hw_proc_mib_event
  • btcoex.c:ath9k_hw_init_btcoex_hw
  • btcoex.c:ath9k_hw_btcoex_init_2wire
  • btcoex.c:ath9k_hw_btcoex_init_3wire
  • btcoex.c:ath9k_hw_btcoex_set_weight
  • btcoex.c:ath9k_hw_btcoex_enable
  • btcoex.c:ath9k_hw_btcoex_disable
  • mac.c:ath9k_hw_gettxbuf
  • mac.c:ath9k_hw_puttxbuf
  • mac.c:ath9k_hw_txstart
  • mac.c:ath9k_hw_cleartxdesc
  • mac.c:ath9k_hw_numtxpending
  • mac.c:ath9k_hw_updatetxtriglevel
  • mac.c:ath9k_hw_stoptxdma
  • mac.c:ath9k_hw_gettxintrtxqs
  • mac.c:ath9k_hw_set_txq_props
  • mac.c:ath9k_hw_get_txq_props
  • mac.c:ath9k_hw_setuptxqueue
  • mac.c:ath9k_hw_releasetxqueue
  • mac.c:ath9k_hw_resettxqueue
  • mac.c:ath9k_hw_rxprocdesc
  • mac.c:ath9k_hw_setrxabort
  • mac.c:ath9k_hw_putrxbuf
  • mac.c:ath9k_hw_startpcureceive
  • mac.c:ath9k_hw_stoppcurecv
  • mac.c:ath9k_hw_abortpcurecv
  • mac.c:ath9k_hw_stopdmarecv
  • mac.c:ath9k_hw_beaconq_setup
  • mac.c:ath9k_hw_intrpend
  • mac.c:ath9k_hw_disable_interrupts
  • mac.c:ath9k_hw_enable_interrupts
  • mac.c:ath9k_hw_set_interrupts
  • ar9002_mac.c:ath9k_hw_setuprxdesc
  • ar9003_mac.c:ar9003_hw_set_paprd_txdesc
  • ar9003_mac.c:ath9k_hw_set_rx_bufsize
  • ar9003_mac.c:ath9k_hw_addrxbuf_edma
  • ar9003_mac.c:ath9k_hw_process_rxdesc_edma
  • ar9003_mac.c:ath9k_hw_setup_statusring
  • ar9003_paprd.c:ar9003_paprd_enable
  • ar9003_paprd.c:ar9003_paprd_populate_single_table
  • ar9003_paprd.c:ar9003_paprd_setup_gain_table
  • ar9003_paprd.c:ar9003_paprd_create_curve
  • ar9003_paprd.c:ar9003_paprd_init_table
  • ar9003_paprd.c:ar9003_paprd_is_done